Web Search by Exa

Neural web search, content extraction, company and people research, code search, and deep research via the Exa MCP server. Use when you need to: (1) search t...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
29 · 21.3k · 24 current installs · 24 all-time installs
byIshan Goswami@theishangoswami
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
The name and description match the SKILL.md instructions: it configures an external Exa MCP server and exposes web-search and research tools. There are no unrelated binaries, env vars, or install steps requested that would be out of scope for a web-search integration.
Instruction Scope
The instructions are narrowly focused on adding the Exa MCP server to the agent config and calling the listed tools. This is coherent for a remote search service. Important: using the skill causes your agent to send user queries (and in some tool modes, retrieved page contents) to the external MCP endpoint (https://mcp.exa.ai/mcp). The SKILL.md does not document privacy, retention, or what data the MCP will store, so there is a real data-exfiltration/privacy surface when used on sensitive queries.
Install Mechanism
Instruction-only skill with no install spec and no code files. Nothing will be written to disk or automatically downloaded during install beyond the configuration change you choose to make — this is low-risk from an install perspective.
Credentials
The skill declares no required env vars or credentials (proportionate). However it recommends adding an API key by appending exaApiKey as a query parameter to the MCP URL (e.g., https://mcp.exa.ai/mcp?exaApiKey=YOUR_EXA_KEY). Storing secrets in a URL may persist them in agent configs or logs and increases risk of accidental leakage. Prefer secret storage mechanisms if available.
Persistence & Privilege
always:false and no special privileges are requested. The only persistent effect is adding an MCP server entry to your agent config (which is expected). Note that the skill allows normal autonomous invocation (disable-model-invocation:false), so if agent autonomy is enabled, the agent may call Exa tools without interactive confirmation.
Assessment
This skill appears to do what it says: it forwards queries to Exa's MCP server and returns search/extraction results. Before installing, verify the MCP URL (mcp.exa.ai) and Exa's authenticity (official docs / GitHub repo). Do not paste sensitive secrets directly into the MCP URL if you can avoid it — prefer storing API keys in a proper secrets store or agent-managed secret field. Consider the sensitivity of queries you will send: tools like crawling_exa and people_search_exa may transmit full page contents or personal profile data to Exa. Review Exa's privacy/retention policy and limit tool scope (disable optional tools you don't need) and enable the skill only for non-sensitive research unless you trust the service and key management practice.

Like a lobster shell, security has layers — review code before you run it.

Current versionv2.0.0
Download zip
latestvk976k97gp95chqrxh4y9tnra7182p6rb

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

Exa — Neural Web Search & Research

Exa is a neural search engine. Unlike keyword-based search, it understands meaning — you describe the page you're looking for and it finds it. Returns clean, LLM-ready content with no scraping needed.

MCP server: https://mcp.exa.ai/mcp Free tier: generous rate limits, no key needed for basic tools API key: dashboard.exa.ai/api-keys — unlocks higher limits + all tools Docs: exa.ai/docs GitHub: github.com/exa-labs/exa-mcp-server

Setup

Add the MCP server to your agent config:

# OpenClaw
openclaw mcp add exa --url "https://mcp.exa.ai/mcp"

Or in any MCP config JSON:

{
  "mcpServers": {
    "exa": {
      "url": "https://mcp.exa.ai/mcp"
    }
  }
}

To unlock all tools and remove rate limits, append your API key:

https://mcp.exa.ai/mcp?exaApiKey=YOUR_EXA_KEY

To enable specific optional tools:

https://mcp.exa.ai/mcp?exaApiKey=YOUR_KEY&tools=web_search_exa,web_search_advanced_exa,people_search_exa,crawling_exa,company_research_exa,get_code_context_exa,deep_researcher_start,deep_researcher_check,deep_search_exa

Tool Reference

Default tools (available without API key)

ToolWhat it does
web_search_exaGeneral-purpose web search — clean content, fast
get_code_context_exaCode examples + docs from GitHub, Stack Overflow, official docs
company_research_exaCompany overview, news, funding, competitors

Optional tools (enable via tools param, need API key for some)

ToolWhat it does
web_search_advanced_exaFull-control search: domain filters, date ranges, categories, content modes
crawling_exaExtract full page content from a known URL — handles JS, PDFs, complex layouts
people_search_exaFind LinkedIn profiles, professional backgrounds, experts
deep_researcher_startKick off an async multi-step research agent → detailed report
deep_researcher_checkPoll status / retrieve results from deep research
deep_search_exaSingle-call deep search with synthesized answer + citations (needs API key)

web_search_exa

Fast general search. Describe what you're looking for in natural language.

Parameters:

  • query (string, required) — describe the page you want to find
  • numResults (int) — number of results, default 10
  • typeauto (best quality), fast (lower latency), deep (multi-step reasoning)
  • livecrawlfallback (default) or preferred (always fetch fresh)
  • contextMaxCharacters (int) — cap the returned content size
web_search_exa {
  "query": "blog posts about using vector databases for recommendation systems",
  "numResults": 8
}
web_search_exa {
  "query": "latest OpenAI announcements March 2026",
  "numResults": 5,
  "type": "fast"
}

web_search_advanced_exa

The power-user tool. Everything web_search_exa does, plus domain filters, date filters, category targeting, and content extraction modes.

Extra parameters beyond basic search:

ParameterTypeWhat it does
includeDomainsstring[]Only return results from these domains (max 1200)
excludeDomainsstring[]Block results from these domains
categorystringTarget content type — see table below
startPublishedDatestringISO date, results published after this
endPublishedDatestringISO date, results published before this
maxAgeHoursintContent freshness — 0 = always livecrawl, -1 = cache only, 24 = cache if <24h
contents.highlightsobjectExtractive snippets relevant to query. Set maxCharacters to control size
contents.textobjectFull page as clean markdown. Set maxCharacters to cap
contents.summaryobjectLLM-generated summary. Supports query and JSON schema for structured extraction

Categories:

CategoryBest for
companyCompany pages, LinkedIn company profiles
peopleLinkedIn profiles, professional bios, personal sites
research paperarXiv, academic papers, peer-reviewed research
newsCurrent events, journalism
tweetPosts from X/Twitter
personal siteBlogs, personal pages
financial reportSEC filings, earnings reports

Examples

Research papers:

web_search_advanced_exa {
  "query": "transformer architecture improvements for long-context windows",
  "category": "research paper",
  "numResults": 15,
  "contents": { "highlights": { "maxCharacters": 3000 } }
}

Company list building with structured extraction:

web_search_advanced_exa {
  "query": "Series A B2B SaaS companies in climate tech founded after 2022",
  "category": "company",
  "numResults": 25,
  "contents": {
    "summary": {
      "query": "company name, what they do, funding stage, location",
      "schema": {
        "type": "object",
        "properties": {
          "name": { "type": "string" },
          "description": { "type": "string" },
          "funding": { "type": "string" },
          "location": { "type": "string" }
        }
      }
    }
  }
}

People search — find candidates with specific profiles:

web_search_advanced_exa {
  "query": "machine learning engineers at fintech startups in NYC with experience in fraud detection",
  "category": "people",
  "numResults": 20,
  "contents": { "highlights": { "maxCharacters": 2000 } }
}

Finding pages similar to a known URL: Use the URL itself as the query — Exa will find semantically similar pages:

web_search_advanced_exa {
  "query": "https://linkedin.com/in/some-candidate-profile",
  "numResults": 15,
  "contents": { "highlights": { "maxCharacters": 2000 } }
}

Recent news with freshness control:

web_search_advanced_exa {
  "query": "AI regulation policy updates",
  "category": "news",
  "maxAgeHours": 72,
  "numResults": 10,
  "contents": { "highlights": { "maxCharacters": 4000 } }
}

Scoped domain search:

web_search_advanced_exa {
  "query": "authentication best practices",
  "includeDomains": ["owasp.org", "auth0.com", "docs.github.com"],
  "numResults": 10,
  "contents": { "text": { "maxCharacters": 5000 } }
}

company_research_exa

One-call company research. Returns business overview, recent news, funding, and competitive landscape.

company_research_exa { "query": "Stripe payments company overview and recent news" }
company_research_exa { "query": "what does Anduril Industries do and who are their competitors" }

people_search_exa

Find professionals by role, company, location, expertise. Returns LinkedIn profiles and bios.

people_search_exa { "query": "VP of Engineering at healthcare startups in San Francisco" }
people_search_exa { "query": "AI researchers specializing in multimodal models" }

get_code_context_exa

Search GitHub repos, Stack Overflow, and documentation for code examples and API usage patterns.

get_code_context_exa { "query": "how to implement rate limiting in Express.js with Redis" }
get_code_context_exa { "query": "Python asyncio connection pooling example with aiohttp" }

crawling_exa

Extract clean content from a specific URL. Handles JavaScript-rendered pages, PDFs, and complex layouts. Returns markdown.

crawling_exa { "url": "https://arxiv.org/abs/2301.07041" }

Good for when you already have the URL and want to read the page.


deep_researcher_start + deep_researcher_check

Long-running async research. Exa's research agent searches, reads, and compiles a detailed report.

Start a research task:

deep_researcher_start {
  "query": "competitive landscape of AI code generation tools in 2026 — key players, pricing, technical approaches, market share"
}

Check status (use the researchId from the start response):

deep_researcher_check { "researchId": "abc123..." }

Poll deep_researcher_check until status is completed. The final response includes the full report.


deep_search_exa

Single-call deep search: expands your query across multiple angles, searches, reads results, and returns a synthesized answer with grounded citations. Requires API key.

deep_search_exa { "query": "what are the leading approaches to multimodal RAG in production systems" }

Supports structured output via outputSchema:

deep_search_exa {
  "query": "top 10 aerospace companies by revenue",
  "type": "deep",
  "outputSchema": {
    "type": "object",
    "required": ["companies"],
    "properties": {
      "companies": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": { "type": "string" },
            "revenue": { "type": "string" },
            "hq": { "type": "string" }
          }
        }
      }
    }
  }
}

