这是一个 MCP 服务器实现,提供通过向量搜索检索和处理文档的工具,使 AI 助手能够用相关文档上下文增强其响应。
search_documentation
list_sources
extract_urls
remove_documentation
list_queue
run_queue
clear_queue
add_documentation
url(必须包括协议,例如 https://)add_repository
stderrpath(仓库的绝对路径)list_repositories
update_repository
stderrname(仓库名称)remove_repository
name(仓库名称)watch_repository
name(仓库名称)和 action("start" 或 "stop")get_indexing_status
name(仓库名称)- 如果未提供,则返回所有仓库的状态RAG 文档工具旨在:
该项目包含一个 docker-compose.yml 文件,用于轻松的容器化部署。启动服务:
docker-compose up -d
停止服务:
docker-compose down
系统包含一个 Web 界面,在启动 Docker Compose 服务后可以访问:
http://localhost:3030系统使用 Ollama 作为默认嵌入提供商,用于本地嵌入生成,OpenAI 可作为备用选项。此设置优先考虑本地处理,同时通过基于云的备用方案确保可靠性。
EMBEDDING_PROVIDER:选择主要嵌入提供商('ollama' 或 'openai',默认值:'ollama')EMBEDDING_MODEL:指定要使用的模型(可选)
OPENAI_API_KEY:当使用 OpenAI 作为提供商时必需FALLBACK_PROVIDER:可选备份提供商('ollama' 或 'openai')FALLBACK_MODEL:可选的备用提供商模型将以下内容添加到您的 cline_mcp_settings.json 中:
{
"mcpServers": {
"rag-docs": {
"command": "node",
"args": ["/path/to/your/mcp-ragdocs/build/index.js"],
"env": {
"EMBEDDING_PROVIDER": "ollama", // 默认值
"EMBEDDING_MODEL": "nomic-embed-text", // 可选
"OPENAI_API_KEY": "your-api-key-here", // 必需用于备用
"FALLBACK_PROVIDER": "openai", // 推荐用于可靠性
"FALLBACK_MODEL": "nomic-embed-text", // 可选
"QDRANT_URL": "http://localhost:6333"
},
"disabled": false,
"autoApprove": [
"search_documentation",
"list_sources",
"extract_urls",
"remove_documentation",
"list_queue",
"run_queue",
"clear_queue",
"add_documentation",
"add_repository",
"list_repositories",
"update_repository",
"remove_repository",
"watch_repository",
"get_indexing_status"
]
}
}
}
将以下内容添加到您的 claude_desktop_config.json 中:
{
"mcpServers": {
"rag-docs": {
"command": "node",
"args": ["/path/to/your/mcp-ragdocs/build/index.js"],
"env": {
"EMBEDDING_PROVIDER": "ollama", // 默认值
"EMBEDDING_MODEL": "nomic-embed-text", // 可选
"OPENAI_API_KEY": "your-api-key-here", // 必需用于备用
"FALLBACK_PROVIDER": "openai", // 推荐用于可靠性
"FALLBACK_MODEL": "nomic-embed-text", // 可选
"QDRANT_URL": "http://localhost:6333"
},
"autoApprove": [
"search_documentation",
"list_sources",
"extract_urls",
"remove_documentation",
"list_queue",
"run_queue",
"clear_queue",
"add_documentation",
"add_repository",
"list_repositories",
"update_repository",
"remove_repository",
"watch_repository",
"get_indexing_status"
]
}
}
}
系统默认使用 Ollama 进行高效的本地嵌入生成。为了最佳可靠性:
{
// 默认使用 Ollama,无需指定 EMBEDDING_PROVIDER
"EMBEDDING_MODEL": "nomic-embed-text", // 可选
"FALLBACK_PROVIDER": "openai",
"FALLBACK_MODEL": "text-embedding-3-small",
"OPENAI_API_KEY": "your-api-key-here"
}
此配置确保:
注意:系统会根据提供商自动使用适当的向量维度:
系统提供了两种互补的方法来添加文档:
直接添加(add_documentation 工具)
add_documentation 与 url: "https://example.com/docs"队列式处理
extract_urls 与 add_to_queue: true)run_queue)选择最适合您文档管理需求的方法。对于少量重要文档,直接添加提供即时结果。对于大量文档集或递归爬取,队列式方法提供更好的可扩展性。
系统支持对本地代码仓库进行索引,使其内容可以与网络文档一起搜索:
仓库配置
文件处理
异步处理
get_indexing_status 工具监控进度变更检测
示例用法:
add_repository with {
"path": "/path/to/your/repo",
"name": "my-project",
"include": ["**/*.js", "**/*.ts", "**/*.md"],
"exclude": ["**/node_modules/**", "**/dist/**"],
"watchMode": true
}
启动索引过程后,您可以检查其状态:
get_indexing_status with {
"name": "my-project"
}
这将返回关于索引进度的详细信息:
仓库:my-project
状态:🔄 正在处理
进度:45%
开始时间:2025年5月11日 下午2:45:30
持续时间:3分钟15秒
文件:已处理120个,跳过15个(共250个)
块:已索引1500个(共3300个)
批次:第15批(共33批)
系统支持一个 repositories.json 配置文件,允许您定义在启动时自动索引的仓库:
{
"repositories": [
{
"path": "/path/to/your/repo",
"name": "my-project",
"include": ["**/*.js", "**/*.ts", "**/*.md"],
"exclude": ["**/node_modules/**", "**/.git/**"],
"watchMode": true,
"watchInterval": 60000,
"chunkSize": 1000,
"fileTypeConfig": {
".js": { "include": true, "chunkStrategy": "semantic" },
".ts": { "include": true, "chunkStrategy": "semantic" },
".md": { "include": true, "chunkStrategy": "semantic" }
}
}
],
"autoWatch": true
}
配置文件会在使用仓库管理工具添加、更新或移除仓库时自动更新。您也可以手动编辑文件以在启动服务器前配置仓库。配置文件中的路径,如每个仓库的 path 和隐含的 repositories.json 位置,都是相对于执行服务器的项目根目录解析的。
配置选项:
repositories:仓库配置数组
path:仓库目录的绝对路径name:仓库的唯一名称include:包含的通配符模式数组exclude:排除的通配符模式数组watchMode:是否监控变更watchInterval:轮询间隔(毫秒)chunkSize:文件的默认分块大小fileTypeConfig:特定文件类型的配置
include:是否包含此文件类型chunkStrategy:分块策略("semantic"、"line" 或 "character")chunkSize:分块大小的可选覆盖autoWatch:是否在启动时自动开始监控 watchMode: true 的仓库
本项目是 qpd-v/mcp-ragdocs 的分支,最初由 qpd-v 开发。原始项目为此实现提供了基础。
特别感谢原始创建者 qpd-v,他们对这个 MCP 服务器初始版本的创新工作。此分支由 Rahul Retnan 增加了额外的功能和改进。
如果由于端口冲突 MCP 服务器无法启动,请按照以下步骤操作:
npx kill-port 3030
重启 MCP 服务器
如果问题仍然存在,请检查其他使用该端口的进程:
lsof -i :3030
如果某些工具(如 add_documentation)在 Claude Desktop 中没有出现:
handler-registry.ts 文件中正确注册ListToolsRequestSchema 处理程序响应的 tools 数组中autoApprove 数组中包含该工具缺少工具最常见的原因是它们被注册为处理程序但未包含在 ListToolsRequestSchema 处理程序返回的 tools 数组中。
如果您在索引大型仓库时遇到超时错误:
add_repository 添加仓库时,索引将在后台继续get_indexing_status 工具监控进度