这是一个MCP服务器实现,提供了通过向量搜索检索和处理文档的工具,使AI助手能够用相关的文档上下文增强其响应。
RAG 文档工具旨在:
{
"mcpServers": {
"rag-docs": {
"command": "npx",
"args": ["-y", "@sanderkooger/mcp-server-ragdocs"],
"env": {
"EMBEDDINGS_PROVIDER": "ollama",
"QDRANT_URL": "your-qdrant-url",
"QDRANT_API_KEY": "your-qdrant-key" # 如适用
}
}
}
}
在你的 claude_desktop_config.json 中添加以下内容:
{
"mcpServers": {
"rag-docs-openai": {
"command": "npx",
"args": ["-y", "@sanderkooger/mcp-server-ragdocs"],
"env": {
"EMBEDDINGS_PROVIDER": "openai",
"OPENAI_API_KEY": "your-openai-key-here",
"QDRANT_URL": "your-qdrant-url",
"QDRANT_API_KEY": "your-qdrant-key"
}
}
}
}
{
"mcpServers": {
"rag-docs-ollama": {
"command": "npx",
"args": ["-y", "@sanderkooger/mcp-server-ragdocs"],
"env": {
"EMBEDDINGS_PROVIDER": "ollama",
"OLLAMA_BASE_URL": "http://localhost:11434",
"QDRANT_URL": "your-qdrant-url",
"QDRANT_API_KEY": "your-qdrant-key"
}
}
}
}
"ragdocs-mcp": {
"command": "node",
"args": [
"/home/sander/code/mcp-server-ragdocs/build/index.js"
],
"env": {
"QDRANT_URL": "http://127.0.0.1:6333",
"EMBEDDINGS_PROVIDER": "ollama",
"OLLAMA_URL": "http://localhost:11434"
},
"alwaysAllow": [
"run_queue",
"list_queue",
"list_sources",
"search_documentation",
"clear_queue",
"remove_documentation",
"extract_urls"
],
"timeout": 3600
}
| 变量 | 适用于 | 默认值 | 备注 |
|---|---|---|---|
EMBEDDINGS_PROVIDER | 所有 | ollama | "openai" 或 "ollama" |
OPENAI_API_KEY | OpenAI | - | 从 OpenAI 控制台获取 |
OLLAMA_BASE_URL | Ollama | http://localhost:11434 | 本地 Ollama 服务 URL |
QDRANT_URL | 所有 | http://localhost:6333 | Qdrant 终端 URL |
QDRANT_API_KEY | 云 Qdrant | - | 从 Qdrant Cloud 控制台获取 |
PLAYWRIGHT_WS_ENDPOINT | Playwright 远程 | - | 远程 Playwright 服务器的 WebSocket 终点(例如,ws://localhost:3000/) |
该仓库包含用于本地开发的 Docker Compose 配置:
docker compose up -d
这将启动:
访问终端:
对于生产部署:
QDRANT_URL=your-cloud-cluster-url
QDRANT_API_KEY=your-cloud-api-key
此项目支持在本地或通过 Docker 容器运行 Playwright。这为 Playwright 的依赖可能难以直接安装的环境提供了灵活性。
src/api-client.ts 文件会自动检测 PLAYWRIGHT_WS_ENDPOINT 环境变量的存在:
PLAYWRIGHT_WS_ENDPOINT:应用程序将尝试连接到指定 WebSocket 终点的远程 Playwright 服务器,使用 chromium.connect()。这对于使用容器化的 Playwright 实例非常理想。PLAYWRIGHT_WS_ENDPOINT:应用程序将使用 chromium.launch() 启动本地 Playwright 浏览器实例。已在 docker-compose.yml 文件中添加了 playwright 服务,以方便在 Docker 容器中运行 Playwright。
要启动 Docker 中的 Playwright 服务器:
docker-compose up playwright
此命令将拉取 mcr.microsoft.com/playwright:v1.53.0-noble 镜像,并在主机机器的 3000 端口上启动一个 Playwright 服务器。
要配置您的应用程序使用此容器化的 Playwright 实例,请设置以下环境变量:
PLAYWRIGHT_WS_ENDPOINT=ws://localhost:3000/
使用自然语言查询搜索存储的文档。返回按相关性排序的匹配摘录及其上下文。
输入:
query (字符串):要在文档中搜索的文本。可以是自然语言查询、特定术语或代码片段。limit (数字,可选):要返回的最大结果数(1-20,默认:5)。较高的限制提供更全面的结果,但可能需要更长时间来处理。列出当前存储在系统中的所有文档来源。返回所有已索引文档的综合列表,包括源URL、标题和最后更新时间。使用此功能了解可用于搜索的文档或验证特定来源是否已被索引。
从给定的网页中提取并分析所有URL。此工具爬行指定的网页,识别所有超链接,并可选择将其添加到处理队列中。
输入:
url (字符串):要分析的网页的完整URL(必须包含协议,例如 https://)。页面必须公开可访问。add_to_queue (布尔值,可选):如果为真,则自动将提取的URL添加到处理队列中,以便稍后进行索引。谨慎使用大型站点,以免造成过多排队。通过URL从系统中删除特定的文档来源。删除是永久性的,并会影响未来的搜索结果。
输入:
urls (字符串[]):要从数据库中移除的URL数组。每个URL必须与添加文档时使用的URL完全匹配。列出当前等待在文档处理队列中的所有URL。显示待处理的文档来源,当调用 run_queue 时将被处理。使用此功能监控队列状态,验证URL是否正确添加,或检查处理积压情况。
处理并索引当前在文档队列中的所有URL。每个URL依次处理,具有适当的错误处理和重试逻辑。处理过程中提供进度更新。长时间运行的操作将持续处理直到队列为空或发生不可恢复的错误。
从文档处理队列中移除所有待处理的URL。当您想要重新开始、移除不需要的URL或取消待处理的处理时使用此操作。此操作立即且永久 - 如果您希望以后处理它们,URL需要重新添加。
该包遵循模块化架构,核心组件与MCP协议处理器之间有明确的分离。详情请参阅 ARCHITECTURE.md 中的结构文档和设计决策。
curl -fsSL https://ollama.com/install.sh | sh
ollama pull nomic-embed-text
ollama list
此MCP服务器在MIT许可证下发布。这意味着您可以自由地使用、修改和分发软件,但需遵守MIT许可证的条款和条件。更多详细信息,请参见项目存储库中的LICENSE文件。
我们欢迎贡献!请参阅我们的 CONTRIBUTING.md 获取详细的指南,但这里是一些基本步骤:
npm installgit checkout -b feat/your-featurenpm run commit 提交更改,确保符合 常规提交该项目基于 hannesrudolph/mcp-ragdocs 的分叉,而后者又基于 qpd-v/mcp-ragdocs 的原始工作。原始项目为此实现提供了基础。