Query Craft

Exa is neural — it matches on meaning, not keywords. Write queries like you'd describe the ideal page to a colleague.

Do: "blog post about using embeddings for product recommendations at scale" Don't: "embeddings product recommendations"

Do: "Stripe payments company San Francisco fintech" Don't: "Stripe" (too ambiguous)

  • Use category when you know the content type — it makes a big difference.
  • For broader coverage, run 2-3 query variations in parallel and deduplicate results.
  • For agentic workflows, use highlights instead of full text — it's 10x more token-efficient while keeping the relevant parts.

Token Efficiency

Content modeWhen to use
highlightsAgent workflows, factual lookups, multi-step pipelines — most token-efficient
textDeep analysis, when you need full page context
summaryQuick overviews, structured extraction with JSON schema

Set maxCharacters on any content mode to control output size.

When to Reach for Which Tool

I need to...Use
Quick web lookupweb_search_exa
Research papers, academic searchweb_search_advanced_exa + category: "research paper"
Company intel, competitive analysiscompany_research_exa or advanced + category: "company"
Find people, candidates, expertspeople_search_exa or advanced + category: "people"
Code examples, API docsget_code_context_exa
Read a specific URLcrawling_exa
Find pages similar to a URLweb_search_advanced_exa with URL as query
Recent news / tweetsAdvanced + category: "news" or "tweet" + maxAgeHours
Detailed research reportdeep_researcher_startdeep_researcher_check
Quick answer with citationsdeep_search_exa

Docs: exa.ai/docsDashboard: dashboard.exa.aiSupport: support@exa.ai

Files

1 total
Select a file
Select a file to preview.

Comments

Loading comments…