Zed tool permissions for Sume: mcp:server:tool keys
Zed asks before each MCP tool by default. How to use its mcp:<server>:<tool> permission keys so Sume's reads run freely and its paid tools stay on confirm.

Zed's agent.tool_permissions.default setting takes confirm, allow or deny, and confirm is the default, so every Sume tool call prompts you unless you change it. For finer control, Zed documents a key format of mcp:<server>:<tool_name>, so a server named sume and a tool named jobs_status gives mcp:sume:jobs_status. Allow the free reads individually and leave generation on confirm.
What are the three default modes?
According to the Zed docs, confirm prompts for approval before running any tool action, allow auto-approves, and deny blocks all tool actions.
| Mode | Behavior | Sume advice |
|---|---|---|
| confirm | Prompt every time | Keep as default |
| allow | No prompt | Avoid globally; paid tools would run unprompted |
| deny | Blocked | Use for tools you never want, per key |
Which Sume tools are safe to allow?
Sume's docs list free reads you can allow one by one: mcp_health, tools_list, tools_schema, balance_get, catalog_list, jobs_status, jobs_get, jobs_result and assets_get. Paid tools include generate_image, generate_video, music_create and tts_create; leave them on confirm so you see the call and its arguments.
How should the server be configured?
Under context_servers, a remote entry takes url and optional headers. With no Authorization header Zed starts the OAuth flow; Sume's OAuth grants read-only unless you tick Write on its consent page. Name the entry sume so the permission keys above match.
Confirmation in Zed is a client-side prompt. Sume's separate gates still apply: paid calls need an idempotency_key, dry_run previews cost, and max_spend_usd caps a call when you pass it.
What does a sensible rule set look like?
Keep agent.tool_permissions.default at confirm. Then add per-tool rules for the free reads you call constantly, using the mcp:sume:<tool> pattern from Zed's page. Check Zed's documentation for the exact rule syntax in your version, because this page only confirms the key format and the three default modes.
For paid tools, the confirmation prompt is your last human checkpoint, because Sume's idempotency_key is a dedup mechanism and not an approval. Read the prompt for the tool name, any dry_run flag and max_spend_usd before you accept.
If you want certainty that the agent cannot spend at all, connect with OAuth and leave Write off at consent. Then write and paid tools are not available to the session, whatever the Zed permission mode says.
Before you rely on any of this in a team setting, test it once end to end with a throwaway prompt. Call mcp_health, call tools_list, and run one dry_run against a paid tool. Compare the tool count with what you expected for your credential. If a read-only OAuth session lists more than you expected, or a key session lists fewer, stop and recheck which credential the client is actually sending. Sume's mcp_health response reports the auth source, which settles the question quickly without guessing.
Sources
Related posts
More in Integrations
- How to add an MCP server to ChatGPT with developer mode
Turn on ChatGPT developer mode, create an app for the server's URL, and sign in with OAuth. The steps, with Sume's hosted MCP server as the example.
- How to add subtitles to a video in Python
Add subtitles to a video in Python with Requests: POST the video URL to Sume's /v1/video-captions, poll the job, then read the captioned video_url.
- Add Sume to Claude as a custom connector (remote MCP)
Add Sume's hosted MCP server to Claude under Customize > Connectors, see what Sume's OAuth consent grants, and decide whether to allow paid tools.
- Airflow HTTP sensor: wait for an AI video job to finish
Submit an AI video job with Airflow's HttpOperator, then wait with an HttpSensor in reschedule mode that passes once the job's status is completed.
Written by Sume