Skip to content
For teams: coding agents on the self-hosted models you're allowed to run - see early access →

MCP servers

Every server listed under mcpServers in settings.json is connected at startup. Its tools are exposed to the model as mcp__<server>__<tool> and go through the exact same text-parsed grammar as the built-in tools - an MCP tool is just as usable by a local model with unreliable native tool-calling as by Claude or GPT.

A server is either local (a subprocess Polyglot launches, spoken to over stdio) or remote (an HTTP URL Polyglot connects to).

{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/an/allowed/directory"]
},
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": { "Authorization": "Bearer ${GITHUB_MCP_TOKEN}" }
}
}
}
Field
command the executable to launch
args its arguments (default [])
env extra environment variables for the process (optional)
Field
url the server’s endpoint
transport "http" (Streamable HTTP, the current spec) or "sse" (legacy HTTP+SSE). Omit it and Polyglot tries Streamable HTTP first, then falls back to SSE if the server only speaks that.
headers extra request headers, e.g. for auth (optional)

Put a token in a header. A ${VAR} anywhere in a header value is replaced from the environment when config loads, so the token doesn’t have to live in settings.json:

{
"mcpServers": {
"linear": {
"url": "https://mcp.linear.app/sse",
"transport": "sse",
"headers": { "Authorization": "Bearer ${LINEAR_MCP_TOKEN}" }
}
}
}

An unset ${VAR} is left in the string as-is. OAuth flows aren’t supported yet - use a personal access token or an API key.

  • Servers connect in parallel, each with a 10-second timeout. A slow or unreachable one is logged and skipped - it never holds up startup or the other servers.
  • If a server fails to connect, Polyglot logs the error and continues without it; the rest of the CLI works normally.
  • /status and the startup line show each connected server with its transport (github (http), filesystem (stdio)).
  • MCP tools obey the same permission modes as built-in tools. Polyglot does not otherwise sandbox a third-party MCP server - it runs with whatever access you grant it. A remote server also sees whatever you send it, so treat its url like any other endpoint your prompts reach (see Data handling).
  • mcpServers is optional; omit it entirely if you don’t need one.