# Exa — MCP server on mcp.ai > Connect your Exa account and use 18 tools for web scraping straight from your AI agent. Connect with your own API key. Exa focuses on data extraction and search, helping teams gather, analyze, and visualize information from websites, APIs, or internal databases. By: mcp.ai · official Page: https://mcp.ai/exa ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_exa?ms=1787291520000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/exa/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/exa/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/exa/skill.md Postman collection (v2.1): https://mcp.ai/exa/postman.json ## Tools - exa_answer(text?: boolean, model?: string, query: string, stream?: boolean) — Generates a direct, citation-backed answer to a clear natural language question or topic using Exa's search, adept at both specific answers and detailed summaries for open-ended queries. Response cont - exa_create_import(csv?: object, size?: integer, count?: integer, title?: string, entity: object, format: string, metadata?: object) — Tool to create a new import to upload data into a Webset. Use when you need to initialize an import before uploading the data file. - exa_create_monitor(cadence: object, behavior: object, metadata?: object, websetId: string) — Tool to create a new Monitor. Use when you need to schedule automated updates for a Webset without manual runs. - exa_create_research(model?: string, instructions: string, outputSchema?: object) — Creates an asynchronous research task that explores the web, gathers sources, synthesizes findings, and returns results with citations. The API responds immediately with a researchId for polling compl - exa_create_webset(import?: object[], search: object, metadata?: object, externalId?: string, enrichments?: object[]) — Tool to create a new Webset with search, import, and enrichment setup. Use when you need to configure and seed a Webset in one call. - exa_delete_import(id: string) — Tool to delete an existing import. Use when you need to permanently remove an import by its ID. - exa_delete_webset(id: string) — Tool to delete a Webset. Use after confirming the Webset ID to permanently remove the Webset and all its items. - exa_find_similar(url: string, text?: boolean, summary?: boolean, highlights?: boolean, num_results?: integer) — DEPRECATED: /findSimilar is a legacy endpoint and is no longer recommended for new integrations. Migrate to EXA_SEARCH with type='deep-lite' or 'deep' passing a URL-shaped query, optionally with the n - exa_get_api_key(apiKeyId: string) — Tool to retrieve details of a specific API key by its ID. Use when you need to fetch information about an API key in the team management context. - exa_get_contents_action(ids?: string[], text?: boolean|object, urls?: string[], extras?: object, summary?: boolean|object, subpages?: integer, highlights?: boolean|object, maxAgeHours?: integer, subpageTarget?: string|string[], livecrawlTimeout?: integer) — Retrieve text / highlights / summary / subpages from URLs. The endpoint returns HTTP 200 even when individual URLs fail — always inspect `statuses[]` for CRAWL_NOT_FOUND, CRAWL_LIVECRAWL_TIMEOUT, SOUR - exa_get_event(id: string) — Tool to get details of a specific event by its ID. Use when you have an event ID and need its full details. - exa_get_research(events?: boolean, stream?: boolean, researchId: string) — Tool to retrieve the status and results of a previously created research task. Use the unique researchId returned from POST /research/v1 to poll until the task is finished. - exa_list_events(limit?: integer, types?: string[], cursor?: string, createdAfter?: string, createdBefore?: string) — Tool to list all events that have occurred in the system. Use when you need to paginate through the event history. - exa_list_imports(limit?: integer, cursor?: string) — Tool to list all imports for the Webset. Use when you need to paginate through and monitor import jobs. - exa_list_research(limit?: integer, cursor?: string) — Tool to retrieve a paginated list of your research tasks. Use when you need to view or monitor research jobs with cursor-based pagination. - exa_list_webhooks(limit?: integer, cursor?: string) — Tool to list all webhooks for Websets. Use when you need to view existing webhooks and paginate through results. - exa_search(type?: string, query: string, category?: string, contents?: object, compliance?: string, moderation?: boolean, numResults?: integer, excludeText?: string[], includeText?: string[], outputSchema?: object, systemPrompt?: string, userLocation?: string, excludeDomains?: string[], includeDomains?: string[], endPublishedDate?: string, additionalQueries?: string[], startPublishedDate?: string) — Web search via the Exa engine. Returns ranked results with optional per-result text/highlights/summary (set the nested `contents` object). For agent workflows prefer `contents.highlights=true` — 10× f - exa_update_import(id: string, title?: string, metadata?: object) — Tool to update an import configuration by ID. Use when you need to modify an import's title or metadata. ## Example prompts - "What can I do in Exa?" - "Show me a summary of my Exa account" ## Links Docs: https://mcp.ai/docs/mcps/exa Website: https://mcp.ai/mcps/exa