Rasa MCP Tools API Reference | Rasa Documentation

Build your first agent in just a few minutes with Rasa Copilot.

On this page

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

v3.16

Cheat Sheet

Tool Group What it does
search_rasa_documentation Documentation Search official Rasa docs
list_project_flow_definitions Introspection List all flows
list_project_slot_definitions Introspection List all slots
list_project_response_definitions Introspection List all responses
get_flow Introspection Get one flow by ID or name
get_slot Introspection Get one slot by name
get_response Introspection Get one response by name
list_project_custom_actions_in_domain Introspection List custom actions declared in domain
list_custom_action_implementations Introspection List custom action Python classes
list_default_action_names Introspection List built-in Rasa action names
get_flow_schema Schemas Get the flow JSON schema
get_domain_schema Schemas Get the domain YAML schema
get_e2e_schema Schemas Get the E2E test YAML schema
validate_project Build Validate project config and data
train_rasa_assistant Build Train the assistant model
talk_to_assistant Runtime Send messages to the running assistant
get_assistant_logs Runtime Get recent assistant logs
validate_scenario Evaluation Validate a scenario YAML before running
evaluate_agent Evaluation Run a simulated evaluation scenario

CLI Commands

Command Effect
rasa tools init Interactive setup wizard. Creates .rasa/tools.yaml and downloads offline docs and skills.
rasa tools init -y Non-interactive setup with all defaults.
rasa tools init --project-path PATH Initialize for a project in a different directory.
rasa tools init docs Download or refresh offline documentation files.
rasa tools run --mode stdio Start the MCP server in stdio mode (for IDE integrations).
rasa tools run --mode http --port 7331 Start the MCP server in HTTP mode on the specified port.
rasa tools run --config PATH Start the server using settings from .rasa/tools.yaml in the given directory.
rasa tools run --project-path PATH Override the project folder the server reads from.
rasa tools run --rasa-server-url URL Override 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.

Parameter Type Required Description
query string yes The 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.

list_project_flow_definitions

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

Parameter Type Required Default Description
data_folder string no "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.

Parameter Type Required Default Description
domain_folder string no "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.

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.

Parameter Type Required Default Description
flow_id string yes Flow ID (YAML key) or human-readable flow name.
data_folder string no "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.

Parameter Type Required Default Description
slot_name string yes Slot name.
domain_folder string no "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.

Parameter Type Required Default Description
response_name string yes Response name (e.g. utter_greet).
domain_folder string no "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.

Parameter Type Required Default Description
domain_folder string no "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.

Parameter Type Required Default Description
actions_folder string no auto-detected Path 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:

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.

Parameter Type Required Default Description
calm_only boolean no true Return 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.

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:

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:

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.

Parameter Type Required Default Description
messages list[string] yes List of user messages to send in sequence. Each message is sent after the assistant responds to the previous one.
rasa_server_url string no http://localhost:5005 Override the Rasa server URL. Leave empty to use the configured default.

Returns: Structured response with:

Prerequisites: The Rasa assistant must be running (rasa run or rasa run --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.

Simulation and evaluation tools

validate_scenario

Validate a scenario YAML file before running any simulation. Checks syntax and structure, assertion type validity, and that all slot names referenced in initial_slots, slot_was_set, and slot_was_not_set assertions exist in the domain with compatible types. All errors are reported together in a single response.

Parameter Type Required Default Description
scenario_path string yes Relative path to the scenario YAML file within the project (e.g. eval/scenarios/happy_path.yml).
domain_folder string no "domain" Folder containing domain YAML files, relative to project root. Used to verify slot names and types.

Returns: Pass/fail status with a list of all validation errors.

Sample prompts:

Validate the scenario at eval/scenarios/order_delay.yml.
I just edited a scenario file. Check it for errors before running.

evaluate_agent

Run a simulation and evaluation loop for a given scenario. Loads eval/conftest.yml, simulates a multi-turn conversation with an LLM-based user against the running Rasa server, evaluates deterministic assertions against the tracker event history, and scores quality criteria and metrics with an LLM judge. Writes per-run result files and updates the experiment summary.

Parameter Type Required Default Description
scenario_path string yes Relative path to the scenario YAML file within the project.
experiment_timestamp string yes Experiment folder name (e.g. 2026-04-21_14-30-22). Generate once per session with datetime.now().strftime('%Y-%m-%d_%H-%M-%S') and reuse across all scenarios so they land under the same folder.
run_count integer no 1 Number of times to run the scenario. Multiple runs surface LLM non-determinism. Capped at 10.
rasa_server_url string no configured default Override the Rasa server URL. Leave empty to use the server URL configured at startup.

Returns: Pass/fail verdict, runs passed/total count, and the path to the updated summary.txt.

Prerequisites: The Rasa assistant must be running (rasa run --inspect recommended so that simulated conversations are viewable in the Inspector).

Notes:

Sample prompts:

Generate and run a happy path scenario for the add_contact flow.
Run the order_delay scenario 3 times and summarize the results.
Run all scenarios in eval/scenarios/ and tell me which ones failed.

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
  8. Evaluatevalidate_scenario, evaluate_agent to run LLM-simulated conversations and score them against your goals