{"slug":"exa","name":"Exa MCP","provider_slug":null,"publisher":"official","publisher_name":"Exa","kind":"service-integration","description":"Connect Exa MCP for web search, known-page fetching and authenticated research. Choose tool exposure, account access and how to resume an active Agent run.","tasks":["Discover source URLs and fetch a known page for closer reading.","Enable advanced search filters while preserving the tools the workflow needs.","Run authenticated research and resume an active run by its existing ID."],"limitations":["Keyless hosted access offers rate-limited search and page fetching. The reviewed guide does not establish a numeric anonymous quota. Agent requires authentication.","A tools query parameter replaces the default tool set. A selected tool can disappear after configuration changes even when the connection itself succeeds.","Hosted and local package defaults can differ. The profiles and Agent availability described here apply to the hosted service.","No external search, page fetch or Agent task was run for this listing. Documentation does not establish target success rates or a blanket no-charge rule for failures."],"capabilities":["web-search","scraping-extraction"],"connections":[{"id":"hosted-keyless","label":"Search and fetch without an account","transport":"streamable-http","hosting":"hosted","endpoint":"https://mcp.exa.ai/mcp","package":null,"auth":"No key for rate-limited hosted search and fetching.","prerequisites":["A client supporting remote Streamable HTTP.","Keep the default tool set for the simplest search-to-fetch workflow."],"config_label":"Cursor mcp.json (JSON)","config":"{\n  \"mcpServers\": {\n    \"exa\": {\n      \"url\": \"https://mcp.exa.ai/mcp\"\n    }\n  }\n}","source_ids":["mcp","cursor"]},{"id":"hosted-oauth","label":"Sign in for team usage and Agent","transport":"streamable-http","hosting":"hosted","endpoint":"https://mcp.exa.ai/mcp","package":null,"auth":"OAuth prompted by the ?login URL in a compatible client.","prerequisites":["An Exa account and an MCP client supporting OAuth.","Confirm the intended Exa team before account usage."],"config_label":"Cursor mcp.json (JSON)","config":"{\n  \"mcpServers\": {\n    \"exa\": {\n      \"url\": \"https://mcp.exa.ai/mcp?login\"\n    }\n  }\n}","source_ids":["mcp","billing","cursor"]},{"id":"hosted-api-key","label":"Use an Exa team API key","transport":"streamable-http","hosting":"hosted","endpoint":"https://mcp.exa.ai/mcp","package":null,"auth":"x-api-key header with your own Exa API key.","prerequisites":["An Exa account/API key and client support for HTTP headers.","Check the key’s budget and its team’s remaining credits."],"config_label":"Cursor mcp.json (JSON)","config":"{\n  \"mcpServers\": {\n    \"exa\": {\n      \"url\": \"https://mcp.exa.ai/mcp\",\n      \"headers\": {\n        \"x-api-key\": \"YOUR_EXA_API_KEY\"\n      }\n    }\n  }\n}","source_ids":["mcp","billing","cursor"]},{"id":"hosted-advanced","label":"Add advanced search and retain search/fetch","transport":"streamable-http","hosting":"hosted","endpoint":"https://mcp.exa.ai/mcp","package":null,"auth":"No key required for this rate-limited selected search tool set.","prerequisites":["A client supporting remote HTTP MCP.","This explicit list replaces defaults and omits Agent, including after later authentication."],"config_label":"Cursor mcp.json (JSON)","config":"{\n  \"mcpServers\": {\n    \"exa\": {\n      \"url\": \"https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa,web_search_advanced_exa\"\n    }\n  }\n}","source_ids":["mcp","cursor"]}],"tools":[{"name":"web_search_exa","description":"Search the web for source pages and relevant content; enabled in the default hosted tool set.","task":"Find current documentation for a specific framework feature, retaining source URLs.","source_ids":["mcp"]},{"name":"web_fetch_exa","description":"Fetch content from known URLs; enabled in the default hosted tool set.","task":"Read the selected documentation URL and inspect any returned page error.","source_ids":["mcp","errors"]},{"name":"web_search_advanced_exa","description":"Opt-in search with additional controls and filters. An explicit tools list replaces defaults.","task":"Restrict research using the filters exposed in the connected tool schema.","source_ids":["mcp"]},{"name":"agent_run","description":"Authenticated hosted research. A running response returns an id that can be passed back as runId to wait for the same work.","task":"Start a bounded research task, then resume its existing run rather than starting a second one.","source_ids":["mcp"]}],"commercial":{"account_required":false,"product":"Rate-limited hosted search/fetch without an account. OAuth or a team API key enables account usage and the hosted Agent tool.","billing":"Account usage follows the operation: search requests, returned content pages and Agent effort have different prices. Credits are shared across a team’s keys, with optional per-key budgets. Consult the current pricing table before enabling research.","pricing_url":"https://exa.ai/docs/admin/pricing"},"sources":[{"id":"mcp","label":"Exa hosted MCP setup and current tools","url":"https://exa.ai/docs/get-started/exa-mcp","claims":["Hosted authentication","Default and selected tools","Agent continuation"],"checked_at":"2026-09-28"},{"id":"pricing","label":"Exa operation-specific pricing","url":"https://exa.ai/docs/admin/pricing","claims":["Search and content units","Agent effort pricing"],"checked_at":"2026-09-28"},{"id":"billing","label":"Exa team credits and limits","url":"https://exa.ai/docs/admin/billing","claims":["Shared team credits","Key budgets","Account rate limits"],"checked_at":"2026-09-28"},{"id":"errors","label":"Exa API error handling","url":"https://exa.ai/docs/admin/error-codes","claims":["402 and 429","URL-level fetch failures"],"checked_at":"2026-09-28"},{"id":"repository","label":"Official Exa MCP repository","url":"https://github.com/exa-labs/exa-mcp-server","claims":["Server source","MIT license"],"checked_at":"2026-09-28"},{"id":"cursor","label":"Cursor MCP configuration and headers","url":"https://cursor.com/docs/mcp","claims":["Remote MCP configuration","Project and global configuration locations"],"checked_at":"2026-09-28"}],"checked_at":"2026-09-28","updated_at":"2026-09-28","review_due_at":"2026-10-28","verification":"docs-confirmed","test":null,"status":"published","withdrawal_reason":null,"repository_url":"https://github.com/exa-labs/exa-mcp-server","license":"MIT","editorial":{"seo_title":"Exa MCP: Search, Fetch, Agent Setup & Tool Selection","seo_description":"Set up Exa MCP with keyless search, OAuth or an API key. Keep the right tools enabled, check team billing and resume an Agent run using its existing ID.","intro":"Use the default hosted connection for search and known-page fetching. Sign in or add an API key for Agent research. If you select tools explicitly, include every tool you need: the tools parameter replaces the defaults.","selection":{"best_for":["An assistant that searches for source pages and fetches selected URLs.","Authenticated research that keeps track of a running job and its team budget."],"not_for":["Assuming a search result proves every linked page was fetched successfully.","A raw proxy endpoint or a browser session for clicking through pages."],"source_ids":["mcp","errors","billing"]},"recommended_connection":{"connection_id":"hosted-keyless","reason":"Use the default profile for an initial search-and-fetch task. Choose OAuth or a key for Agent and team usage; choose the advanced profile only when its extra controls are needed.","source_ids":["mcp","cursor"]},"workflow":{"title":"Search, inspect sources and preserve the research run","steps":[{"title":"Check the discovered tool set","body":"Save a profile and reconnect. The base URL exposes search and fetch. If using the advanced profile, confirm all three listed tools are present.","tool_names":["web_search_exa","web_fetch_exa","web_search_advanced_exa"],"source_ids":["mcp","cursor"]},{"title":"Search before fetching only when needed","body":"Search for the source, select relevant URLs, then fetch them. If a URL is already known, start with fetch and inspect the returned content or URL-level failure.","tool_names":["web_search_exa","web_fetch_exa"],"source_ids":["mcp","errors"]},{"title":"Authenticate for Agent","body":"Choose OAuth or the API-key profile, check team credit and key budget, and inspect Agent’s current input schema. An explicit tools list must include agent_run or the tool will stay absent.","tool_names":["agent_run"],"source_ids":["mcp","billing"]},{"title":"Resume the existing run","body":"If Agent returns status running and an id, call agent_run with that value as runId to wait for the same job. Use previousRunId only when starting a new follow-up to completed research.","tool_names":["agent_run"],"source_ids":["mcp"]}]},"troubleshooting":[{"symptom":"Agent or a default tool is missing","resolution":"Check authentication and the tools query parameter. Authenticated hosted connections enable Agent by default, but an explicit tool list replaces that default set.","source_ids":["mcp"]},{"symptom":"402 even though the API key is valid","resolution":"Check the team’s remaining credits and the individual key’s budget. These are account-spend controls; repeated retries do not replenish them.","source_ids":["billing","errors"]},{"symptom":"429 or incomplete fetched content","resolution":"For 429, reduce request load under the applicable limits. Separately inspect URL-level errors in fetched results: a successful API request can include a failed page fetch.","source_ids":["billing","errors"]}],"faqs":[{"question":"Does Exa MCP require an API key?","answer":"Hosted search and fetching can start without a key under rate limits. Agent requires account authentication; OAuth provides that without pasting an API key into this configuration.","source_ids":["mcp"]},{"question":"Does enabling advanced search keep the default tools?","answer":"An explicit tools parameter replaces defaults. The advanced profile includes web_search_exa and web_fetch_exa as well as web_search_advanced_exa. Add agent_run to the list if an authenticated workflow needs it.","source_ids":["mcp"]},{"question":"Does runId start another research job?","answer":"Passing the returned id as runId resumes waiting for the existing Agent run. previousRunId has a different role: it starts new follow-up research using a completed run as context.","source_ids":["mcp"]}]},"url":"https://workingproxysites.info/mcp/exa","provider_url":null,"review_due":false,"version":null}