VS Code user MCP config: a read-only and a Write Sume profile

VS Code's MCP: Open User Configuration edits per-user servers. Keep OAuth read-only Sume in your everyday setup and an API key entry only where paid jobs run.

5 min readSume
All posts

Put one Sume entry in your VS Code user configuration with OAuth and no Write, and add a second, key-based entry only in the place where paid generation should happen. The VS Code page lists the command MCP: Open User Configuration for per-user servers, alongside workspace files. A user-level entry follows you into every workspace, so it should be the least powerful credential you are willing to carry everywhere.

Where each kind of entry belongs

The VS Code page describes workspace trust and separate trust prompts for servers outside the workspace, so a server in your user configuration still asks before it starts.

VS Code MCP locations (page read 2026-10-09) and the Sume credential that fits each (docs as of 2026-10-09)
LocationScope of effectSume credential to use
.vscode/mcp.json (servers)One workspace; usually committedNone, or an input variable prompt; no literal key
.mcp.json (mcpServers)One workspace; portable formatNone; never a literal key
MCP: Open User ConfigurationYour user, every workspaceOAuth with Write off
~/.copilot/mcp-config.jsonUser-level portable fileOAuth with Write off, or a key via an environment reference

Why split by place

Under OAuth with only mcp:read, Sume hides its write tools, so an everyday assistant can list models, read balances and check jobs without any way to start paid work. A key entry exposes the full tool set, including paid generation, so it belongs where you have decided to spend.

Because a workspace file is often committed, never put a literal key in it. A teammate who clones the repository gets the entry and the prompt, not your credential, and signs in with their own.

Verifying each setup

Write and paid calls need an idempotency_key under either credential, and max_spend_usd bounds a call only when it is sent. The split above reduces who can reach those tools; it does not cap how much a permitted call can spend.

  • Open the tool list in each setup and compare it with the other.
  • Call mcp_health to see which credential is live.
  • Try a write tool under the read-only setup and expect insufficient_scope with required_scope mcp:write.

Keeping it tidy

Name the entries so the difference is obvious in the tool picker, for example sume-read and sume-write, and disable the write entry when you are not using it. Rotate the key from the dashboard if you suspect it has been copied, and remember that an OAuth access token expires after an hour with no refresh, so the read-only entry will ask you to sign in again from time to time.

Sources

Related posts

More in Integrations

All Integrations posts

Written by Sume