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}" } } }}Local (stdio)
Section titled “Local (stdio)”| Field | |
|---|---|
command |
the executable to launch |
args |
its arguments (default []) |
env |
extra environment variables for the process (optional) |
Remote (HTTP)
Section titled “Remote (HTTP)”| 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.
Connection behaviour
Section titled “Connection behaviour”- 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.
/statusand 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
urllike any other endpoint your prompts reach (see Data handling). mcpServersis optional; omit it entirely if you don’t need one.