{"_id":"@199bio/exa-mcp-server","_rev":"2-444596a965ba2e92c823415455418a09","name":"@199bio/exa-mcp-server","dist-tags":{"latest":"2.0.0"},"versions":{"2.0.0":{"name":"@199bio/exa-mcp-server","version":"2.0.0","keywords":["mcp","search mcp","model context protocol","exa","search","websearch","claude","ai","research","papers","linkedin"],"author":{"name":"Exa Labs"},"_id":"@199bio/exa-mcp-server@2.0.0","maintainers":[{"name":"199bio","email":"dboris@gmail.com"}],"homepage":"https://github.com/exa-labs/exa-mcp-server#readme","bugs":{"url":"https://github.com/exa-labs/exa-mcp-server/issues"},"bin":{"exa-mcp-server":".smithery/index.cjs"},"dist":{"shasum":"37cb37c4f0dc465bf7b59c30795ff9c989ff6e58","tarball":"https://registry.npmjs.org/@199bio/exa-mcp-server/-/exa-mcp-server-2.0.0.tgz","fileCount":4,"integrity":"sha512-jPpoQkVfD/CGaZU+V5RRv2rnmra7DULUEy4AAS1XCPJPdO1OQQbO3g9VE6zTXkGw1e3c9NsRW4UhewM/ojrlbg==","signatures":[{"sig":"MEUCIQC5j8ivf0KvRYs44tOAtA7VsNn85uwYHuw7KGCGG8SjoQIgZrb9YF+5QV6bwMp9+zuwxA+YnyjYfHDhQ+ENJQH9ams=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3627592},"type":"module","module":"./src/index.ts","engines":{"node":">=18.0.0"},"gitHead":"8ed115432e3e31238e45cd765a90d92f72fcd318","scripts":{"dev":"npx @smithery/cli@latest dev","build":"npm run build:shttp","watch":"tsc --watch","prepare":"npm run build:stdio","inspector":"npx @modelcontextprotocol/inspector build/index.js","build:shttp":"npx @smithery/cli@latest build src/index.ts --transport shttp","build:stdio":"npx @smithery/cli@latest build src/index.ts --transport stdio && echo '#!/usr/bin/env node' | cat - .smithery/index.cjs > temp && mv temp .smithery/index.cjs && chmod +x .smithery/index.cjs","prepublishOnly":"npm run build:stdio"},"_npmUser":{"name":"199bio","email":"dboris@gmail.com"},"repository":{"url":"git+https://github.com/exa-labs/exa-mcp-server.git","type":"git"},"_npmVersion":"10.9.0","description":"A Model Context Protocol server with Exa for web search, academic paper search, and Twitter/X.com search. Provides real-time web searches with configurable tool selection, allowing users to enable or disable specific search capabilities. Supports customiz","directories":{},"_nodeVersion":"22.12.0","dependencies":{"zod":"^3.22.4","axios":"^1.7.8","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","typescript":"^5.3.3","@types/node":"^20.11.24"},"_npmOperationalInternal":{"tmp":"tmp/exa-mcp-server_2.0.0_1753438642969_0.3874449522578822","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-07-25T10:17:22.904Z","modified":"2025-12-22T14:26:41.160Z","2.0.0":"2025-07-25T10:17:23.208Z"},"bugs":{"url":"https://github.com/exa-labs/exa-mcp-server/issues"},"author":{"name":"Exa Labs"},"homepage":"https://github.com/exa-labs/exa-mcp-server#readme","keywords":["mcp","search mcp","model context protocol","exa","search","websearch","claude","ai","research","papers","linkedin"],"repository":{"url":"git+https://github.com/exa-labs/exa-mcp-server.git","type":"git"},"description":"A Model Context Protocol server with Exa for web search, academic paper search, and Twitter/X.com search. Provides real-time web searches with configurable tool selection, allowing users to enable or disable specific search capabilities. Supports customiz","maintainers":[{"email":"dboris@gmail.com","name":"199-bio"}],"readme":"# Exa MCP Server 🔍\n[![npm version](https://badge.fury.io/js/exa-mcp-server.svg)](https://www.npmjs.com/package/exa-mcp-server)\n[![smithery badge](https://smithery.ai/badge/exa)](https://smithery.ai/server/exa)\n\nA Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.\n\n## 🔀 About This Fork\n\nThis is an enhanced fork of the original [Exa MCP Server](https://github.com/exa-labs/exa-mcp-server) by the Exa team. This fork adds support for Server-Sent Events (SSE) to enable remote MCP connections for any platform that supports SSE-based communication.\n\n### Key Improvements\n- **SSE Support**: Added Server-Sent Events transport for remote MCP connections with heartbeat to prevent proxy timeouts\n- **Secure API Key Handling**: Enhanced security by accepting API keys as URL parameters instead of environment variables\n- **Vercel Deployment**: Improved deployment configuration for self-hosting on Vercel\n- **Performance Optimizations**: Implemented connection pooling with HTTP keep-alive for faster API requests\n- **Better Error Handling**: Properly surfaces 4xx errors (rate limits, etc.) for cleaner debugging\n- **Interactive Landing Page**: Added a minimalist schema viewer at [exa.atp.dev](https://exa.atp.dev) that dynamically displays available tools\n\n### Credits\n- **Original Authors**: The Exa team at [Exa AI](https://exa.ai)\n- **Fork Maintainer**: [Boris Djordjevic](https://github.com/BorisDjordje) at [199 Biotechnologies](https://github.com/199-biotechnologies)\n\n## Installation Options\n\n### Option 1: Remote Hosted Server (Recommended) 🌐\n\nConnect directly to Exa's hosted MCP server without running anything locally.\n\n#### For Claude Desktop\n\nAdd this to your Claude Desktop configuration file:\n\n```json\n{\n  \"mcpServers\": {\n    \"exa\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"mcp-remote\",\n        \"https://mcp.exa.ai/mcp?exaApiKey=your-exa-api-key\"\n      ]\n    }\n  }\n}\n```\n\nReplace `your-exa-api-key` with your actual Exa API key from [dashboard.exa.ai/api-keys](https://dashboard.exa.ai/api-keys).\n\n#### For SSE-Compatible Platforms\n\nFor platforms that support SSE-based MCP connections, use:\n\n- **Server type**: SSE\n- **URL**: `https://exa.atp.dev/api/mcp?exaApiKey=your-exa-api-key`\n\nReplace `your-exa-api-key` with your actual Exa API key from [dashboard.exa.ai/api-keys](https://dashboard.exa.ai/api-keys).\n\n### Option 2: Local Installation\n\n#### NPM Installation\n\n```bash\nnpm install -g exa-mcp-server\n```\n\n#### Using Smithery\n\nTo install the Exa MCP server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/exa):\n\n```bash\nnpx -y @smithery/cli install exa --client claude\n```\n\n## Configuration ⚙️\n\n### 1. Configure Claude Desktop to recognize the Exa MCP server\n\nYou can find claude_desktop_config.json inside the settings of Claude Desktop app:\n\nOpen the Claude Desktop app and enable Developer Mode from the top-left menu bar. \n\nOnce enabled, open Settings (also from the top-left menu bar) and navigate to the Developer Option, where you'll find the Edit Config button. Clicking it will open the claude_desktop_config.json file, allowing you to make the necessary edits. \n\nOR (if you want to open claude_desktop_config.json from terminal)\n\n#### For macOS:\n\n1. Open your Claude Desktop configuration:\n\n```bash\ncode ~/Library/Application\\ Support/Claude/claude_desktop_config.json\n```\n\n#### For Windows:\n\n1. Open your Claude Desktop configuration:\n\n```powershell\ncode %APPDATA%\\Claude\\claude_desktop_config.json\n```\n\n### 2. Add the Exa server configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"exa\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"exa-mcp-server\"],\n      \"env\": {\n        \"EXA_API_KEY\": \"your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\nReplace `your-api-key-here` with your actual Exa API key from [dashboard.exa.ai/api-keys](https://dashboard.exa.ai/api-keys).\n\n### 3. Available Tools & Tool Selection\n\nThe Exa MCP server includes the following tools, which can be enabled by adding the `--tools`:\n\n- **web_search**: Searches the web in real-time. Returns: page content, titles, URLs. Use when: need current information beyond training data.\n- **academic_search**: Searches academic papers and research. Returns: paper abstracts, citations, authors. Use when: need peer-reviewed sources.\n- **company_search**: Searches company information and news. Returns: business data, financials, recent news. Use when: researching businesses or organizations.\n- **url_content**: Extracts full content from specific URLs. Returns: complete page text, metadata. Use when: have exact URL to analyze.\n- **competitor_search**: Finds business competitors. Returns: similar companies, market analysis. Use when: asked 'who competes with X' or competitive analysis.\n- **linkedin_search**: Searches LinkedIn profiles and companies. Returns: professional profiles, company pages. Use when: researching people or professional networks.\n- **wikipedia_search**: Searches Wikipedia encyclopedia. Returns: article summaries, factual content. Use when: need encyclopedic or reference information.\n- **github_search**: Searches GitHub repositories and code. Returns: repos, code snippets, READMEs. Use when: looking for code examples or open source projects.\n\nYou can choose which tools to enable by adding the `--tools` parameter to your Claude Desktop configuration:\n\n#### Specify which tools to enable:\n\n```json\n{\n  \"mcpServers\": {\n    \"exa\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"exa-mcp-server\",\n        \"--tools=web_search,academic_search,company_search,url_content,competitor_search,linkedin_search,wikipedia_search,github_search\"\n      ],\n      \"env\": {\n        \"EXA_API_KEY\": \"your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\nFor enabling multiple tools, use a comma-separated list:\n\n```json\n{\n  \"mcpServers\": {\n    \"exa\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"exa-mcp-server\",\n        \"--tools=web_search,academic_search,company_search,url_content,competitor_search,linkedin_search,wikipedia_search,github_search\"\n      ],\n      \"env\": {\n        \"EXA_API_KEY\": \"your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\nIf you don't specify any tools, all tools enabled by default will be used.\n\n### 4. Restart Claude Desktop\n\nFor the changes to take effect:\n\n1. Completely quit Claude Desktop (not just close the window)\n2. Start Claude Desktop again\n3. Look for the icon to verify the Exa server is connected\n\n## Using via NPX\n\nIf you prefer to run the server directly, you can use npx:\n\n```bash\n# Run with all tools enabled by default\nnpx exa-mcp-server\n\n# Enable specific tools only\nnpx exa-mcp-server --tools=web_search\n\n# Enable multiple tools\nnpx exa-mcp-server --tools=web_search,academic_search\n\n# List all available tools\nnpx exa-mcp-server --list-tools\n```\n\n## Self-Hosting on Vercel 🚀\n\nYou can deploy your own instance of the Exa MCP server on Vercel:\n\n1. Fork this repository\n2. Deploy to Vercel using the button below:\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/exa-labs/exa-mcp-server)\n\n3. Your server will be available at `https://your-project.vercel.app/api/mcp`\n\n### Using Your Self-Hosted Server\n\n#### With Claude Desktop\n```json\n{\n  \"mcpServers\": {\n    \"exa\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"mcp-remote\",\n        \"https://your-project.vercel.app/api/mcp?exaApiKey=your-exa-api-key\"\n      ]\n    }\n  }\n}\n```\n\n#### With SSE-Compatible Platforms\n- **Server type**: SSE\n- **URL**: `https://your-project.vercel.app/api/mcp?exaApiKey=your-exa-api-key`\n\nReplace `your-exa-api-key` with your actual Exa API key.\n\n## Troubleshooting 🔧\n\n### Common Issues\n\n1. **Server Not Found**\n   * Verify the npm link is correctly set up\n   * Check Claude Desktop configuration syntax (json file)\n\n2. **API Key Issues**\n   * Confirm your EXA_API_KEY is valid\n   * Check the EXA_API_KEY is correctly set in the Claude Desktop config\n   * Verify no spaces or quotes around the API key\n\n3. **Connection Issues**\n   * Restart Claude Desktop completely\n   * Check Claude Desktop logs:\n\n---\n\nFork enhanced with SSE support by [Boris Djordjevic](https://github.com/BorisDjordje) at [199 Biotechnologies](https://github.com/199-biotechnologies)","readmeFilename":"README.md"}