# Exa MCP Tools Reference ## web_search_exa Basic web search with clean, ready-to-use content. **Parameters:** - `query` (string, required): Search query - `numResults` (number, optional): Number of results (default: 10) **Example:** ```bash exa-cli.mjs search "AI agent frameworks 2026" ``` --- ## web_search_advanced_exa Advanced search with full control over filters. **Parameters:** - `query` (string, required): Search query - `numResults` (number, optional): Number of results - `type` (string, optional): "auto", "neural", "deep" - `category` (string, optional): "company", "news", "tweet", "people", "personal site" - `includeDomains` (array, optional): Only include these domains - `excludeDomains` (array, optional): Exclude these domains - `startPublishedDate` (string, optional): ISO date YYYY-MM-DD - `endPublishedDate` (string, optional): ISO date YYYY-MM-DD - `livecrawl` (string, optional): "never", "fallback", "always" **Category Restrictions:** - `category: "company"`: Cannot use domain or date filters - `category: "people"`: Cannot use date filters, excludeDomains, or excludeText - `includeText`/`excludeText`: Only single-item arrays **Examples:** ```bash # Domain filter exa-cli.mjs search-advanced "AI news" --domains techcrunch.com,wired.com # Date filter exa-cli.mjs search-advanced "OpenAI" --after 2026-01-01 --before 2026-02-01 # More results exa-cli.mjs search-advanced "machine learning" --num 30 ``` --- ## get_code_context_exa Find code examples, documentation, and solutions from GitHub, StackOverflow, and technical docs. **Parameters:** - `query` (string, required): Code-related query - `tokensNum` (number, optional): Token limit (default: 5000, range: 1000-50000) **Best Practices:** - Always include programming language in query - Include framework + version when relevant - Use exact identifiers (function names, error messages) **Token Strategy:** - Focused snippet: 1000-3000 - Most tasks: 5000 - Complex integration: 10000-20000 **Examples:** ```bash # Python specific exa-cli.mjs code "Python asyncio retry exponential backoff" # Framework specific exa-cli.mjs code "Next.js 14 server actions form handling" # Error lookup exa-cli.mjs code "ECONNREFUSED Node.js Docker" ``` --- ## crawling_exa Get full content from a specific URL. **Parameters:** - `url` (string, required): URL to crawl **Example:** ```bash exa-cli.mjs crawl "https://docs.anthropic.com/claude/docs" ``` --- ## company_research_exa Research any company for business information, news, and insights. **Parameters:** - `companyName` (string, required): Company name to research **Returns:** - Company overview - Recent news - Key metrics (when available) - Competitors - Funding info **Example:** ```bash exa-cli.mjs company "Stripe" exa-cli.mjs company "Klarna fintech" ``` --- ## people_search_exa Find people and their professional profiles. **Parameters:** - `query` (string, required): Search query (role, name, company, etc.) - `numResults` (number, optional): Number of results **Notes:** - Returns public LinkedIn profiles and professional bios - Works best with role + location/company **Examples:** ```bash exa-cli.mjs people "VP Engineering AI startups San Francisco" exa-cli.mjs people "CTO fintech Stockholm" ``` --- ## deep_researcher_start Start an AI research agent that searches, reads, and writes a detailed report. **Parameters:** - `query` (string, required): Research topic **Returns:** - `taskId`: Use with `research-check` to get results **Note:** Deep research is async. Poll with `research-check` until status is "completed". **Example:** ```bash exa-cli.mjs research "Current state of nuclear fusion energy startups 2026" # Returns: taskId: abc123... exa-cli.mjs research-check abc123 # Poll until complete ``` --- ## deep_researcher_check Check status and get results from a deep research task. **Parameters:** - `taskId` (string, required): Task ID from `deep_researcher_start` **Status Values:** - `pending`: Still processing - `completed`: Results ready - `failed`: Error occurred **Example:** ```bash exa-cli.mjs research-check abc123-def456-... ``` --- ## Rate Limits **Free Plan:** - ~1 request/second - 2000 requests/month **With API Key:** - Higher limits based on plan - Get key: https://dashboard.exa.ai/api-keys Set key: ```bash export EXA_API_KEY="your-key-here" ``` --- ## MCP Server URL Base: `https://mcp.exa.ai/mcp` With all tools: ``` https://mcp.exa.ai/mcp?tools=web_search_exa,web_search_advanced_exa,get_code_context_exa,crawling_exa,company_research_exa,people_search_exa,deep_researcher_start,deep_researcher_check ``` With API key: ``` https://mcp.exa.ai/mcp?exaApiKey=YOUR_KEY&tools=... ```