Skip to main content

Rasa MCP Tools API Reference

Rasa MCP Tools are included in Rasa Pro 3.16 and later.

v3.16

Cheat Sheet

ToolGroupWhat it does
search_rasa_documentationDocumentationSearch official Rasa docs
list_project_flow_definitionsIntrospectionList all flows
list_project_slot_definitionsIntrospectionList all slots
list_project_response_definitionsIntrospectionList all responses
get_flowIntrospectionGet one flow by ID or name
get_slotIntrospectionGet one slot by name
get_responseIntrospectionGet one response by name
list_project_custom_actions_in_domainIntrospectionList custom actions declared in domain
list_custom_action_implementationsIntrospectionList custom action Python classes
list_default_action_namesIntrospectionList built-in Rasa action names
get_flow_schemaSchemasGet the flow JSON schema
get_domain_schemaSchemasGet the domain YAML schema
get_e2e_schemaSchemasGet the E2E test YAML schema
validate_projectBuildValidate project config and data
train_rasa_assistantBuildTrain the assistant model
talk_to_assistantRuntimeSend messages to the running assistant
get_assistant_logsRuntimeGet recent assistant logs

CLI Commands

CommandEffect
rasa tools initInteractive setup wizard. Creates .rasa/tools.yaml and downloads offline docs and skills.
rasa tools init -yNon-interactive setup with all defaults.
rasa tools init --project-path PATHInitialize for a project in a different directory.
rasa tools init docsDownload or refresh offline documentation files.
rasa tools run --mode stdioStart the MCP server in stdio mode (for IDE integrations).
rasa tools run --mode http --port 7331Start the MCP server in HTTP mode on the specified port.
rasa tools run --config PATHStart the server using settings from .rasa/tools.yaml in the given directory.
rasa tools run --project-path PATHOverride the project folder the server reads from.
rasa tools run --rasa-server-url URLOverride the Rasa server URL (default: http://localhost:5005).

Documentation tools

search_rasa_documentation

Search the official Rasa documentation for authoritative information. Returns relevant documentation about Rasa concepts, APIs, best practices, configuration, and troubleshooting with links to official docs.

ParameterTypeRequiredDescription
querystringyesThe search query to find relevant Rasa documentation entries.

Returns: Matching documentation snippets with source links.

Sample prompts:

Search the Rasa docs for how to configure slot validation.
Look up how collect steps work in Rasa flows.

Project introspection tools

list_project_flow_definitions

List all flow definitions in the project. Returns flow ID, name, and file path for each flow.

ParameterTypeRequiredDefaultDescription
data_folderstringno"data"Folder containing flow YAML files, relative to project root.

Returns: List of flows with id, name, and file_path.

Sample prompt:

List all flows in this project.

list_project_slot_definitions

List all slot definitions from the project domain file(s). Returns slot name, type, and file path.

ParameterTypeRequiredDefaultDescription
domain_folderstringno"domain"Folder containing domain YAML files, relative to project root.

Returns: List of slots with name, type, and file_path.

Sample prompt:

List all slots in this project and their types.

list_project_response_definitions

List all response (utterance) definitions from the project domain file(s). Returns response name and file path.

ParameterTypeRequiredDefaultDescription
domain_folderstringno"domain"Folder containing domain YAML files, relative to project root.

Returns: List of responses with name and file_path.

Sample prompt:

Show me all responses defined in this project.

get_flow

Get a single flow by flow ID (YAML key) or flow name. Returns flow metadata and full definition including steps, triggers, and branching logic.

ParameterTypeRequiredDefaultDescription
flow_idstringyesFlow ID (YAML key) or human-readable flow name.
data_folderstringno"data"Folder containing flow YAML files.

Returns: Full flow definition with metadata.

Sample prompt:

Get the transfer_money flow and explain its steps.

get_slot

Get a single slot by name. Returns slot metadata and full definition from the domain.

ParameterTypeRequiredDefaultDescription
slot_namestringyesSlot name.
domain_folderstringno"domain"Folder containing domain YAML files.

Returns: Full slot definition with type, mappings, and metadata.

Sample prompt:

Get the recipient slot definition and explain its mappings.

get_response

Get a single response (utterance) by name. Returns response metadata and full definition including text, images, buttons, and custom payloads.

ParameterTypeRequiredDefaultDescription
response_namestringyesResponse name (e.g. utter_greet).
domain_folderstringno"domain"Folder containing domain YAML files.

Returns: Full response definition with all variations.

Sample prompt:

Get the utter_ask_recipient response.

list_project_custom_actions_in_domain

List all custom actions declared in the domain file(s). Returns action name and file path where the action is registered.

ParameterTypeRequiredDefaultDescription
domain_folderstringno"domain"Folder containing domain YAML files.

Returns: List of custom action names with name and file_path. This lists domain declarations, not Python implementations.

Sample prompt:

What custom actions are declared in the domain?

list_custom_action_implementations

List all custom action Python implementations in the project. Returns action name, class name, and file path for each action.

ParameterTypeRequiredDefaultDescription
actions_folderstringnoauto-detectedPath to the actions folder relative to project root. Auto-detects from endpoints.yml or defaults to "actions".

Returns: List of action implementations with action_name, class_name, and file_path.

Notes:

  • If error is set: the actions folder was not found. Check endpoints.yml or specify the folder.
  • If count=0 and no error: the actions folder exists but contains no action classes.

Sample prompt:

List all custom action implementations and their file locations.

list_default_action_names

List all built-in default action names provided by Rasa. These actions are available without configuration and can be overridden.

Parameters: None.

Returns: List of default action name strings.

Sample prompt:

What are the default built-in Rasa actions?

Schema tools

get_flow_schema

Get the official Rasa flow schema in JSON Schema format. Use this to validate flow YAML or generate new flows.

ParameterTypeRequiredDefaultDescription
calm_onlybooleannotrueReturn only CALM-related properties, excluding NLU-specific fields.

Returns: JSON Schema document describing flow structure: name, description, step types, branching logic (if/then/else), collect steps, flow guards, and more.

Sample prompt:

Get the flow schema so I can write a valid new flow.

get_domain_schema

Get the official Rasa domain schema in YAML schema format. Use this to validate domain YAML or generate domain files.

ParameterTypeRequiredDefaultDescription
calm_onlybooleannotrueReturn only CALM-related properties, excluding NLU-specific fields.

Returns: YAML schema document describing domain structure: slots, custom actions, responses, and more.

Sample prompt:

Get the domain schema. I need to add a new boolean slot correctly.

get_e2e_schema

Get the official Rasa E2E test schema in YAML schema format. Use this to validate or generate end-to-end test files.

Parameters: None.

Returns: YAML schema document describing E2E test structure: test cases, steps (user and bot messages), fixtures, metadata, stub custom actions, and assertions.

Sample prompt:

Get the E2E test schema, then write tests for the transfer_money flow.

Build and validation tools

validate_project

Validate the assistant project configuration and training data. Runs comprehensive checks on domain, flows, config, and training data.

Parameters: None (reads from the configured project folder).

Returns: Pass/fail status with a list of errors and warnings.

Notes:

  • Can take 60+ seconds for large projects.
  • Always run this after making changes and before training.

Sample prompts:

Validate this project and tell me what's wrong.
I made changes to the domain. Validate and fix any issues.

train_rasa_assistant

Train the Rasa assistant with the current project configuration. Creates a new model in the models/ directory.

Parameters: None (reads from the configured project folder).

Returns: Training status (success/failure), model path, and any errors.

Notes:

  • Can take several minutes for large projects.
  • Only call this after validation passes.
  • Each training run produces a new timestamped model file.

Sample prompts:

Train the assistant.
Validate and then train. If validation fails, fix the issues first.

Runtime testing and debugging tools

talk_to_assistant

Test the assistant by sending a sequence of messages and verifying responses. Creates a new conversation for each call.

ParameterTypeRequiredDefaultDescription
messageslist[string]yesList of user messages to send in sequence. Each message is sent after the assistant responds to the previous one.
rasa_server_urlstringnohttp://localhost:5005Override the Rasa server URL. Leave empty to use the configured default.

Returns: Structured response with:

  • Conversation history (user messages and assistant responses)
  • Tracker context showing conversation state, active flows, and slot values

Prerequisites: The Rasa assistant must be running (rasa run or rasa inspect).

Sample prompts:

Talk to the assistant: "I want to send money", "to Jen", "50 dollars", "yes".
Verify the transfer_money flow completes successfully.
Test the happy path: send "hello" then "I need to transfer money to Bob".
Check which flow was triggered and what slots were filled.

get_assistant_logs

Get recent log entries from the Rasa assistant for troubleshooting.

Parameters: None.

Returns: Recent log entries as text.

Sample prompts:

Get the assistant logs and explain why the last conversation failed.
Show me the assistant logs. I think a custom action is throwing an error.

Typical workflow

A common sequence for building a feature end-to-end:

  1. Discoverlist_project_flow_definitions, list_project_slot_definitions, list_project_response_definitions
  2. Understand schemasget_flow_schema, get_domain_schema, get_e2e_schema
  3. Implement — write flows, domain entries, and custom actions
  4. Validatevalidate_project
  5. Traintrain_rasa_assistant
  6. Testtalk_to_assistant
  7. Debugget_assistant_logs if behavior is unexpected