default
Exa
Connect Exa to Elaichi and hand every teammate a governed MCP endpoint — 56 tools ready to call from Claude, Cursor, or any MCP client, clamped by roles, restrictions, and an audit log.
AI tools
Exa tools for your AI agents
56 tools are ready to mint as an MCP endpoint the moment you connect Exa — governed by the same roles, restrictions, and audit log as everything else in Elaichi.
create_a_exa_nevermined_purchase
Purchase an Exa API key with $7 of credits via Nevermined x402 card delegation. For a first-time payer, provisions a new key; for a returning payer, adds $7 of credits to the existing key. Returns: status, apiKey, expiresAt.
delete_a_exa_agent_run_by_id
Delete an exa agent run by id. Returns an empty 204 response on success. Required: id.
get_single_exa_agent_run_by_id
Retrieve an exa agent run by id. Poll this endpoint until the run reaches a terminal state. Returns: id, status (one of queued, running, completed, failed, cancelled). Required: id.
create_a_exa_agent_run
Create a new exa agent run. Returns: id, status reflecting the initial state of the newly created run.
list_all_exa_agent_runs
List all exa agent runs. Returns: id, status per run.
create_a_exa_run
Create an asynchronous Exa Agent run with a natural-language query. Returns: id, query, status, createdAt. Required: query. Optionally provide outputSchema for validated structured JSON output, input.data or input.exclusion to control row processing, or previousRunId to continue from a completed prior run.
list_all_exa_runs
List Exa Agent runs for your team, ordered newest to oldest. Returns: id, query, status, createdAt.
list_all_exa_run_events
List stored Exa agent run events for a given run, returned as a paginated JSON array. Returns event records including id, type, and data for each stored event in the run. Required: run_id.
create_a_exa_answer
Submit a question to exa's answer endpoint, which performs an Exa search and uses an LLM to generate either a direct answer (e.g. factual queries) or a detailed summary with citations (e.g. open-ended queries). Returns: answer, citations. Supports token streaming via stream and structured JSON output via outputSchema. Required: query.
create_a_exa_content
Extract clean, LLM-ready content from one or more URLs using the exa Contents API. Returns: title, url, id, text, highlights, summary, publishedDate, author, image, favicon. Required: urls.
get_single_exa_content_by_id
Get full page content, highlights, or summaries for one or more known URLs using exa. Returns: title, url, id, text, highlights, summary, publishedDate, author, image, favicon. Required: urls.
list_all_exa_contents
List extracted content results for multiple URLs via the exa Contents API. Returns: title, url, id, text, highlights, summary, publishedDate, author, image, favicon. Required: urls.
create_a_exa_context
Search exa for relevant code snippets and examples from open-source repositories, GitHub repos, docs pages, and Stack Overflow posts. Returns: requestId, query, response (formatted code snippets and contextual examples), resultsCount, costDollars, searchTime, and outputTokens. Required: query.
exa_monitors_bulk_update
Perform a batch action (delete, pause, or unpause) on Exa monitors matching the provided filters. Returns: data, has_more. Required: action. Use dry_run: true (the default) to preview which monitors would be affected before committing; repeat requests until has_more is false to process all matches.
create_a_exa_monitor
Create a new Exa monitor that runs recurring searches on a schedule and delivers results to a webhook endpoint with automatic deduplication. Returns: id, search, trigger, status, webhookSecret. Store webhookSecret securely — it is returned only once at creation time.
delete_a_exa_monitor_by_id
Delete an Exa monitor by id. This action cannot be undone. Returns an empty 204 response on success. Required: id.
get_single_exa_monitor_by_id
Get a single Exa monitor by id. Returns: id, search, trigger, status. Required: id.
list_all_exa_monitors
List all Exa monitors for the authenticated team. Returns: id, search, trigger, status. Supports filtering by status; results use cursor-based pagination.
update_a_exa_monitor_by_id
Update an existing Exa monitor by id. All body fields are optional; for search, send only the fields to change. Set trigger to null to remove the schedule. Returns: id, search, trigger, status. Required: id.
get_single_exa_monitor_run_by_id
Get a single exa monitor run by its ID, including the full output when the run has completed. Returns: id, output. Required: monitor_id, id.
list_all_exa_monitor_runs
List all runs for an exa monitor in reverse chronological order using cursor-based pagination. Returns: id, output. Required: monitor_id.
create_a_exa_research_task
Create an asynchronous exa research task that explores the web, gathers sources, synthesizes findings, and returns results with citations. Returns: researchId for polling completion status. Providing an outputSchema generates structured JSON; omitting it produces a detailed markdown report. Deprecated May 1, 2026 — migrate to /search with type "deep-reasoning".
list_all_exa_research_tasks
List exa research tasks using cursor-based pagination (max 50 per page). Returns: researchId per task. Deprecated May 1, 2026 — migrate to /search with type "deep-reasoning".
create_a_exa_search
Search the exa web index and extract content from matching pages. Returns result items including url, title, publishedDate, and content fields (text, highlights, summary) populated based on the contents parameter. Required: query.
list_all_exa_searches
List exa web search results matching a natural language query. Returns result items including url, title, publishedDate, and content fields (text, highlights, summary) populated based on the contents parameter. Required: query.
create_a_exa_api_key
Create a new exa API key for your team with an optional name and rate limit. Returns: id, name, rateLimit, teamId, createdAt.
delete_a_exa_api_key_by_id
Permanently delete an exa API key by id. Returns an empty 204 response on success. Required: id.
get_single_exa_api_key_by_id
Get a specific exa API key by id. Returns: id, name, rateLimit, teamId, createdAt. Required: id.
list_all_exa_api_keys
List all exa API keys belonging to your team. Returns: id, name, rateLimit, teamId, createdAt for each key.
update_a_exa_api_key_by_id
Update the name and/or rate limit of an existing exa API key by id. Returns: id, name, rateLimit, teamId, createdAt. Required: id.
exa_companies_search
Search exa's index of 50M+ companies using natural language queries across industry, funding stage, headcount, geography, and technology. Returns: title, url, and entities — each entity containing id, type, and structured properties including name, foundedYear, headquarters, financials, and webTraffic. Required: query.
exa_news_search
Search exa's real-time news index — spanning major publications, trade press, and niche outlets — using semantic or keyword queries with native date filtering. Returns: url, title, publishedDate, score, id. Required: query.
list_all_exa_search
Search exa for news and web content using natural language queries. Returns a list of results including url, title, score, publishedDate, and optional contents fields (text, highlights, summary). Required: query. numResults accepts 1–100 and defaults to 10.
exa_people_search
Search Exa's index of 1B+ professional profiles using a natural language query. Returns per-result: title, url, and entities containing structured person metadata such as name, location, workHistory, and educationHistory. Required: query.
create_a_exa_agent_run_cancellation
Cancel an in-progress exa agent run by its run_id. Sends a cancellation request to stop the specified run. Returns an empty 204 response on success. Required: run_id.
create_a_exa_monitor_trigger
Trigger an Exa monitor run immediately in exa, bypassing its scheduled interval. Works for monitors with `active` or `paused` status. Returns an empty 204 response on success. Required: monitor_id.
get_single_exa_api_key_usage_by_id
Get usage analytics and billing data for a specific exa API key. Returns api_key_id, usage, and costs, making it suitable for building billing dashboards, monitoring spend, and generating per-key cost-allocation reports. Required: api_key_id.
create_a_exa_webset
Create a new exa Webset that asynchronously searches, verifies, and enriches web results against specified criteria. Returns: id, status, metadata, created_at, updated_at.
list_all_exa_websets
List all exa Websets. Returns: id, status, metadata, created_at, updated_at.
get_single_exa_webset_by_id
Get a single exa Webset by id. Optionally pass expand=["items"] to include the Webset's collected items in the response. Returns: id, status, metadata, created_at, updated_at, items. Required: id.
update_a_exa_webset_by_id
Update an exa Webset by id. Returns: id, status, metadata, created_at, updated_at. Required: id.
delete_a_exa_webset_by_id
Delete an exa Webset by id. Returns the deleted Webset object including id, status, metadata, created_at, and updated_at. Required: id.
create_a_exa_webset_cancellation
Cancel an exa Webset, halting any active searches and transitioning the Webset status to 'canceled'. Returns the updated Webset object including its id, object, status, metadata, created_at, and updated_at. Required: webset_id.
create_a_exa_webset_search
Create a new search within an exa Webset. Returns: id, object, status, query, entity, criteria, progress, createdAt, updatedAt. Required: webset_id, query, count. Criteria list is capped at 5 items; if omitted, exa auto-detects criteria from the query.
get_single_exa_webset_search_by_id
Get a single exa Webset search by id. Returns: id, object, status, query, entity, criteria, progress, websetId, createdAt, updatedAt. Required: webset_id, id.
create_a_exa_webset_search_cancellation
Cancel a running exa webset search, immediately stopping its execution. Returns the updated WebsetSearch object including id, object, status (set to 'canceled'), query, entity, and criteria. Required: webset_id, search_id.
create_a_exa_webset_enrichment
Create an exa Webset enrichment, instructing an AI agent to extract or compute a specific data point for every item in the Webset. Returns: id, status, description, format, title, webset_id, options, instructions, metadata, created_at, updated_at. Required: webset_id, description.
get_single_exa_webset_enrichment_by_id
Get a single exa Webset enrichment by id. Returns: id, status, description, format, title, webset_id, options, instructions, metadata, created_at, updated_at. Required: webset_id, id.
delete_a_exa_webset_enrichment_by_id
Delete an exa Webset enrichment by id. Returns an empty 204 response on success. Required: webset_id, id.
create_a_exa_webset_enrichment_cancellation
Cancel a pending exa webset enrichment. Returns the updated enrichment object including id, status, webset_id, description, format, options, instructions, metadata, created_at, and updated_at. Required: webset_id, enrichment_id.
create_a_exa_webhook
Create a new Exa webhook to receive event notifications at a specified URL. Returns: id, url, events, createdAt. Required: url. If events is omitted, all event types are delivered by default.
list_all_exa_webhooks
List all Exa webhooks configured for your account. Returns: id, url, events, createdAt per webhook.
get_single_exa_webhook_by_id
Get a single Exa webhook by id. Returns: id, url, events, createdAt. Required: id.
update_a_exa_webhook_by_id
Update an existing Exa webhook by id. Returns: id, url, events, createdAt. Required: id.
delete_a_exa_webhook_by_id
Delete an Exa webhook by id. Returns an empty 204 response on success. Required: id.
list_all_exa_webhook_attempts
List delivery attempts for a specific exa webhook. Returns: id, eventId, eventType, webhookId, url, successful, responseStatusCode, responseBody, responseHeaders, attempt, attemptedAt, and object. Required: webhook_id.
How it works
From Exa account to governed MCP endpoint
Connect
Link a Exa account through Elaichi's hosted connect flow. Credentials are vaulted — nobody, including the AI, ever sees them.
Compose
The connection becomes a toolbox instantly. Curate which Exa tools are exposed, rename them, or freeze arguments.
Mint
Mint a personal MCP endpoint on that toolbox and paste it into Claude, Cursor, or any MCP client — governed by roles, restrictions, and audit logs.
Give every teammate a governed MCP server
Start a 14-day Gold trial — connect a product, curate a toolbox, and paste an endpoint into Claude or Cursor in minutes.