mcpField
E
exa-search

exa-search

github.com/mxyhi生产力508129 次安装2 天前更新
代码仓库

关于 exa-search

exa-search 是使用 Exa MCP 搜索网页、抓取页面及查找代码、文档、公司或人物信息的技能。它说明当前工具选择与参数,并以直接通过 MCP HTTP 请求为调用方式。

主要功能

  1. 01网页搜索与筛选搜索
  2. 02抓取已知网址内容
  3. 03查找代码与文档
  4. 04公司与人物研究
  5. 05MCP 工具参数指南

适用场景

  1. 01查找最新网络信息
  2. 02提取指定页面内容
  3. 03研究公司或人物
  4. 04核对 Exa MCP 工具架构

MCP 相关

该技能通过 HTTP 调用托管的 Exa MCP 端点,并介绍会话初始化、工具发现与调用方式,涵盖网页搜索和页面抓取工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mxyhi/ok-skills --skill exa-search

安装后在 Claude Code 中输入/exa-search确认已加载。

附带文件references/exa-tools.md

详细介绍

Exa MCP 搜索

在需要在线搜索、页面抓取、代码或文档查询、公司研究、人物研究或 Exa MCP 参数检查时,使用此技能。

当前信息来源

  • 托管 MCP 端点:https://mcp.exa.ai/mcp
  • 官方来源:exa-labs/exa-mcp-server@15ffb50519e719dc791cdc750ce5ed1934c0a1ed
  • 当前检查的 npm 包:[email protected];已验证 tarball SHA-256 62379fab5750cbc8334f096ff986ab1b7152488afffab5b0e275995310b6e978
  • 工具的架构可能会发生变化。添加新参数前,请通过普通 HTTP 客户端使用 tools/list 进行验证。

此技能要求使用直接 MCP HTTP 作为调用方式。可以使用 curl,但请将会话和 SSE 解析放在简短的 shell 辅助脚本中,而不要在每个调用位置重复低级标志。

工具选择

需求优先使用说明
通用的最新网络搜索web_search_exa简单搜索。仅支持 query 和 numResults。
筛选搜索、日期、域名、类别、摘要、重点内容、子页面web_search_advanced_exa在 tools= 中显式启用。用于公司、人物、论文和新闻筛选。
完整读取已知 URLweb_fetch_exa搜索后在重点内容不足时使用。
代码示例和文档web_search_exaget_code_context_exa 仍然存在,但已弃用。
公司研究web_search_advanced_exa,并使用 category:"company"company_research_exa 仍然存在,但已弃用。
人物和个人资料web_search_advanced_exa,并使用 category:"people"people_search_exa 仍然存在,但已弃用。

核心参数

web_search_exa
  • 必填的 query:语义丰富的自然语言查询。可以包含 category:company 或 category:people。
  • 可选的 numResults:默认值为 10。
  • 当前托管架构不支持 type、livecrawl、contextMaxCharacters 或 tokensNum。
{"query":"latest AI safety research June 2026","numResults":10}
web_search_advanced_exa
  • 必填的 query。
  • 常见可选筛选参数:numResults、type(auto | fast | instant)、category、includeDomains、excludeDomains、startPublishedDate、endPublishedDate、startCrawlDate、endCrawlDate、includeText、excludeText、userLocation、moderation、additionalQueries。
  • 内容控制参数:textMaxCharacters、contextMaxCharacters、enableSummary、summaryQuery、enableHighlights、highlightsMaxCharacters、highlightsQuery、maxAgeHours、livecrawlTimeout、subpages、subpageTarget。
  • 已弃用的重点内容控制参数:highlightsNumSentences、highlightsPerUrl;建议使用 highlightsMaxCharacters。
  • 类别包括 company、publication、news、pdf、github、personal site、people、financial report。
{
  "query":"Anthropic funding valuation 2026",
  "category":"news",
  "includeDomains":["techcrunch.com","bloomberg.com"],
  "startPublishedDate":"2026-01-01",
  "numResults":10,
  "type":"auto",
  "enableHighlights":true
}
web_fetch_exa
  • 必填的 urls:URL 数组。一次调用可批量处理多个 URL。
  • 可选的 maxCharacters:默认值为 3000。
{"urls":["https://docs.exa.ai/reference"],"maxCharacters":5000}
已弃用但仍可用
  • get_code_context_exa:改用 web_search_exa。当前架构为 query、numResults;旧参数 tokensNum 已过时。
  • company_research_exa:改用 web_search_advanced_exa,并使用 category:"company"。架构为 companyName、numResults;默认值为 3。
  • people_search_exa:改用 web_search_advanced_exa,并使用 category:"people"。
  • crawling_exa:改用 web_fetch_exa。
  • deep_search_exa:改用 web_search_advanced_exa;当前托管 MCP 在请求此工具时要求 OAuth 或 API 密钥。
  • deep_researcher_start / deep_researcher_check:已弃用;需要时请直接使用 Exa Research API。

