 ](https://smithery.ai/server/@ref-tools/ref-tools-mcp)   ](https://www.npmjs.com/package/ref-tools-mcp)
参考MCP
A. 模型上下文协议 服务器,使您的AI编码工具或代理能够访问API、服务、库等的文档。这是您的一站式服务,可以快速、高效地让您的代理了解最新的文档。
有关更多信息,请参阅信息 参考工具
主动搜索正确的上下文
Ref的工具旨在匹配模型的搜索方式,同时尽可能少地使用上下文来减少 上下文腐烂目标是在使用最小令牌的同时,准确地找到编码代理成功所需的上下文。
根据提示的复杂性,像Claude Code这样的LLM编码代理通常会进行一次或多次搜索,然后选择一些资源进行更深入的阅读。
对于一个关于Figma的Comment REST API的简单查询,它将进行几个调用来获得它所需要的:
SEARCH 'Figma API post comment endpoint documentation' (54 tokens)
READ https://www.figma.com/developers/api#post-comments-endpoint (385 tokens)对于更复杂的情况,LLM将在读取结果时尝试优化其提示。例如:
SEARCH 'n8n merge node vs Code node multiple inputs best practices' (126)
READ https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.merge/#merge (4961)
READ https://docs.n8n.io/flow-logic/merging/#merge-data-from-multiple-node-executions (138)
SEARCH 'n8n Code node multiple inputs best practices when to use' (107)
READ https://docs.n8n.io/code/code-node/#usage (80)
SEARCH 'n8n Code node access multiple inputs from different nodes' (370)
SEARCH 'n8n Code node $input access multiple node inputs' (372)
READ https://docs.n8n.io/code/builtin/output-other-nodes/#output-of-other-nodes (2310)Ref利用MCP会话来跟踪搜索轨迹并最大限度地减少上下文使用。烹饪有很多想法,但这是我们迄今为止实施的。
1.筛选搜索结果
对于会话中重复的类似搜索,Ref永远不会返回重复的结果。传统上,您可以通过分页到下一个结果来深入搜索结果,但这种方法允许代理同时分页和调整提示。
2.获取页面中重要的部分
在阅读一页文档时,Ref将使用代理的会话搜索历史记录来删除不太相关的部分,并返回最相关的5k个令牌。这有助于Ref避免标准的大问题 fetch() 网络抓取,即当它触及一个大型文档页面时,你很容易将20k+的令牌拉入上下文,其中大多数令牌都是无关的。
为什么最小化文档上下文中的令牌很重要?
1.更多的上下文使模型更愚蠢
有充分的证据表明,截至2025年7月,随着你投入更多的代币,模型会变得更笨。你可能听说过,现在模型在长上下文中是多么出色,这有点正确,但不是全貌。对于一些研究的快速入门, 查看Chroma团队的视频.
2.代币成本$$$
想象一下,你正在使用Claude Opus作为后台代理,你首先让代理拉入文档上下文,假设它拉入10000个上下文令牌,其中4000个是相关的,6000个是额外的噪音。按照API的定价,这6k个代币每步的价格约为0.09美元。如果一个提示最终在Opus上采取了11个步骤,那么你就无缘无故地花了1美元。
设置
将Ref设置为MCP服务器有两种选择,可以通过可流式传输的http服务器(推荐)或本地stdio服务器(传统)。
此仓库包含旧版stdio服务器。
流式HTTP(推荐)

"Ref": {
"type": "http",
"url": "https://api.ref.tools/mcp?apiKey=YOUR_API_KEY"
}标准

"Ref": {
"command": "npx",
"args": ["ref-tools-mcp@latest"],
"env": {
"REF_API_KEY":
}
}工具
Ref-MCP服务器为您的代理需求提供了所有与文档相关的工具。
ref_search_文档
一个强大的搜索工具,用于检查技术文档。非常适合查找事实或代码片段。可以用于在web或github上搜索公共文档,也可以从repos和pdf等私有资源中搜索。
参数:
query(必填):查询相关文档。这应该是一个完整的句子或问题。
ref_read_url
一种从URL获取内容并将其转换为markdown的工具,便于使用参考阅读。当与返回相关内容URL的Ref_search_documentation工具结合使用时,这非常强大。
参数:
url(必填):要阅读的网页的URL。
OpenAI深度研究支持
参考文献可以作为深入研究的来源。OpenAI需要特定的工具定义,因此当与OpenAI客户端一起使用时,Ref将提供命名略有不同的相同工具。
ref_search_documentation(query) -> search(query)
ref_read_url(url) -> fetch(id)发展
npm install
npm run dev与Inspector一起运行
出于开发和调试目的,您可以使用MCP检查器工具。Inspector为测试和监控MCP服务器交互提供了一个可视化界面。
访问 检查员文件 有关详细的设置说明。
使用检验员进行本地测试:
npm run inspect或者同时运行监视器和检查器:
npm run dev本地开发
- 克隆仓库
- 安装依赖项:
npm install- 构建项目:
npm run build- 对于自动重建的开发:
npm run watch许可证
麻省理工学院
