mcp文档抓取mcp服务器
RAG(检索增强生成)用于本地目录中的文档
这是一个基于TypeScript的MCP服务器,它为存储在本地目录中的文档实现了RAG系统。它允许用户使用LLM从本地存储的存储库和文本文件中查询文档。
特性
资源
- 通过以下方式列出和访问文件
docs://URI - 文档可以是Git存储库或文本文件
- 用于内容访问的纯文本mime类型
工具
list_documents-列出DOCS_PATH目录中的所有可用文档
- 返回所有文档的格式化列表 - 显示可用文档的总数
rag_query-使用RAG查询文档
- 将document_id和query作为参数 - 从文档中返回带有上下文的AI生成的响应
add_git_repository-使用可选的稀疏签出将Git存储库克隆到docs目录
- 将repository_url作为参数 - 可选的document_name参数,用于自定义文档的名称(使用不带“-docs”后缀的简单描述性名称) - 用于稀疏签出特定目录的可选子目录参数 - 如果存储库已存在,则自动提取最新更改
add_text_file-将文本文件下载到docs目录
- 将file_url作为参数 - 使用wget下载文件
鼓励
guide_documents_usage-关于如何使用文档和RAG功能的指南
- 包括可用文件列表 - 提供RAG功能的使用提示
发展
安装依赖项:
npm install构建服务器:
npm run build对于自动重建的开发:
npm run watch设置
此服务器需要一个本地目录来存储文档。默认情况下,它使用 ~/docs 但您可以使用配置其他位置 DOCS_PATH 环境变量。
文档结构
文档目录可以包含:
- Git存储库(克隆目录)
- 纯文本文件(扩展名为.txt)
每个文档都使用谷歌Gemini嵌入的llama-index.ts单独索引。
API密钥
该服务器使用Google的Gemini API进行文档索引和查询。您需要将Gemini API密钥设置为环境变量:
export GEMINI_API_KEY=your-api-key-here您可以从获取Gemini API密钥 谷歌人工智能工作室 网站。将此密钥添加到您的shell配置文件中,或将其包含在Claude Desktop的环境配置中。
安装
要与Claude Desktop一起使用,请添加服务器配置:
在MacOS上: ~/Library/Application Support/Claude/claude_desktop_config.json 在Windows上: %APPDATA%/Claude/claude_desktop_config.json 在Linux上: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"docs-rag": {
"command": "npx",
"args": ["-y", "@kazuph/mcp-docs-rag"],
"env": {
"DOCS_PATH": "/Users/username/docs",
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}确保更换 /Users/username/docs 文档目录的实际路径。
调试
由于MCP服务器通过stdio进行通信,调试可能具有挑战性。我们建议使用 MCP检查员,可作为包脚本使用:
npm run inspector检查器将提供一个URL,用于访问浏览器中的调试工具。
用法
配置后,您可以将服务器与Claude一起使用:
- 添加文档:
Add a new document from GitHub: https://github.com/username/repository或使用自定义文档名称:
Add GitHub repository https://github.com/username/repository-name and name it 'framework'或者对特定目录进行稀疏签出:
Add only the 'src/components' directory from https://github.com/username/repository或者结合自定义名称和稀疏签出:
Add the 'examples/demo' directory from https://github.com/username/large-repo and name it 'demo-app'或添加文本文件:
Add this text file: https://example.com/document.txt- 查询文档:
What does the documentation say about X in the Y repository?- 列出可用文件:
What documents do you have access to?服务器将自动处理文档的索引,以实现高效检索。
