MCP服务器获取RAG
一种模型上下文协议(MCP)服务器,使用RAG(检索增强生成)获取web内容并返回相关块。
github:https://github.com/attamari/mcp-server-fetch-rag
特性
- 语义分块:基于嵌入相似性将句子分组为连贯的块
- 基于查询的评分:与Power Mean聚合进行后期交互,以获得精确的相关性评分
- LexRank评分:不提供查询时基于图形的中心性评分
- LexRank回填:在需要时用高中心性块补充查询结果
- 百分比过滤:基于分数分布的动态阈值
- 多语言支持:用途
paraphrase-multilingual-MiniLM-L12-v2(50多种语言) - PDF支持:从PDF文档中提取文本
- GPU加速:自动检测CUDA、DirectML、ROCm、OpenVINO提供程序
- 上下文高效:过滤掉无关内容以减少令牌使用
用法
MCP客户端配置
添加到MCP客户端配置中(例如。 claude_desktop_config.json):
{
"mcpServers": {
"fetch-rag": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/attamari/mcp-server-fetch-rag",
"mcp-server-fetch-rag"
]
}
}
}使用CLI选项:
{
"mcpServers": {
"fetch-rag": {
"command": "uvx",
"args": [
"--from", "git+https://github.com/attamari/mcp-server-fetch-rag",
"mcp-server-fetch-rag",
"--ignore-robots-txt",
"--user-agent", "your-custom-user-agent"
]
}
}
}CLI选项
| 选项 | 描述 |
|---|---|
--user-agent | 自定义用户代理字符串(覆盖默认MCP UA) |
--ignore-robots-txt | 忽略robots.txt限制 |
--proxy-url | HTTP请求的代理URL |
工具:fetch_rag
获取URL并返回相关内容块。
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
url | string | 是 | - | 要获取的URL |
query | string | 否 | null | 搜索相关性过滤查询 |
max_chunks | int | 否 | 10 | 要返回的最大块数 |
运作原理
- 获取:从URL下载内容(通过trafilatura下载HTML,通过pypdfium2下载PDF)
- 分裂:使用wtpsplit将文本分割成句子(sat-31-sm,85种以上语言)
- 嵌入:生成L2标准化嵌入(通过FastEmbed/ONNX解释多语言MiniLM-L12-v2)
- 块:通过将相似性嵌入语义块来对相邻句子进行分组
- 得分:
- 带查询:后期交互——通过幂均值聚合句子级查询相似度 - 无需查询:LexRank——通过幂均值聚合的句子级图中心性
- 过滤器:应用基于百分位数的动态阈值(P30)
- 回填:当查询评分产生的块不足时,补充高中心LexRank块(P30过滤)
- 返回:按原始文档顺序排序的顶部块
许可证
MIT许可证——见 许可证 了解详情。
