diff --git a/docs/router/configuration.mdx b/docs/router/configuration.mdx
index 927becd6..487d2e4f 100644
--- a/docs/router/configuration.mdx
+++ b/docs/router/configuration.mdx
@@ -328,17 +328,19 @@ introspection:
The Model Context Protocol (MCP) server allows AI models to discover and interact with your GraphQL API in a secure way.
-| Environment Variable | YAML | Required | Description | Default Value |
-| ------------------------------- | ------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------- |
-| MCP_ENABLED | mcp.enabled | | Enable or disable the MCP server | false |
-| MCP_SERVER_LISTEN_ADDR | mcp.server.listen_addr | | The address and port where the MCP server will listen for requests | localhost:5025 |
-| MCP_ROUTER_URL | mcp.router_url | | Custom URL to use for the router GraphQL endpoint in MCP. Use this when your router is behind a proxy; used in MCP responses to provide the real router URL. | - |
-| MCP_STORAGE_PROVIDER_ID | mcp.storage.provider_id | | The ID of a storage provider to use for loading GraphQL operations. Only file_system providers are supported. | - |
-| MCP_SESSION_STATELESS | mcp.session.stateless | | Whether the MCP server should operate in stateless mode. When true, no server-side session state is maintained between requests. | true |
-| MCP_GRAPH_NAME | mcp.graph_name | | The name of the graph to be used by the MCP server | mygraph |
-| MCP_EXCLUDE_MUTATIONS | mcp.exclude_mutations | | Whether to exclude mutation operations from being exposed | false |
-| MCP_ENABLE_ARBITRARY_OPERATIONS | mcp.enable_arbitrary_operations | | Whether to allow arbitrary GraphQL operations to be executed. Security risk: Should only be enabled in secure, internal environments. | false |
-| MCP_EXPOSE_SCHEMA | mcp.expose_schema | | Whether to expose the full GraphQL schema. Security risk: Should only be enabled in secure, internal environments. | false |
+| Environment Variable | YAML | Required | Description | Default Value |
+| ------------------------------- | ------------------------------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
+| MCP_ENABLED | mcp.enabled | | Enable or disable the MCP server | false |
+| MCP_SERVER_LISTEN_ADDR | mcp.server.listen_addr | | The address and port where the MCP server will listen for requests | localhost:5025 |
+| MCP_ROUTER_URL | mcp.router_url | | Custom URL to use for the router GraphQL endpoint in MCP. Use this when your router is behind a proxy; used in MCP responses to provide the real router URL. | - |
+| MCP_STORAGE_PROVIDER_ID | mcp.storage.provider_id | | The ID of a storage provider to use for loading GraphQL operations. Only file_system providers are supported. | - |
+| MCP_SESSION_STATELESS | mcp.session.stateless | | Whether the MCP server should operate in stateless mode. When true, no server-side session state is maintained between requests. | true |
+| MCP_GRAPH_NAME | mcp.graph_name | | The name of the graph to be used by the MCP server | mygraph |
+| MCP_EXCLUDE_MUTATIONS | mcp.exclude_mutations | | Whether to exclude mutation operations from being exposed | false |
+| MCP_ENABLE_ARBITRARY_OPERATIONS | mcp.enable_arbitrary_operations | | Whether to allow arbitrary GraphQL operations to be executed. Security risk: Should only be enabled in secure, internal environments. | false |
+| MCP_EXPOSE_SCHEMA | mcp.expose_schema | | Whether to expose the full GraphQL schema. Security risk: Should only be enabled in secure, internal environments. | false |
+| MCP_OMIT_TOOL_NAME_PREFIX | mcp.omit_tool_name_prefix | | When enabled, MCP tool names generated from GraphQL operations omit the `execute_operation_` prefix. | false |
+
Example YAML config:
diff --git a/docs/router/mcp.mdx b/docs/router/mcp.mdx
index bc2606d0..5db4bc7a 100644
--- a/docs/router/mcp.mdx
+++ b/docs/router/mcp.mdx
@@ -216,6 +216,7 @@ mcp:
exclude_mutations: true
enable_arbitrary_operations: false
expose_schema: false
+ omit_tool_name_prefix: false # When true: GetUser → get_user (no execute_operation_ prefix)
# Configure storage providers
storage_providers:
@@ -237,6 +238,7 @@ storage_providers:
| `exclude_mutations` | Whether to exclude mutation operations from being exposed | `false` |
| `enable_arbitrary_operations` | Whether to allow arbitrary GraphQL operations to be executed. Security risk: Should only be enabled in secure, internal environments. | `false` |
| `expose_schema` | Whether to expose the full GraphQL schema. Security risk: Should only be enabled in secure, internal environments. | `false` |
+| `omit_tool_name_prefix` | When enabled, MCP tool names generated from GraphQL operations omit the `execute_operation_` prefix. For example, the GraphQL operation `GetUser` results in a tool named `get_user` instead of `execute_operation_get_user`. This produces shorter tool names and is entirely optional. Can also be set via `MCP_OMIT_TOOL_NAME_PREFIX` environment variable. | `false` |
## Session Handling
@@ -375,6 +377,32 @@ The MCP server converts each operation into a corresponding tool:
Operations are converted to snake_case for tool naming consistency.
+#### Omitting the Tool Name Prefix
+
+By default, all operation tools include the `execute_operation_` prefix:
+
+- `GetUsers` becomes `execute_operation_get_users`
+- `CreateUser` becomes `execute_operation_create_user`
+
+When enabled, the `omit_tool_name_prefix` option generates tool names without this prefix:
+
+```yaml
+mcp:
+ enabled: true
+ omit_tool_name_prefix: true
+```
+
+- `GetUsers` becomes `get_users`
+- `CreateUser` becomes `create_user`
+
+
+Enabling this option changes all tool names and may break existing integrations that rely on the `execute_operation_` prefix. Only enable this for new deployments or when you can update all dependent systems.
+
+
+
+Operations with names that would collide with built-in MCP tools (`get_schema`, `execute_graphql`, `get_operation_info`) automatically retain the `execute_operation_` prefix to prevent conflicts.
+
+
### Best Practices
1. **Meaningful names**: Give operations clear, action-oriented names that describe what they do.