MCP setup · Zed
Hooklistener MCP server for Zed
Add Hooklistener to Zed's settings.json under context_servers with just a url. Leave out the Authorization header and Zed runs the standard MCP OAuth flow, so you sign in with your Hooklistener account in the browser. Zed's agent can then create webhook URLs, wait for events and replay them from the Agent Panel.
Setup checked against Zed docs, September 2026
{
"context_servers": {
"hooklistener": {
"url": "https://app.hooklistener.com/api/mcp"
}
}
}- Config
settings.json→context_servers- Open it
zed: open settings file- Sign-in
- MCP OAuth when no Authorization header is set
- Status
- Settings → AI → MCP Servers, green dot
- Approvals
agent.tool_permissions(v0.224.0+)
Setup
Connect Zed step by step
- 01
Open settings.json
Run
zed: open settings filefrom the command palette, or go to Settings → AI → MCP Servers. - 02
Add the server
Remote servers only need a
urlundercontext_servers.settings.json{ "context_servers": { "hooklistener": { "url": "https://app.hooklistener.com/api/mcp" } } } - 03
Sign in
Because there is no Authorization header, Zed prompts you to authenticate with the standard MCP OAuth flow. Sign in to Hooklistener and click Authorize.
- 04
Check that it's active
In Settings → AI → MCP Servers the dot next to hooklistener turns green and the tooltip says Server is active.
Read-only access
Zed has no OAuth scope setting, so the grant is full access. Zed's tool permissions give you the control instead: with agent.tool_permissions.default set to "confirm", Zed asks before every action. Hooklistener's tools are keyed as mcp:hooklistener:<tool>, for example mcp:hooklistener:replay_request.
{
"agent": {
"tool_permissions": {
"default": "confirm"
}
}
}Try it
What to ask Zed
Plain-language requests work; Zed picks from Hooklistener's 67 tools. These are the ones each prompt usually calls.
Create an endpoint for Linear webhooks and wait for the issue update I'm about to make.
The agent reads the payload and signature headers as soon as Linear delivers.
- create_endpoint
- wait_for_request
Replay that webhook to my local server with the state field set to done.
A JSON merge patch on the body, sent through hooklistener listen. Zed asks first if you set confirm.
- replay_request
Add a mock rule so the endpoint returns 429 with Retry-After: 30 and show me how the sender backs off.
Tests your provider's retry behaviour without touching your server.
- create_response_rule
- investigate_request_retries
Check the signup email in my test inbox renders the user's first name.
The agent reads the email body and headers and compares them with your template.
- list_emails
- get_email
Troubleshooting
When Zed doesn't connect
- Zed never asks you to sign in
- Zed only starts OAuth when the server has no
Authorizationheader. Remove anyheadersblock you copied from another setup. - The indicator isn't green
- Check the key is
context_servers(notmcpServers) and the entry is inside the top-level object. Errors from context servers also show up in the agent's responses. - You want only Hooklistener's tools in a session
- Create a custom profile in the Agent Panel that disables built-in tools and enables only the hooklistener context server's tools.
FAQ
Zed and Hooklistener: common questions
How do I add a remote MCP server to Zed?
Add an entry under context_servers in settings.json with a url, for example "hooklistener": {"url": "https://app.hooklistener.com/api/mcp"}.
Does Zed support OAuth for MCP servers?
Yes. When a remote server has no Authorization header configured, Zed prompts you to authenticate using the standard MCP OAuth flow.
Can I make Zed ask before each Hooklistener action?
Yes. Set agent.tool_permissions.default to "confirm" (Zed v0.224.0 and later). Tool keys follow mcp:<server>:<tool>.
Keep going
More on the MCP server
Server URL: https://app.hooklistener.com/api/mcp
Other clients
Set up Hooklistener in another tool
Give Zed a webhook URL it can watch
The free plan includes the MCP server, 1 debug endpoint, 1 email inbox and 1 uptime monitor. No credit card.