Files
tai/research/mcp-client-support/vscode-mcp-configuration.md
T
retoor 251c3dc2ba research: mcp-client-support subject (106 sources, 3 conclusions)
- 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)
2026-10-18 19:23:02 +02:00

55 lines
3.3 KiB
Markdown

# 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"; plus `envFile` ("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 under `mcpServers` and under `servers`.
- "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-level `servers`) is the location for "input variables, development mode, and per-server sandboxing", while workspace `.mcp.json` (top-level `mcpServers`) is "Preferred for configurations that you share with your team".
## Pros / strengths
- Gives the two secret idioms (`${input:}` prompting with secure storage, `envFile` path) 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:}` and `envFile`).
- 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. |