Exa MCP server in Zed web search in the Agent Panel.
Add Exa as a context server in Zed's settings.json and the Agent Panel gains web search, crawling, and code-context retrieval — configured the Zed way, under context_servers.
Zed's Agent Panel can edit and reason across your codebase at speed, but it can't see the web on its own. Exa (github.com/exa-labs/exa-mcp-server, 4.6k stars) adds that capability over MCP: fast, intelligent web search and crawling, with a code-context search tool that retrieves current documentation — the thing you want most when the agent is working against an unfamiliar or recently-updated library.
Zed calls MCP servers context servers, and they live in your main settings.json rather than a dedicated MCP file. That naming difference trips up more people than the config itself.
Find your settings
Run zed: open settings from the command palette (cmd-shift-p) or edit ~/.config/zed/settings.json directly — same file either way. MCP servers go in a top-level context_servers object alongside your theme and keymap settings, so be careful not to nest it inside another block when pasting.
Exa's hosted endpoint is the simplest path on most clients, but Zed's context servers run local commands, so here you use the exa-mcp-server npm package — the same code behind the hosted version — launched via npx with your API key in the environment.
The config
Get an API key from your Exa dashboard, then add this to settings.json. The source field marks it as a custom server you're configuring by hand, as opposed to one installed from Zed's extension gallery:
{
"context_servers": {
"exa": {
"source": "custom",
"command": "npx",
"args": ["-y", "exa-mcp-server"],
"env": {
"EXA_API_KEY": "YOUR_EXA_API_KEY"
}
}
}
}Restart the Agent Panel and test
Save the file, then restart the Agent Panel so Zed re-reads the configuration — closing and reopening the panel usually suffices; a full Zed restart is the reliable fallback. In the panel's settings view you should see exa listed with a running indicator and its tools enumerated.
Test it with a question whose answer postdates the model: ask the agent to search for the latest release of a crate or package you use. A working setup shows an Exa tool invocation in the thread before the answer arrives.
Troubleshooting in Zed
Because Zed spawns the server as a local process, the failure modes are process failures. The most common: npx isn't on the PATH Zed inherits — launch Zed from a terminal (zed .) to pick up your shell environment, or replace "npx" with its absolute path. Run zed: open log from the command palette to see the server's stderr; an EXA_API_KEY problem shows up there as failed search calls rather than a failed start.
JSON mistakes are the other half: context_servers placed inside another settings block, or a trailing comma, makes Zed ignore the entry without much ceremony. If the server starts but the agent never uses it, check the Agent Panel's tool list to confirm Exa's tools are toggled on for your current profile.
Confirm the tool list before you commit
Exa's live listing at https://loomal.ai/marketplace/exa shows the server's probed tools, so you know what the Agent Panel will gain before touching settings.json. It's one of the highest-starred entries in the search category — worth comparing against neighboring servers if your workload leans more toward bulk scraping than search.
FAQ
How do I install Exa in Zed?
Add an exa entry to the context_servers object in ~/.config/zed/settings.json (zed: open settings) using npx -y exa-mcp-server as the command and your EXA_API_KEY in env, then restart the Agent Panel. The -y flag means npx fetches the package on first run — no separate install step.
Where does Zed store MCP configuration?
In your main settings file at ~/.config/zed/settings.json, under a top-level context_servers key. Zed doesn't use a separate MCP config file the way Claude Desktop or Windsurf do, and it calls the servers context servers rather than MCP servers.
Exa isn't showing up in the Agent Panel — what should I check?
Three things in order: the JSON is valid and context_servers is top-level, npx is reachable from Zed's environment (launch Zed from a terminal to inherit your PATH), and you restarted the Agent Panel after saving. The server's actual error output is in zed: open log.
Can I use Exa's hosted endpoint instead of npx?
Zed's context servers are command-based, so the npx form is the native fit. If you prefer the hosted endpoint, a stdio-to-HTTP bridge like mcp-remote can proxy it, but for most Zed users the local npx package is simpler and behaves identically.
Browse more MCP servers for Zed.
Every server with a live, probed tool list — check before you configure.