Skip to content

feat: add Exa AI-powered search tool#308

Open
tgonzalezc5 wants to merge 1 commit intotractorjuice:mainfrom
tgonzalezc5:feat/exa-mcp-server
Open

feat: add Exa AI-powered search tool#308
tgonzalezc5 wants to merge 1 commit intotractorjuice:mainfrom
tgonzalezc5:feat/exa-mcp-server

Conversation

@tgonzalezc5
Copy link
Copy Markdown

Summary

  • Bundles the hosted Exa MCP server (https://mcp.exa.ai/mcp) in the Claude Code, Gemini CLI, and OpenCode configs, alongside the existing AWS Knowledge, Microsoft Learn, Google Developer Knowledge, Data Commons, and govreposcrape servers.
  • Exposes three tools to ArcKit commands and agents: web_search_exa (clean, ready-to-use search results), web_fetch_exa (URL-to-markdown retrieval), web_search_advanced_exa (domain / date-range / highlight / subpage filters).
  • Fills the gap the current bundle has for topics the cloud-vendor docs servers don't cover — vendor discovery, market research, regulatory/news context for SOBCs, and ad-hoc citations for research commands and the arckit-datascout agent.
  • Works out of the box on Exa's free tier; new optional EXA_API_KEY entry in plugin.json userConfig lifts rate limits when set.

Usage

Once installed, the three Exa tools are available to any ArcKit command/agent that consumes MCP. Examples:

  • web_search_exa(query: "UK public-sector CRM vendors 2025", num_results: 10) — quick search for vendor/market research
  • web_fetch_exa(urls: ["https://example.com/whitepaper"]) — fetch a supplier whitepaper as markdown for citation extraction
  • web_search_advanced_exa(query: "...", include_domains: ["gov.uk"], start_published_date: "2024-01-01") — scoped, date-filtered search for regulatory context

With the optional key:

# ~/.bashrc or ~/.zshrc
export EXA_API_KEY="your-key-from-dashboard.exa.ai"

Claude Code users can also set the key via the plugin's userConfig UI; the .mcp.json resolves ${user_config.EXA_API_KEY} automatically.

Files Changed

  • arckit-claude/.mcp.json — register exa with x-api-key header
  • arckit-gemini/gemini-extension.json — register exa
  • arckit-opencode/opencode.json — register exa (enabled: true)
  • arckit-claude/.claude-plugin/plugin.json — add EXA_API_KEY to userConfig
  • docs/guides/mcp-servers.md + copies under arckit-opencode, arckit-codex, arckit-copilot, arckit-paperclip — document the server, its tools, and optional key setup
  • README.md — list Exa in the two bundled-MCP summary lines and the "Why Claude Code?" comparison row
  • CHANGELOG.md + arckit-claude/CHANGELOG.md[Unreleased] entries

Test plan

  • All edited JSON files parse (python3 -m json.tool clean on all 5)
  • markdownlint-cli2 passes on all edited .md files (matches the repo's existing lint-markdown.yml workflow)
  • Manual smoke test: install the plugin locally, confirm exa server shows up in /plugin and that web_search_exa returns results without a key
  • Manual smoke test: set EXA_API_KEY, restart, confirm no error and that advanced features work

Adds the hosted Exa MCP (https://mcp.exa.ai/mcp) alongside the existing
AWS Knowledge, Microsoft Learn, Google Developer Knowledge, Data Commons,
and govreposcrape servers so ArcKit has coverage for topics the
cloud-vendor docs servers don't (vendor discovery, market research,
regulatory/news context, general citations).

- arckit-claude/.mcp.json: register exa with x-api-key header
- arckit-gemini/gemini-extension.json: register exa
- arckit-opencode/opencode.json: register exa (enabled: true)
- arckit-claude/.claude-plugin/plugin.json: add EXA_API_KEY userConfig
  (optional; Exa works on the free tier without a key)
- docs/guides/mcp-servers.md (and 4 flavor copies): document the server,
  its three tools (web_search_exa, web_fetch_exa, web_search_advanced_exa),
  and the optional API-key setup
- README.md: list Exa in bundled-MCP summaries
- CHANGELOG.md + arckit-claude/CHANGELOG.md: Unreleased entries
@tractorjuice tractorjuice self-assigned this Apr 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants