- wire spec: lifecycle, stdio + Streamable HTTP transports, tools, utilities, legacy SSE, versioning, changelog (14 Tier 1) - client ecosystem: Claude Code/VS Code/Cursor/Codex configs, mcp-remote, Smithery, registries, Glama (12 Tier 1) - security/ops: authorization draft, trust model, poisoning, rug pulls, production hardening (12 Tier 1) + 68 Tier 2 cards - conclusions: minimal stdlib client on 2025-11-25, normalizer + resolver agent for pasted configs/GitHub URLs, untrusted-until- consent trust model; nothing built yet - audit PASS (14 subjects, 797 sources, 32 conclusions)
3.3 KiB
3.3 KiB
VS Code: MCP configuration reference
Metadata
| Field | Value |
|---|---|
| Institute | Molodetz Institute - Research and Retrieval Division |
| Subject | mcp-client-support |
| Document type | Source Dossier |
| Tier | 1 |
| Source title | MCP configuration reference |
| Source URL | https://code.visualstudio.com/docs/agents/reference/mcp-configuration |
| Source publisher / author | Microsoft |
| Source type | vendor docs |
| Source date (published) | Unknown, not stated (living doc) |
| Date researched | 2026-10-18 |
| Researched by | tai (agent), model: Claude Sonnet 5, on behalf of retoor |
| Research method | gather-subagent direct page fetch, parent synthesis from evidence pack |
| Confidence | High |
| Status | Active |
Summary
Microsoft's field-level reference for VS Code MCP configuration. It covers the secrets story (input variables with secure storage plus envFile), entry shapes that mirror the task doc under both wrapper keys, enable/disable state kept out of shared files, and the chat.mcp.autostart setting with its three modes.
Key findings
- Secrets via input variables: "When you reference an input variable using
${input:variable-id}, VS Code prompts you for the value when the server starts for the first time. The value is then securely stored"; plusenvFile("Path to an environment file", e.g."${workspaceFolder}/.env"). - Same server entry works under either wrapper key; docs show identical
{"type": "http", "url": ...}and{"command": "npx", "args": [...]}examples undermcpServersand underservers. - "You can enable or disable an MCP server globally or for a specific workspace... The enable/disable state is stored separately from the server configuration in
mcp.json, so it does not affect shared configuration files." chat.mcp.autostart(never/onlyNew/newAndOutdated) controls editor autostart; "Disabled servers and servers in an error state are excluded from the autostart pass."- Workspace
.vscode/mcp.json(top-levelservers) is the location for "input variables, development mode, and per-server sandboxing", while workspace.mcp.json(top-levelmcpServers) is "Preferred for configurations that you share with your team".
Pros / strengths
- Gives the two secret idioms (
${input:}prompting with secure storage,envFilepath) as concrete fields a resolver can detect and rewrite. - Autostart modes and the disabled/error exclusion rule are stated exactly, grounding editor-behavior claims.
- Pairs with the task doc (Add and manage MCP servers) so the overview and the field reference corroborate each other.
Cons / limitations / caveats
- Living doc with no publish date; field details could drift without notice.
- Whether VS Code supports
${env:VAR}interpolation remains unresolved (only seen in an unopened mirror's table; Microsoft's own pages document${input:}andenvFile). - Documents VS Code conventions only; the
${input:}idiom has no direct counterpart in Claude Code, Cursor, or Codex configs.
Relevance to tai
Gives the exact ${input:}/envFile syntax tai must translate when importing VS Code configs, and confirms wrapper-key interchangeability plus out-of-band enable/disable state that an importer should not try to preserve in the resolved entry.
Changelog
| Date | Change |
|---|---|
| 2026-10-18 | Initial dossier created. |