-
Notifications
You must be signed in to change notification settings - Fork 286
[exa-mcp-server]: Merge vercel-mcp-host to main for production deployment #112
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
devin-ai-integration
wants to merge
5
commits into
main
Choose a base branch
from
vercel-mcp-host
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* fix: implement dynamic handler caching for URL params support The mcp-handler library doesn't pass the request to the initializeServer callback, which prevented URL query parameters (?tools=..., ?exaApiKey=...) from working on the Vercel deployment. This fix implements dynamic handler caching: - Parse URL params before creating handlers - Create new handlers on-demand for different tool combinations This ensures feature parity with the production Smithery-based deployment at mcp.exa.ai, where users can specify tools via URL parameters. Co-Authored-By: [email protected] <[email protected]> * fix: remove handler caching to prevent API key leakage - Each request now gets a fresh handler with its own configuration - Ensures API keys from URL params are isolated per request - Simpler and safer than caching approach Co-Authored-By: [email protected] <[email protected]> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: [email protected] <[email protected]>
) * feat(exa-mcp-server): add .well-known/mcp-config endpoint for Smithery Adds a well-known endpoint that exposes the MCP configuration schema as JSON Schema for Smithery and other MCP clients to discover available configuration options. This enables configuration forms in Smithery's UI when the server is deployed on Vercel instead of Smithery's managed hosting. Co-Authored-By: [email protected] <[email protected]> * fix(exa-mcp-server): make exaApiKey optional in mcp-config schema The server has a fallback API key in the Vercel environment, so users don't need to provide their own key. Co-Authored-By: [email protected] <[email protected]> * fix(exa-mcp-server): add rewrite rule for root-level .well-known/mcp-config Adds a Vercel rewrite to serve /.well-known/mcp-config at the root instead of /api/.well-known/mcp-config. Co-Authored-By: [email protected] <[email protected]> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: [email protected] <[email protected]>
Contributor
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Vercel doesn't properly handle dot-prefixed directories (.well-known) in the api/ folder for serverless functions. Moving the endpoint to api/well-known-mcp-config.ts and using a rewrite rule to serve it at /.well-known/mcp-config. Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: [email protected] <[email protected]>
The vercel-mcp-host branch diverged from main and never received the update to use category: 'company' instead of a hardcoded list of news domains (bloomberg, reuters, crunchbase, etc). This was causing the company research tool to only return results from news sources instead of searching across all company-related content. Syncs behavior with main branch. Co-Authored-By: Claude Opus 4.5 <[email protected]>
fix(company-research): use category instead of hardcoded includeDomains
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Merges the
vercel-mcp-hostbranch tomainto enable production deployment on Vercel. This adds:api/mcp.ts) - Supports URL parameters (?tools=,?exaApiKey=,?debug=) with 100% compatibility with the existing Smithery deploymentapi/.well-known/mcp-config.ts) - Exposes JSON Schema for Smithery/MCP clients to discover configuration optionssrc/mcp-handler.ts) - Refactored fromsrc/index.tsso both Smithery and Vercel use the same tool registration code/.well-known/mcp-configto the API functionReview & Testing Checklist for Human
https://exa-mcp-server-nine.vercel.app/.well-known/mcp-configreturns valid JSON (currently 404 because main branch doesn't have these changes)AVAILABLE_TOOLSinapi/.well-known/mcp-config.tsis duplicated fromsrc/mcp-handler.ts- verify they matchsrc/tools/linkedInSearch.tschangedtype: "neural"totype: "auto"- confirm this is intentionalexaApiKeyis optional because "server has a fallback key" - confirmEXA_API_KEYis set in Vercel env varssrc/index.tsshould not break existing Smithery deploymentTest plan:
curl https://exa-mcp-server-nine.vercel.app/.well-known/mcp-configshould return JSON SchemaNotes
Requested by: theishangoswami
Link to Devin run: https://app.devin.ai/sessions/50675cea48174b61b06f11ed32534355