关于 exa-search
exa-search 是使用 Exa MCP 搜索网页、抓取页面及查找代码、文档、公司或人物信息的技能。它说明当前工具选择与参数,并以直接通过 MCP HTTP 请求为调用方式。
主要功能
- 01网页搜索与筛选搜索
- 02抓取已知网址内容
- 03查找代码与文档
- 04公司与人物研究
- 05MCP 工具参数指南
适用场景
- 01查找最新网络信息
- 02提取指定页面内容
- 03研究公司或人物
- 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-25662379fab5750cbc8334f096ff986ab1b7152488afffab5b0e275995310b6e978 - 工具的架构可能会发生变化。添加新参数前,请通过普通 HTTP 客户端使用
tools/list进行验证。
此技能要求使用直接 MCP HTTP 作为调用方式。可以使用 curl,但请将会话和 SSE 解析放在简短的 shell 辅助脚本中,而不要在每个调用位置重复低级标志。
工具选择
| 需求 | 优先使用 | 说明 |
|---|---|---|
| 通用的最新网络搜索 | web_search_exa | 简单搜索。仅支持 query 和 numResults。 |
| 筛选搜索、日期、域名、类别、摘要、重点内容、子页面 | web_search_advanced_exa | 在 tools= 中显式启用。用于公司、人物、论文和新闻筛选。 |
| 完整读取已知 URL | web_fetch_exa | 搜索后在重点内容不足时使用。 |
| 代码示例和文档 | web_search_exa | get_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 模式
- POST
initialize;保留响应头中返回的Mcp-Session-Id。 - 使用该请求头 POST
notifications/initialized。 - 使用该请求头 POST
tools/list或tools/call。 - 如果响应为
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