{
  "id": "01-exa",
  "slug": "exa",
  "normalized_name": "exa",
  "name": "Exa",
  "vendor_url": "exa.ai",
  "category": "data-enrichment",
  "what_it_does": "A search API that returns web pages and structured results ranked by semantic/meaning similarity to a query (embeddings-based) rather than keyword matching, plus tools to fetch page contents and get LLM-generated answers with citations; used in GTM stacks (e.g., Clay) as a research layer to pull live company and person info off the open web.",
  "ai_features": "Core ranking genuinely uses transformer-based embeddings for semantic (\"neural\") search - that part is real ML, not marketing dressing. The \"Answer\" and \"Agent\"/deep-research endpoints layer an LLM on top to summarize/synthesize results with citations. It is not a proprietary contact database - it's search+summarization over the public web, so coverage/quality depends on what's crawlable and indexed, not a curated B2B dataset.",
  "mcp_status": "official",
  "mcp_url": "https://github.com/exa-labs/exa-mcp-server (hosted endpoint https://mcp.exa.ai/mcp)",
  "mcp_auth": "api key (issued via dashboard.exa.ai) for the self-hosted server and for quota. CORRECTED 2026-09-03 by bench test: the hosted endpoint https://mcp.exa.ai/mcp completed a full MCP session and served live results from both tools with NO credential sent - no Authorization header, no exaApiKey argument, no account. Measured, not inferred. See the bench notes below.",
  "api_gate": "free",
  "revops_role": "Web-research/enrichment layer used to supplement contact databases with live company or person context (news, funding signals, hiring, tech stack) - typically fed into Clay tables or agent workflows rather than used as a system of record.",
  "tier": "BENCH-TESTED",
  "last_checked": "2026-09-03",
  "sources": "https://github.com/exa-labs/exa-mcp-server, https://exa.ai/mcp, https://exa.ai/pricing, https://exa.ai/docs/reference/pricing, H:/amcg-content/directory/BENCH_2026-09-03.md, H:/amcg-content/directory/bench_history.jsonl",
  "notes": "New accounts get $20 in free credits (~2,800 searches); free tier also adds $10/month in credits ongoing, then pay-as-you-go - no sales contact required for API access. Pricing is per-endpoint (roughly $7/1k requests for search, ~$1/1k pages for full content, ~$5/1k for the Answer endpoint). Unlike the other tools in this category, Exa has no phone/email verification or contact-database feature - it's general web search/research repurposed for GTM enrichment. BENCH TEST 2026-09-03, the first in this directory, at $0 with no credential and no account, harness directory/bench_exa.py, full log directory/BENCH_2026-09-03.md, wire log directory/bench_history.jsonl record exa-2026-09-03. THE EXACT CALLS - POST https://mcp.exa.ai/mcp initialize (protocolVersion 2025-06-18) returned HTTP 200 in 92 ms with serverInfo exa-search-server 3.2.1 and a session id; tools/list returned HTTP 200 and exactly two tools, web_search_exa and web_fetch_exa (the GitHub repo named first in mcp_url is a locally installed server and a different surface, not run here); tools/call web_search_exa {\"query\":\"category:people <person> <company> (<domain>)\",\"numResults\":5} was run once for each of three VENDOR founders. WHAT CAME BACK - Kareem Amin at Clay HTTP 200 in 1139 ms, 11009 chars, result 1 https://www.linkedin.com/in/kareemamin; Amit Bendov at Gong HTTP 200 in 1330 ms, 11457 chars, result 1 https://www.linkedin.com/in/amitbendov; Manny Medina at Outreach HTTP 200 in 1301 ms, 17396 chars, result 1 https://www.linkedin.com/in/medinism. 3 of 3 correct in position 1, judged by the role-and-company line carried in the same payload, which is a self-consistency check and not an independent one; three calls is a sample of three, not a hit rate. The call-prep chain also ran end to end - web_search_exa returned 35014 chars on a vendor account query and web_fetch_exa on https://www.clay.com/pricing returned HTTP 200 in 124 ms with 1568 chars of markdown. linkedin.com was never fetched; the only page fetches went to vendor domains. FAILURE MODES MEASURED - there is no null result: an invented person at an invented company returned HTTP 200 and a confident, unrelated LinkedIn profile, and a re-run returned a DIFFERENT wrong profile, so a caller must verify the returned profile's company against the input itself; results 2 to 5 were unrelated people on all three subjects, so only result 1 is usable; the default Python urllib user agent is rejected at the edge with HTTP 403 Cloudflare 1010 browser_signature_banned before any MCP traffic, a failure that looks nothing like an auth failure; an unknown tool name returns HTTP 200 with isError true and \"MCP error -32602: Tool ... not found\" in the body; a 2-URL batch fetch returns partial success inside one HTTP 200, with the failed URL's error as an inline string (CRAWL_LIVECRAWL_TIMEOUT); maxCharacters 1500 returned 1568 chars, so the cap is a target and not a truncation. Net: HTTP status cannot be used to detect failure on this server. This bench licenses nothing about any other entry and no Leaderboard score, and it is a snapshot of 2026-09-03 - the keyless endpoint is what answered that day, not a promise it stays keyless.",
  "mcp_status_bucket": "official",
  "api_gate_bucket": "free",
  "mcp_urls": [
    "https://github.com/exa-labs/exa-mcp-server",
    "https://mcp.exa.ai/mcp"
  ],
  "source_urls": [
    "https://github.com/exa-labs/exa-mcp-server",
    "https://exa.ai/mcp",
    "https://exa.ai/pricing",
    "https://exa.ai/docs/reference/pricing"
  ],
  "source_annotations": [
    "H:/amcg-content/directory/BENCH_2026-09-03.md",
    "H:/amcg-content/directory/bench_history.jsonl"
  ],
  "vendor_domain": "exa.ai",
  "display_name": "Exa",
  "docs_url": null,
  "jobs": [
    "scrape-web-page-for-facts",
    "research-account-for-call-prep"
  ],
  "jobs_tagged_by": "machine-pass",
  "jobs_tagged_on": "2026-08-25",
  "github_url": null,
  "github_stars": null,
  "github_last_commit": null,
  "github_archived": null,
  "github_fetched_on": null,
  "github_candidates": [
    "https://github.com/exa-labs/exa-mcp-server",
    "https://github.com/exa-labs/exa-mcp-server"
  ],
  "docs_digest": null,
  "docs_last_crawled": null,
  "submission": null,
  "mcp_tools": [
    {
      "name": "agent_run",
      "description": "Start or resume an Exa Agent run; runs may take several minutes. Retain the returned run ID and resume with runId when the tool reports the run is still running. An interrupted tool call is not an explicit cancellation request.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "first-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "company_research_exa",
      "description": "[Deprecated: Use web_search_advanced_exa instead] Research any company to get business information, news, and insights.\n\nBest for: Learning about a company",
      "required_params": [],
      "evidence": "source",
      "repo_party": "first-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "deep_researcher_check",
      "description": "[Deprecated] Check status and get results from a deep research task.\n\nBest for: Getting the research report after calling deep_researcher_start.\nReturns: Research report when complete, or status update if still running.\nImportant: Keep call",
      "required_params": [],
      "evidence": "source",
      "repo_party": "first-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "deep_researcher_start",
      "description": "[Deprecated] Start an AI research agent that searches, reads, and writes a detailed report. Takes 15 seconds to 2 minutes.\n\nBest for: Complex research questions needing deep analysis and synthesis.\nReturns: Research ID - use deep_researcher",
      "required_params": [],
      "evidence": "source",
      "repo_party": "first-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "deep_search_exa",
      "description": "[Deprecated: Use web_search_advanced_exa instead] Deep search with automatic query expansion for thorough research. Generates multiple search variations to find results from multiple angles, then synthesizes a short answer with citations.\n\n",
      "required_params": [],
      "evidence": "source",
      "repo_party": "first-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "get_code_context_exa",
      "description": "Find code examples, documentation, and programming solutions. \n\nBest for: Any programming question - API usage, library examples, code snippets, debugging help.\nReturns: Relevant code and documentation.\n\nQuery tips: describe what you",
      "required_params": [],
      "evidence": "source",
      "repo_party": "first-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "linkedin_search_exa",
      "description": "⚠️ DEPRECATED: This tool is deprecated. Please use",
      "required_params": [],
      "evidence": "source",
      "repo_party": "first-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "people_search_exa",
      "description": "[Deprecated: Use web_search_advanced_exa instead] Find people and their professional profiles.\n\nBest for: Finding professionals, executives, or anyone with a public profile.\nReturns: Profile information and links.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "first-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "web_fetch_exa",
      "description": "Read a webpage's full content as clean markdown. Use after web_search_exa when highlights are insufficient or to read any URL.\n\nBest for: Extracting full content from known URLs. Batch multiple URLs in one call.\nReturns: Clean text content ",
      "required_params": [
        "urls"
      ],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "web_search_advanced_exa",
      "description": "Advanced web search with full control over filters, domains, dates, and content options.\n\nBest for: When you need specific filters like date ranges, domain restrictions, or category filters.\nNot recommended for: Simple searches - use web_se",
      "required_params": [],
      "evidence": "source",
      "repo_party": "first-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "web_search_exa",
      "description": "Search the web for any topic and get clean, ready-to-use content.\n\n      Best for: Finding current information, news, facts, people, companies, or answering questions about any topic.\n      Returns: Clean text content from top search result",
      "required_params": [
        "query",
        "objective"
      ],
      "evidence": "live-list",
      "repo_party": null,
      "source_party": null,
      "risk": "read"
    }
  ],
  "mcp_tool_count": 11,
  "mcp_tools_evidence": "live-list",
  "mcp_tools_repo": "exa-labs/exa-mcp-server",
  "mcp_tools_repo_party": "first-party",
  "mcp_catalog_shape": "fixed",
  "mcp_catalog_note": null,
  "mcp_tools_fetched_on": "2026-09-27",
  "cli_status": "community",
  "cli_party": "third",
  "cli_binary": "exa-cli",
  "cli_install": [
    {
      "cmd": "pip install exa-cli",
      "manager": "pypi",
      "source_url": "https://pypi.org/project/exa-cli/",
      "party": "third",
      "fetched_on": "2026-09-27"
    }
  ],
  "cli_login": null,
  "cli_commands_seen": [],
  "cli_docs_url": null,
  "cli_repo": null,
  "cli_packages": [
    {
      "kind": "pypi",
      "package": "exa-cli",
      "version": "0.1.0",
      "party": "third",
      "url": "https://pypi.org/project/exa-cli/"
    },
    {
      "kind": "pypi",
      "package": "exa-cli",
      "version": "0.1.0",
      "party": "third",
      "url": "https://pypi.org/project/exa-cli/"
    }
  ],
  "cli_evidence": "pypi",
  "cli_checked_on": "2026-09-27",
  "github_org": "exa-labs",
  "github_org_status": "resolved",
  "github_org_url": "https://github.com/exa-labs",
  "github_org_evidence": {
    "rule": "rule 1",
    "url": "https://github.com/exa-labs/exa-mcp-server",
    "matched_domain": "exa.ai",
    "via": "website",
    "detail": "account website https://exa.ai has the vendor's domain",
    "confidence": "strong",
    "candidates_rejected": []
  },
  "github_org_repos": 50,
  "github_org_repos_mcp": 3,
  "github_org_repos_cli": 0,
  "github_org_latest_activity": "2026-09-03T20:24:46Z",
  "github_org_recent_repos": [
    {
      "name": "agent-skills",
      "url": "https://github.com/exa-labs/agent-skills",
      "kind": "other",
      "description": "Official skills for the Exa API.",
      "stars": 46,
      "pushed_at": "2026-09-03",
      "latest_release": null
    },
    {
      "name": "exa-js",
      "url": "https://github.com/exa-labs/exa-js",
      "kind": "sdk",
      "description": "The Official Exa Javascript SDK",
      "stars": 130,
      "pushed_at": "2026-09-03",
      "latest_release": "v2.20.0"
    },
    {
      "name": "exa-py",
      "url": "https://github.com/exa-labs/exa-py",
      "kind": "sdk",
      "description": "The Official Exa Python Package",
      "stars": 233,
      "pushed_at": "2026-09-03",
      "latest_release": "v2.20.0"
    },
    {
      "name": "exa-mcp-server",
      "url": "https://github.com/exa-labs/exa-mcp-server",
      "kind": "mcp-server",
      "description": "Exa MCP for web search and web crawling!",
      "stars": 4987,
      "pushed_at": "2026-08-21",
      "latest_release": null
    },
    {
      "name": "company-researcher",
      "url": "https://github.com/exa-labs/company-researcher",
      "kind": "other",
      "description": "Company Researcher tool helps you instantly understand any company inside out.",
      "stars": 1494,
      "pushed_at": "2026-08-08",
      "latest_release": null
    }
  ],
  "github_org_checked_on": "2026-09-08",
  "mcp_endpoint": null,
  "mcp_docs_url": "https://github.com/exa-labs/exa-mcp-server",
  "endpoint_status": "repo-local",
  "endpoint_http_status": 200,
  "endpoint_last_probed": "2026-09-04",
  "endpoint_wall_note": null,
  "canonical": true,
  "canonical_id": "01-exa",
  "also_listed_in": [],
  "source_file": "01-data-enrichment.md",
  "source_line": 314,
  "file_index": 16,
  "category_num": "01",
  "category_slug": "data-enrichment",
  "category_label": "Data & Enrichment",
  "heading": "Exa",
  "missing_schema_fields": [],
  "extra_fields": {},
  "display_rank": 18
}