Curl 模式

  1. POST initialize;保留响应头中返回的 Mcp-Session-Id。
  2. 使用该请求头 POST notifications/initialized。
  3. 使用该请求头 POST tools/list 或 tools/call。
  4. 如果响应为 text/event-stream,请解析 data: 行中的 JSON。
最简 Curl 辅助脚本
EXA_URL="https://mcp.exa.ai/mcp?tools=web_search_exa,web_search_advanced_exa,web_fetch_exa"
EXA_SESSION_ID=""

exa_rpc() {
  local payload="$1"
  local session_header=()
  local response

  if [ -n "$EXA_SESSION_ID" ]; then
    session_header=(-H "Mcp-Session-Id: $EXA_SESSION_ID")
  fi

  response="$(curl -isS "$EXA_URL" \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json, text/event-stream' \
    "${session_header[@]}" \
    --data "$payload")"

  if [ -z "$EXA_SESSION_ID" ]; then
    EXA_SESSION_ID="$(printf '%s\n' "$response" | awk 'tolower($0) ~ /^mcp-session-id:/ { sub(/^[^:]+:[[:space:]]*/, ""); gsub(/\r/, ""); print; exit }')"
  fi

  printf '%s\n' "$response" | sed -n 's/^data: //p'
}

exa_init() {
  exa_rpc '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"exa-curl","version":"0.1.0"}}}' >/dev/null
  exa_rpc '{"jsonrpc":"2.0","method":"notifications/initialized"}' >/dev/null
}

exa_call() {
  local tool_name="$1"
  local arguments_json="$2"
  jq -nc --arg name "$tool_name" --argjson arguments "$arguments_json" \
    '{jsonrpc:"2.0",id:2,method:"tools/call",params:{name:$name,arguments:$arguments}}' |
    while IFS= read -r payload; do exa_rpc "$payload"; done
}

exa_init
exa_call web_search_exa '{"query":"latest AI safety research","numResults":5}'

工具的输出格式各不相同:web_search_exa 返回格式化文本,web_search_advanced_exa 返回 JSON 文本,web_fetch_exa 返回抓取的页面文本。

研究实践

  • 对于简单查询,运行一次有针对性的 web_search_exa 调用。
  • 对于有日期限制或涉及当前信息的问题,先计算准确的日期范围,再通过 web_search_advanced_exa 传入 startPublishedDate / endPublishedDate。
  • 对于需要大量来源的任务,仅使用 web_fetch_exa 获取最相关的网址;不要将原始结果直接倾倒到最终答案中。
  • 对于公司、人物、论文和新闻相关的工作流,优先使用 web_search_advanced_exa 的类别,而不是已弃用的专用工具。
  • 如果 Exa 返回的结果稀少、相互矛盾或过时,请说明来源的不确定性。

参考资料

  • 工具字段:references/exa-tools.md

评论

支持 Markdown