关于 deepsearch
deepsearch 是面向 Agent 和命令行用户的 Exa 命令行及 MCP 服务,提供按语义匹配的网页搜索、代码上下文检索和单页抓取,并可设置令牌预算。
主要功能
- 01按语义搜索网页
- 02检索代码示例与文档上下文
- 03抓取指定网页内容
- 04设置结果数量与令牌上限
适用场景
- 01为研究问题查找相关网页
- 02为编程问题收集代码示例
- 03获取已知 URL 的页面文本
MCP 相关
stdio MCP 服务向 MCP 客户端提供网页搜索、代码上下文检索和页面抓取工具。使用时需要 Exa API 密钥。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | 要使用 Exa 执行的网络搜索查询。 |
| numResults | number | 否 | 可选:要返回的搜索结果数量;默认为 8。 |
详细介绍
deepsearch
deepsearch 会像研究人员一样向 Exa 的神经索引提问。普通搜索会返回与查询含义最匹配的页面,并附上已提取的文本。对于代码问题,则会提供上下文包:从整个 Web 收集示例和文档摘录,并按你指定的令牌预算调整大小。如果你已经知道要找哪个页面,爬取功能会获取该页面并返回其中的文字。它可以通过命令行运行,也可以作为供 Agent 使用的 MCP 服务运行。
此工具需要 Exa API 密钥。将密钥放入 EXA_API_KEY 环境变量;密钥会作为 x-api-key 标头发送给 API,且绝不会出现在输出中。如果缺少此变量,所有操作都会失败,并显示指出该变量的错误。
安装
npx @reneturcios/deepsearch search "vector index tradeoffs"
也可以运行容器映像:
docker run -i -e EXA_API_KEY ghcr.io/cloudcorprecords/deepsearch
容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。
CLI
export EXA_API_KEY="your api key"
# Web search; --num-results defaults to 8
deepsearch search "ferry electrification programs"
deepsearch search "ferry electrification programs" --num-results 5
# Code context; --tokens sets the budget (1000-50000, default 5000)
deepsearch code "React useState hook examples" --tokens 3000
# Fetch one page in full
deepsearch crawl https://example.com/some/article
deepsearch crawl https://example.com/some/article --tokens 2000
# Machine-readable output for any command
deepsearch search "ferry electrification programs" --json
deepsearch --version
退出代码:成功时为 0;操作失败时为 1(包括缺少 EXA_API_KEY 或发生 API 错误);用法错误时为 2。
MCP 服务
同一个可执行文件支持这两种模式。mcp 子命令会启动一个 stdio MCP 服务:
npx -y @reneturcios/deepsearch mcp
MCP 客户端配置:
{
"mcpServers": {
"deepsearch": {
"command": "npx",
"args": ["-y", "@reneturcios/deepsearch", "mcp"],
"env": { "EXA_API_KEY": "your api key" }
}
}
}
工具
以下是原始服务默认启用的工具:
| 工具 | 输入 | 返回内容 |
|---|---|---|
web_search_exa | query(字符串,必需),numResults(数字,可选,默认值为 8) | 以编号文本块形式返回匹配页面:标题、URL、已知时的发布日期等信息,以及 API 提供的页面文本。 |
get_code_context_exa | query(字符串,必需),tokensNum(数字,可选,1000–50000,默认值为 5000) | 返回与问题相关的代码示例和文档摘录,每项标明来源,并按令牌预算裁剪。 |
crawling_exa | url(字符串,必需),tokensNum(数字,可选,默认值为 5000) | 返回该页面的完整文本,附带标题,并按令牌预算裁剪。 |
令牌预算会限制在文档所述的 1000–50000 范围内,并按每个令牌约四个字符应用。若结果集为空,会明确报告;若 API 无法获取页面、缺少密钥或 API 调用失败,则会报告工具错误。
开发
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev # run the CLI from source via tsx
许可证
MIT — 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。