MCP

Connect to MCP servers, list their tools, and invoke them with JSON arguments.

MCP (the Model Context Protocol) is the emerging standard for connecting AI agents to tools and data. Impostor is a full MCP client: it connects to any MCP server, runs the handshake, discovers the tools, resources, and prompts the server exposes, and invokes tools with JSON arguments — the same way it tests HTTP, WebSocket, SSE, and gRPC.

Creating an MCP request

Pick MCP in the protocol dropdown (or use New MCP request from the sidebar’s context menu / command palette). MCP requests are saved like any other request — one YAML file with an mcp block — so they’re git-friendly and shareable.

Transports

MCP defines two transports; Impostor supports both, selected in the Transport tab.

stdio (local process)

Impostor spawns a local command and speaks MCP over its stdin/stdout. This covers the bulk of today’s ecosystem (filesystem, git, database servers, and anything run via npx/uvx). Configure:

  • Command — the executable, e.g. npx (shown in the request bar).
  • Arguments — one line, shell-style; quotes group words, e.g. -y @modelcontextprotocol/server-everything.
  • Environment variables — key/value pairs passed to the process (e.g. API keys).

Hit Connect to spawn the server. Disconnecting (or closing the tab) shuts the process down. Connecting spawns the configured command on your machine — review it first, and only run commands you trust, especially in imported or shared workspaces.

Streamable HTTP

For remote or hosted MCP endpoints, pick Streamable HTTP and put the endpoint URL in the request bar. The request’s own Headers (e.g. an Authorization header — secret-backed values stay in encrypted storage) and Cert settings (custom CA, mTLS client certificates) apply to the connection, exactly as they do for WebSocket and SSE requests.

Tools

Connecting lists the server’s tools in a dropdown, with each tool’s description shown underneath. Selecting a tool seeds the JSON arguments editor with a template derived from the tool’s input schema; edit the arguments and hit Call. Results stream into the log:

  • message — the tool result (text content and structured output),
  • log / progress — server notifications emitted while the call runs,
  • errors, including tool-reported error results, are flagged inline.

In-flight calls can be cancelled. {{variables}} are resolved in the connection settings and the arguments draft when you connect or call, so environments work the same as everywhere else.

Resources and prompts advertised by the server are listed for inspection under the tool picker.

Example

The community everything server exercises the full protocol and makes a handy test target:

protocol: mcp
mcp:
  transport: stdio
  command: npx
  args: ["-y", "@modelcontextprotocol/server-everything"]
  tool: echo
  arguments: |
    { "message": "hello from Impostor" }

Connect, pick echo (or add, longRunningOperation, …), and Call.