MCP服务器ragdocs
](https://github.com/sanderkooger/mcp-server-ragdocs/actions/workflows/release.yml)
](https://npmjs.com/package/@sanderkooger/mcp-server-ragdocs)  
MCP服务器实现,通过矢量搜索提供检索和处理文档的工具,使AI助手能够用相关的文档上下文来增强他们的响应。
目录
用法
RAG文档工具设计用于:
- 通过相关文档增强人工智能响应
- 构建具有文档感知能力的人工智能助手
- 为开发人员创建上下文感知工具
- 实现语义文档搜索
- 扩充现有知识库
特性
- 基于矢量的文档搜索和检索
- 支持多种文档来源
- 支持本地(Ollama)嵌入生成或OPENAI
- 语义搜索功能
- 自动化文档处理
- LLM的实时上下文增强
配置
{
"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" # if applicable
}
}
}
}使用Claude Desktop
将此添加到您的 claude_desktop_config.json:
OpenAI配置
{
"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"
}
}
}
}Ollama配置
{
"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"
}
}
}
}Ollama从这个代码库中运行
"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 | 奥拉马 | http://localhost:11434 | 本地Ollama服务器URL |
QDRANT_URL | 全部 | http://localhost:6333 | Qdrant端点URL |
QDRANT_API_KEY | Cloud Qdrant | - | 来自Qdrant Cloud控制台 |
PLAYWRIGHT_WS_ENDPOINT | Playwright远程 | - | WebSocket端点,用于远程Playwright服务器(例如。, ws://localhost:3000/) |
本地部署
该存储库包括用于本地开发的Docker Compose配置:
docker compose up -d这将开始:
- 6333端口上的Qdrant矢量数据库
- 11434号港口的Ollama LLM服务
访问端点:
- 问题:http://localhost:6333
- 奥拉玛:http://localhost:11434
云部署
对于生产部署:
- 使用托管的Qdrant云服务
- 设置这些环境变量:
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未设置:应用程序将使用以下命令启动本地Playwright浏览器实例chromium.launch().
在Docker中运行剧作家
A. playwright 服务已添加到 docker-compose.yml 文件,以方便在Docker容器中运行Playwright。
在Docker中启动Playwright服务器:
docker-compose up playwright此命令将拉取 mcr.microsoft.com/playwright:v1.53.0-noble 镜像并启动可在端口上访问的Playwright服务器 3000 您的主机。
要配置您的应用程序以使用此容器化的Playwright实例,请设置以下环境变量:
PLAYWRIGHT_WS_ENDPOINT=ws://localhost:3000/工具
搜索文档
使用自然语言查询搜索存储的文档。返回与上下文匹配的摘录,按相关性排序。
输入:
query(string):在文档中搜索的文本。可以是自然语言查询、特定术语或代码片段。limit(number,可选):返回的最大结果数(1-20,默认值:5)。更高的限制提供了更全面的结果,但可能需要更长的时间来处理。
列表_来源
列出当前存储在系统中的所有文档源。返回所有索引文档的完整列表,包括源URL、标题和上次更新时间。使用此功能了解可用于搜索的文档,或验证特定来源是否已编入索引。
extract_urls
提取并分析给定网页中的所有URL。此工具抓取指定的网页,识别所有超链接,并可选择将其添加到处理队列中。
输入:
url(string):要分析的网页的完整URL(必须包括协议,例如https://)。该页面必须可公开访问。add_to_queue(布尔值,可选):如果为true,则自动将提取的URL添加到处理队列中,以便以后进行索引。在大型场所应谨慎使用,以避免过度排队。
remove_文档
通过URL从系统中删除特定的文档源。删除是永久性的,将影响未来的搜索结果。
输入:
urls(string\[\]):要从数据库中删除的URL数组。每个URL都必须与添加文档时使用的URL完全匹配。
list_queue
列出文档处理队列中当前等待的所有URL。显示调用run_queue时将处理的待处理文档源。使用此功能可以监视队列状态,验证URL是否正确添加,或检查处理积压。
run_queue
处理并索引文档队列中当前的所有URL。每个URL都是按顺序处理的,具有适当的错误处理和重试逻辑。处理过程中会提供进度更新。长时间运行的操作将一直处理,直到队列为空或发生不可恢复的错误。
clear_queue
从文档处理队列中删除所有挂起的URL。当您想重新开始、删除不需要的URL或取消挂起的处理时,使用此选项重置队列。此操作是即时和永久的-如果您想稍后处理URL,则需要重新添加它们。
项目结构
该软件包遵循模块化架构,核心组件和MCP协议处理程序之间有明确的分离。看 建筑.md 详细的结构文档和设计决策。
在没有docker的情况下使用Ollama嵌入
- 安装Ollama:
curl -fsSL https://ollama.com/install.sh | sh- 下载nomic嵌入文本模型:
ollama pull nomic-embed-text- 验证安装:
ollama list许可证
此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。
贡献
我们欢迎捐款!请查看我们的 贡献.md 有关详细指南,但以下是基本内容:
- 分叉存储库
- 安装依赖项:
npm install - 创建要素分支:
git checkout -b feat/your-feature - 使用npm run Commit提交更改,以确保符合 常规承诺
- 推到你的叉子上,打开一个PR
