Mock MCP Studio
Mock MCP Studio lets you create fully configurable mock MCP servers — ideal for developing MCP clients before the real server exists, or for testing error scenarios and edge cases.
Creating a Mock MCP Server
- Go to Explorer in the navigation
- Click Create or import → Create mock MCP server
- Name your server and optionally add a description in the dedicated mock form
- Click Create Mock Server
- In Configure, define tools, resources, and prompts (see below)
- Save your capabilities — the mock is live as an MCP endpoint
To connect an existing MCP server, use Connect endpoint in the Explorer.
Open an existing mock server on Test to try its capabilities. Configure contains the capability editor and server settings; Flows controls responses, Schema shows the manifest, and Export tests provides Postman and curl downloads. New mocks open on Configure so you can define capabilities first.
Defining Capabilities
Tools
Each tool has a name, description, and a JSON Schema input schema:
{
"name": "get_weather",
"description": "Get current weather for a location",
"inputSchema": {
"type": "object",
"properties": {
"location": { "type": "string", "description": "City name or coordinates" }
},
"required": ["location"]
}
}
Resources
Resources expose data by URI:
{
"uri": "file:///data/{path}",
"name": "Data Files",
"description": "Access project data files",
"mimeType": "text/plain"
}
Prompts
Prompts are pre-defined templates with optional arguments:
{
"name": "code_review",
"description": "Review code for issues",
"arguments": [
{ "name": "language", "required": true },
{ "name": "code", "required": true }
]
}
Flows Tab
For quick setup, open Configure → Server → Response presets. Choose a tool, resource or prompt, then apply Fixed response, Echo, Conditional response or Simulate failure. Existing flows require replacement confirmation. Echo and conditions use tool/prompt arguments, a resource URI, or the requested capability name for the fallback; the preset form explains the selected input. Other flows and simulation settings are preserved. Conditional presets support ordered rules, ALL/ANY groups and the same comparison operators as mock agents. Sample-message testing is available in the A2A agent response editor.
Creating a tool, resource or prompt also saves its dedicated starter response. New servers use an Echo response appropriate to each capability. Open Flows to select and edit a capability in Flow Builder. Renaming a tool or prompt, or changing a resource URI, preserves its saved response.
Older servers keep their existing responses. Their default response is available under Advanced settings → Edit default response, in either Response presets or Flows. It is used when a request has no dedicated flow. A new capability on a server with an existing default gets an independent copy of that default; later edits to the default do not change that capability. Existing capabilities that rely on the default continue to do so until you give them a dedicated response. If another editor changes the response while capabilities are saving, the save uses the latest response. Conflicting flow or capability edits show a refresh-before-saving error instead of overwriting newer work.
Template Variables in MCP Flows
Use {{variableName}} syntax to reference context in node fields:
| Variable | Description |
|---|---|
{{toolName}} | Name of the invoked tool |
{{toolArgs.X}} | Individual tool argument by key |
{{resourceUri}} | URI of the resource being read |
{{promptName}} | Name of the prompt |
{{promptArgs.X}} | Individual prompt argument by key |
{{mcpServerId}} | This mock server's ID |
MCP End Node
The End node for MCP flows includes an output type selector that controls the wire format of the response:
| Output type | Wire format |
|---|---|
| Tool | content: [{ type: "text", text: "..." }] |
| Resource | contents: [{ uri, mimeType, text }] |
| Prompt | messages: [{ role, content: { type, text } }] |
Set isError: true on the End node to return a tool error response instead of a result.
Mock MCP Endpoint
After creation, the server is available at:
{base-url}/api/mock-mcp-servers/{id}/mcp
This endpoint handles all MCP JSON-RPC methods: initialize, tools/list, tools/call, resources/list, resources/read, prompts/list, prompts/get.
The capability manifest is served at:
{base-url}/api/mock-mcp-servers/{id}/.well-known/mcp-server.json
API Key Protection
Enable Require API Key in the Settings tab to restrict access to your mock server. Generate API keys in the same tab. Include the key as a Bearer token in requests:
Authorization: Bearer your_api_key_here
API Routes
| Method | Path | Description |
|---|---|---|
| GET/POST | /api/mock-mcp-servers | List / create mock servers |
| GET/PUT/DELETE | /api/mock-mcp-servers/:id | Server operations |
| POST | /api/mock-mcp-servers/:id/mcp | MCP JSON-RPC endpoint |
| GET | /api/mock-mcp-servers/:id/.well-known/mcp-server.json | Capability manifest |
| GET/POST | /api/mock-mcp-servers/api-keys | List / create API keys |
| DELETE | /api/mock-mcp-servers/api-keys/:id | Revoke API key |