Exa MCP Server
The Exa MCP Server enables AI assistants to perform real-time web searches and access specialized tools using the Exa AI Search API. Here's what you can do with it:
Perform real-time web searches: Query the web for optimized results with customizable parameters (1-50 results).
Search academic papers: Access research-focused content.
Conduct company research: Gather detailed information about businesses.
Extract web content: Crawl specific URLs to read articles, PDFs, or other web pages.
Find competitors: Identify businesses offering similar products or services.
Search LinkedIn: Look up companies and people.
Access Wikipedia: Retrieve structured knowledge from Wikipedia articles.
Search GitHub: Find repositories, issues, and accounts.
Configure custom tools: Enable specific tools via the
--toolsparameter in the configuration.Run standalone server: Use
npxto launch the server directly.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Exa MCP Serversearch for the latest React documentation on hooks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Installation
Connect to Exa's hosted MCP server:
https://mcp.exa.ai/mcpOr use a plugin when your client supports one.
Agent Plugin
This repository is an Agent Plugin. Install it with any compatible client.
Claude
Install from the Claude Plugin Marketplace, or run:
claude plugin install exa@claude-plugins-officialCodex / ChatGPT
Install via Plugins in ChatGPT, or run:
codex mcp add exa --url https://mcp.exa.ai/mcpOther MCP Clients
Most clients can be configured manually with the standard mcpServers shape:
{
"mcpServers": {
"exa": {
"type": "streamable-http",
"url": "https://mcp.exa.ai/mcp",
}
}
}Exa MCP works with most other clients, point them at https://mcp.exa.ai/mcp.
Client | Where to add it |
Kiro | Use the Kiro power, or add manually to |
LM Studio | Add to LM Studio, or add manually to |
Replit | |
Grok Build |
|
Gemini CLI | Add manually to |
OpenCode | Add manually to |
Windsurf | Add manually to |
Google Antigravity | Add manually to |
Zed | Add manually to |
Warp | |
v0 by Vercel |
Related MCP server: Exa MCP Server
Available Tools
Default Tools
Tool | Description |
| Search the web for any topic and get clean, ready-to-use content |
| Read a webpage's full content as clean markdown from one or more URLs |
Optional Tools (enable via the tools parameter)
Tool | Description |
| Run an Exa Agent for multi-step research, list-building, enrichment, and structured output |
| Advanced search with filters, domains, dates, highlights, summaries, and subpage crawling |
Enable tools by appending them to the MCP URL (this will replace the defaults, so include all you want):
https://mcp.exa.ai/mcp?tools=web_search_advanced_exa
https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa,agent_runExa Agent requires authentication (OAuth or an API key).
Agent Skills
Skills live in skills/ and load with Agent Plugin / Claude plugin installs.
Skill | Path | Use when |
| Deep research, lead gen, competitive analysis, multi-step web investigation | |
| Exa Agent runs, enrichment, structured output, Connect providers |
Invoke from your client's skill UI (or /skill-name where supported). MCP-only setups still get the tools; skills add orchestration on top.
Authentication
The hosted MCP server works anonymously with rate limits. For higher limits and access to Exa Agent, use either OAuth or an API key.
OAuth is preferred: most clients prompt you to sign in to Exa. To force the login flow (useful for shared connectors and plugins), use https://mcp.exa.ai/mcp?login or https://mcp.exa.ai/mcp/oauth.
If you prefer, you can get an API key from the dashboard and pass it on the URL as ?exaApiKey=…. You can also send it as a Authorization: Bearer … header or an x-api-key header.
Built with ❤️ by Exa
Available Tools
8 toolscompany_research_exaCInspect
Research companies using Exa AI - finds comprehensive information about businesses, organizations, and corporations. Provides insights into company operations, news, financial information, and industry analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| companyName | Yes | Name of the company to research | |
| numResults | No | Number of search results to return (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While it mentions the tool 'finds comprehensive information' and 'provides insights', it doesn't describe what format the results come in, whether there are rate limits, authentication requirements, cost implications, or how the tool handles ambiguous company names. For a research tool with no annotation coverage, this leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences that clearly communicate the tool's purpose and capabilities. The first sentence establishes the core function, and the second elaborates on the types of insights provided. There's no wasted language, though it could be slightly more specific about the tool's scope relative to siblings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a research tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what format the results will be in, how comprehensive the information actually is, whether there are limitations on company types or regions, or what happens when no information is found. The description covers basic purpose but leaves too many practical usage questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters ('companyName' and 'numResults'). The description doesn't add any parameter-specific information beyond what's in the schema. It mentions researching companies generally but provides no additional context about parameter usage, formatting requirements, or search behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Research companies using Exa AI' with specific resources ('businesses, organizations, corporations') and outcomes ('comprehensive information', 'insights into company operations, news, financial information, and industry analysis'). It distinguishes from generic search tools but doesn't explicitly differentiate from sibling tools like 'linkedin_search_exa' or 'deep_researcher_start'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools including 'linkedin_search_exa', 'web_search_exa', and 'deep_researcher_start', there's no indication of when this company-specific research tool is preferred over other search or research tools. The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crawling_exaBInspect
Extract and crawl content from specific URLs using Exa AI - retrieves full text content, metadata, and structured information from web pages. Ideal for extracting detailed content from known URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL to crawl and extract content from | |
| maxCharacters | No | Maximum characters to extract (default: 3000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions what the tool retrieves ('full text content, metadata, and structured information') but lacks critical behavioral details: no information about rate limits, authentication requirements, error handling, or what happens when maxCharacters is exceeded. For a web crawling tool with no annotation coverage, this leaves significant gaps in understanding operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that each serve a purpose: the first defines the core functionality, the second provides usage context. It's front-loaded with the main purpose. While efficient, the second sentence could be slightly more specific about the 'known URLs' distinction compared to sibling tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters with 100% schema coverage but no annotations and no output schema, the description provides adequate basic context about what the tool does. However, for a web crawling tool that likely has operational constraints (rate limits, authentication, error cases) and returns complex data, the description should ideally mention more about behavioral aspects and expected output format since there's no output schema to document return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain URL format requirements, character counting methodology, or provide examples. With complete schema coverage, the baseline score of 3 is appropriate as the description doesn't enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Extract and crawl content from specific URLs using Exa AI - retrieves full text content, metadata, and structured information from web pages.' It specifies the verb ('extract and crawl'), resource ('content from specific URLs'), and technology ('Exa AI'). However, it doesn't explicitly distinguish this tool from sibling tools like 'web_search_exa' or 'deep_search_exa', which likely have different search/crawling approaches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some implied usage context: 'Ideal for extracting detailed content from known URLs' suggests this tool is for targeted extraction when URLs are already identified. However, it doesn't explicitly state when NOT to use this tool or mention alternatives among the sibling tools (e.g., when to use 'web_search_exa' for broader searches vs. this tool for specific URL extraction).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deep_researcher_checkAInspect
Check the status and retrieve results of a deep research task. This tool monitors the progress of an AI agent that performs comprehensive web searches, analyzes multiple sources, and synthesizes findings into detailed research reports. The tool includes a built-in 5-second delay before checking to allow processing time. IMPORTANT: You must call this tool repeatedly (poll) until the status becomes 'completed' to get the final research results. When status is 'running', wait a few seconds and call this tool again with the same task ID.
| Name | Required | Description | Default |
|---|---|---|---|
| taskId | Yes | The task ID returned from deep_researcher_start tool |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so effectively. It discloses key behavioral traits: the built-in 5-second delay before checking, the polling requirement, and the status-based workflow ('running' vs 'completed'). It doesn't cover error handling or rate limits, but provides substantial operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with zero wasted sentences. It front-loads the core purpose, then provides essential operational details (delay, polling instructions). Every sentence earns its place by conveying critical information for correct tool invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no annotations and no output schema, the description provides excellent context about the polling behavior and workflow. It could be more complete by describing the output format or error conditions, but given the tool's relative simplicity, it covers the most critical aspects well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single parameter (taskId). The description adds context by specifying that the taskId comes from deep_researcher_start, which is helpful but doesn't provide additional semantic meaning beyond what the schema indicates. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('check the status', 'retrieve results') and identifies the resource ('deep research task'). It distinguishes from siblings like deep_researcher_start (which initiates research) by focusing on monitoring and result retrieval rather than task creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage instructions: call this tool repeatedly (poll) until status becomes 'completed', and when status is 'running', wait a few seconds and call again with the same task ID. It also implicitly distinguishes from siblings by referencing deep_researcher_start as the source of the task ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deep_researcher_startAInspect
Start a comprehensive AI-powered deep research task for complex queries. This tool initiates an intelligent agent that performs extensive web searches, crawls relevant pages, analyzes information, and synthesizes findings into a detailed research report. The agent thinks critically about the research topic and provides thorough, well-sourced answers. Use this for complex research questions that require in-depth analysis rather than simple searches. After starting a research task, IMMEDIATELY use deep_researcher_check with the returned task ID to monitor progress and retrieve results.
| Name | Required | Description | Default |
|---|---|---|---|
| instructions | Yes | Complex research question or detailed instructions for the AI researcher. Be specific about what you want to research and any particular aspects you want covered. | |
| model | No | Research model: 'exa-research' (faster, 15-45s, good for most queries) or 'exa-research-pro' (more comprehensive, 45s-2min, for complex topics). Default: exa-research |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the agent's behavior (performs web searches, crawls pages, analyzes information, synthesizes findings) and mentions timing considerations via model options, but lacks details on rate limits, authentication needs, or error handling that would be valuable for an AI agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose, followed by usage guidance and operational instructions. While efficient, the second sentence could be slightly more concise by combining some elements of the agent's actions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (initiating an AI research agent) and lack of annotations/output schema, the description does well by explaining the agent's behavior, model options, and follow-up process. However, it could better address potential limitations or failure modes to be fully complete for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description doesn't add any meaningful parameter semantics beyond what's in the schema, maintaining the baseline score of 3 for adequate but not enhanced parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('start', 'initiates') and resources ('comprehensive AI-powered deep research task', 'intelligent agent'), distinguishing it from siblings like 'deep_search_exa' or 'web_search_exa' by emphasizing complex queries requiring in-depth analysis rather than simple searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('for complex research questions that require in-depth analysis rather than simple searches') and provides clear alternatives by naming 'deep_researcher_check' as the follow-up tool for monitoring progress, with implicit guidance against using simpler search tools for such tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deep_search_exaBRead-onlyIdempotentInspect
Searches the web and return results in a natural language format.
| Name | Required | Description | Default |
|---|---|---|---|
| objective | Yes | Natural language description of what the web search is looking for. Try to make the search query atomic - looking for a specific piece of information. May include guidance about preferred sources or freshness. | |
| search_queries | No | Optional list of keyword search queries, may include search operators. The search queries should be related to the user's objective. Limited to 5 entries of up to 5 words each (around 200 characters). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, repeatable read operation. The description adds minimal behavioral context beyond this - it mentions the output format ('natural language format') but doesn't disclose rate limits, authentication needs, or other operational constraints that would be helpful for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that states the core functionality. There's no wasted language or unnecessary elaboration. It's front-loaded with the essential information about what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with good annotations (readOnly, idempotent, non-destructive) and full schema coverage, the description is minimally adequate. However, without an output schema and with multiple sibling tools that likely overlap in functionality, the description should do more to explain what makes this tool unique and what kind of results to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already fully documents both parameters ('objective' and 'search_queries'). The description doesn't add any meaningful parameter semantics beyond what's in the schema - it doesn't explain how parameters interact or provide usage examples. The baseline of 3 is appropriate when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Searches the web and return results in a natural language format.' It specifies the verb ('searches'), resource ('the web'), and output format ('natural language format'), but doesn't explicitly differentiate it from sibling tools like 'web_search_exa' or 'company_research_exa' which likely have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple sibling tools like 'web_search_exa', 'company_research_exa', and 'linkedin_search_exa', there's no indication of what makes 'deep_search_exa' distinct or when it should be preferred over other search tools on the server.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_code_context_exaARead-onlyIdempotentInspect
Search and get relevant context for any programming task. Exa-code has the highest quality and freshest context for libraries, SDKs, and APIs. Use this tool for ANY question or task for related to programming. RULE: when the user's query contains exa-code or anything related to code, you MUST use this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query to find relevant context for APIs, Libraries, and SDKs. For example, 'React useState hook examples', 'Python pandas dataframe filtering', 'Express.js middleware', 'Next js partial prerendering configuration' | |
| tokensNum | No | Number of tokens to return (1000-50000). Default is 5000 tokens. Adjust this value based on how much context you need - use lower values for focused queries and higher values for comprehensive documentation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a safe read-only, idempotent operation. The description adds valuable behavioral context beyond annotations: it specifies the tool provides 'the highest quality and freshest context' and is optimized for 'libraries, SDKs, and APIs.' However, it doesn't mention potential rate limits, authentication requirements, or output format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with three sentences: purpose statement, quality claim, and usage rule. Each sentence adds distinct value. While concise, the quality claim ('highest quality and freshest context') could be more specific about what constitutes 'quality' in this context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with comprehensive annotations and full schema coverage, the description provides adequate context about purpose, scope, and mandatory usage rules. The main gap is the lack of output schema, but the description compensates somewhat by indicating the type of content returned (programming context). A more complete description would briefly mention the return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already fully documents both parameters. The description doesn't add any parameter-specific information beyond what's in the schema. The baseline score of 3 is appropriate when the schema carries the full parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search and get relevant context for any programming task' with specific resources mentioned ('libraries, SDKs, and APIs'). It distinguishes from sibling tools by focusing exclusively on programming-related queries, unlike general web search or company research tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage rules: 'Use this tool for ANY question or task related to programming' and includes a mandatory directive: 'RULE: when the user's query contains exa-code or anything related to code, you MUST use this tool.' This gives clear when-to-use guidance and distinguishes it from non-programming alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linkedin_search_exaBInspect
Search LinkedIn profiles and companies using Exa AI - finds professional profiles, company pages, and business-related content on LinkedIn. Useful for networking, recruitment, and business research.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | LinkedIn search query (e.g., person name, company, job title) | |
| searchType | No | Type of LinkedIn content to search (default: all) | |
| numResults | No | Number of LinkedIn results to return (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions what the tool finds but doesn't describe important behavioral traits like rate limits, authentication requirements, response format, pagination behavior, or whether this is a read-only operation. The description is functional but lacks operational transparency needed for an agent to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized at two sentences, with the first sentence stating the core functionality and the second providing usage context. It's front-loaded with the essential information and avoids unnecessary elaboration. Every sentence earns its place, though the second sentence could be slightly more specific.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a search tool with 3 parameters. It doesn't describe what the return format looks like (structured data, raw HTML, JSON), how results are ranked, error conditions, or any limitations of the LinkedIn search through Exa AI. For a tool with no structured behavioral metadata, the description should provide more operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema - it doesn't explain query construction best practices, searchType implications, or numResults limitations. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches LinkedIn profiles and companies using Exa AI, specifying the resource (LinkedIn) and purpose (finding professional profiles, company pages, business content). It distinguishes from some siblings like web_search_exa by mentioning LinkedIn specifically, but doesn't explicitly differentiate from company_research_exa or deep_search_exa which might have overlapping domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage context ('useful for networking, recruitment, and business research'), suggesting when this tool might be appropriate. However, it doesn't explicitly state when to use this tool versus alternatives like company_research_exa or deep_search_exa, nor does it provide any exclusion criteria or specific prerequisites for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_search_exaBRead-onlyIdempotentInspect
Search the web using Exa AI - performs real-time web searches and can scrape content from specific URLs. Supports configurable result counts and returns the content from the most relevant websites.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Websearch query | |
| numResults | No | Number of search results to return (default: 8) | |
| livecrawl | No | Live crawl mode - 'fallback': use live crawling as backup if cached content unavailable, 'preferred': prioritize live crawling (default: 'fallback') | |
| type | No | Search type - 'auto': balanced search (default), 'fast': quick results, 'deep': comprehensive search | |
| contextMaxCharacters | No | Maximum characters for context string optimized for LLMs (default: 10000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds some behavioral context: 'performs real-time web searches,' 'can scrape content from specific URLs,' and 'returns the content from the most relevant websites.' This provides useful operational details beyond annotations, though it doesn't cover aspects like rate limits or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with two sentences that efficiently convey core functionality. The first sentence covers the main purpose and key features, while the second adds result and content details. There's no wasted text, though it could be slightly more structured for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 parameters, no output schema) and rich annotations, the description is somewhat complete but has gaps. It explains what the tool does and some behavioral traits, but lacks usage guidelines and detailed output information. Without an output schema, the description doesn't clarify return values (e.g., format, structure), which is a notable omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters well-documented in the schema (e.g., query, numResults defaults, livecrawl modes). The description adds minimal parameter semantics, mentioning 'configurable result counts' and implying content return, but doesn't provide syntax or format details beyond the schema. This meets the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search the web using Exa AI - performs real-time web searches and can scrape content from specific URLs.' It specifies the verb ('search'), resource ('web'), and key capabilities (real-time search, URL scraping). However, it doesn't explicitly differentiate from sibling tools like 'deep_search_exa' or 'crawling_exa', which appear related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions capabilities like configurable results and content scraping, but doesn't specify scenarios, prerequisites, or exclusions. With multiple sibling tools (e.g., 'deep_search_exa', 'crawling_exa'), this lack of differentiation is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The tools have overlapping purposes that could cause confusion. For example, web_search_exa and deep_search_exa both perform web searches, with the latter adding natural language formatting, while crawling_exa and web_search_exa both handle URL content extraction. However, descriptions help differentiate some specialized tools like get_code_context_exa and linkedin_search_exa.
Most tools follow a consistent snake_case pattern with a '_exa' suffix, such as company_research_exa and web_search_exa. The main deviation is deep_researcher_start and deep_researcher_check, which use a different naming style without the suffix, slightly breaking the pattern.
With 8 tools, the count is well-scoped for a server focused on web research and data extraction. Each tool serves a distinct function within this domain, such as company research, LinkedIn searches, and code context retrieval, making the set appropriately sized.
The toolset covers core research workflows, including starting and checking deep research tasks, general and specialized searches, and content extraction. A minor gap exists in lacking explicit update or delete operations for research tasks, but agents can work around this by managing task IDs and polling.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Exa MCP — neural/semantic web search + content retrieval (exa.ai)
The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables Claude to perform web research by integrating Google search, extracting webpage content, and capturing screenshots.131,56720MIT
- FlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI assistants like Claude to perform real-time web searches using the Exa AI Search API in a safe and controlled manner.225,462
- AlicenseAqualityDmaintenanceA server that enables AI assistants like Claude to perform web searches using the Exa AI Search API, providing real-time web information in a safe and controlled way.225,462MIT
- AlicenseBqualityCmaintenanceA Model Context Protocol server that enables AI assistants to perform real-time web searches, retrieving up-to-date information from the internet via a Crawler API.16240ISC
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/exa-labs/exa-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server