mcp.json, save the file, and Runner exposes the server’s tools inside the workspace.
Runner reads the same top-level
mcp.json shape used by Claude Code:
{"mcpServers": { ... }}Pick the right file
Use one of these files:~/.runner/mcp.jsonfor servers you want in every workspace.~/.runner/workspaces/<workspace-id>/mcp.jsonfor servers you want in one workspace.
workspace-id is the folder name inside ~/.runner/workspaces/.Use the right config shape
mcp.json entries use the MCP server shape directly. Do not use Runner’s older connector fields like transport or authType here.
- For remote servers, use
type,url, and optionalheaders. - For local servers, use
type,command, optionalargs, and optionalenv.
Add a remote MCP server
Usetype: "http" for streamable HTTP servers or type: "sse" for SSE servers. Use the full MCP endpoint URL, including /mcp or /sse when your server requires it.
Add a local stdio server
Usetype: "stdio" when Runner should start the MCP server on your machine.
stdio servers for that workspace. Remote HTTP and SSE servers still work.
Understand authentication
Hand-writtenmcp.json entries do not get a built-in OAuth flow from Runner.
- If a remote server needs auth, send it in
headers. - If a local server needs auth, pass it through
env. - If a local server depends on environment variables, set them explicitly in
env.
env block instead of assuming your shell will pass it through.
Reload the server list
After you savemcp.json, start a new conversation in that workspace. New conversations read the latest file.
If an existing conversation does not see the new tools, reopen the conversation or restart Runner.
Troubleshooting
- If nothing shows up, validate that the file starts with a top-level
mcpServersobject. - If a remote server fails to connect, confirm that you used the full MCP endpoint URL.
- If a local server fails to start, run the same
commandandargsin your terminal first. - If a local server stays unavailable, make sure Local MCP Servers is enabled for that workspace.
- If you want one workspace to override a shared server, reuse the same slug in the workspace-level file.