@sanderkooger/mcp-server-ragdocs

by sanderkooger
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Used for code coverage reporting for the project, but not as a service the MCP integrates with functionally.

  • Mentioned in workflow badges and repository URLs, but not as a direct integration for the MCP server's functionality.

  • Provides local embeddings generation using Ollama's nomic-embed-text model as an alternative to cloud-based embedding services.

MCP 服务器 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_KEYOpenAI-从 OpenAI 仪表板获取
OLLAMA_BASE_URL奥拉马http://localhost:11434本地 Ollama 服务器 URL
QDRANT_URL全部http://localhost:6333Qdrant 端点 URL
QDRANT_API_KEY云 Qdrant-从 Qdrant Cloud 控制台

本地部署

该存储库包括用于本地开发的 Docker Compose 配置:

Docker Compose下载

docker compose up -d

开始于:

  • 端口 6333 上的 Qdrant 矢量数据库
  • 端口 11434 上的 Ollama LLM 服务

访问端点:

云部署

对于生产部署:

  1. 使用托管的 Qdrant Cloud 服务
  2. 设置以下环境变量:
QDRANT_URL=your-cloud-cluster-url QDRANT_API_KEY=your-cloud-api-key

工具

搜索文档

使用自然语言查询搜索存储的文档。返回符合上下文的摘录,并按相关性排序。

输入:

  • query (字符串):要在文档中搜索的文本。可以是自然语言查询、特定术语或代码片段。
  • limit (数字,可选):返回结果的最大数量(1-20,默认值:5)。限制值越高,返回结果越全面,但处理时间也越长。

列出来源

列出系统中当前存储的所有文档来源。返回所有已索引文档的完整列表,包括来源 URL、标题和最后更新时间。使用此列表可以了解哪些文档可供搜索,或验证特定来源是否已被索引。

提取网址

提取并分析给定网页的所有 URL。此工具会抓取指定网页,识别所有超链接,并选择性地将其添加到处理队列中。

输入:

  • url (字符串):待分析网页的完整 URL(必须包含协议,例如 https://)。该页面必须可公开访问。
  • add_to_queue (布尔值,可选):如果设置为 true,则自动将提取的 URL 添加到处理队列中,以便稍后进行索引。在大型网站上请谨慎使用,以避免队列过长。

删除文档

根据 URL 从系统中移除特定文档来源。移除操作是永久性的,并将影响未来的搜索结果。

输入:

  • urls (string[]):要从数据库中移除的 URL 数组。每个 URL 必须与添加文档时使用的 URL 完全匹配。

列表队列

列出当前在文档处理队列中等待的所有 URL。显示调用 run_queue 时将处理的待处理文档源。使用此方法可以监控队列状态、验证 URL 是否已正确添加,或检查处理积压情况。

运行队列

处理并索引当前文档队列中的所有 URL。每个 URL 均按顺序处理,并采用适当的错误处理和重试逻辑。处理过程中会提供进度更新。长时间运行的操作将一直处理,直到队列为空或发生不可恢复的错误。

清除队列

从文档处理队列中移除所有待处理的 URL。当您想重新开始、移除不需要的 URL 或取消待处理处理时,可以使用此功能重置队列。此操作是即时且永久的 - 如果您希望稍后处理 URL,则需要重新添加。

项目结构

该软件包采用模块化架构,核心组件和 MCP 协议处理程序之间清晰分离。请参阅ARCHITECTURE.md以获取详细的结构文档和设计决策。

不使用 Docker 来使用 Ollama Embeddings

  1. 安装Ollama:
curl -fsSL https://ollama.com/install.sh | sh
  1. 下载 nomic-embed-text 模型:
ollama pull nomic-embed-text
  1. 验证安装:
ollama list

执照

此 MCP 服务器采用 MIT 许可证。这意味着您可以自由使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。更多详情,请参阅项目仓库中的 LICENSE 文件。

贡献

欢迎大家贡献代码!请参阅我们的CONTRIBUTING.md 文件,了解详细指南,以下是一些基本要求:

  1. 分叉存储库
  2. 安装依赖项: npm install
  3. 创建功能分支: git checkout -b feat/your-feature
  4. 使用 npm run commit 提交更改以确保符合常规提交
  5. 推送到你的 fork 并打开 PR

Forkception 致谢

该项目基于hannesrudolph/mcp-ragdocs的一个分支,而 hannesrudolph/mcp-ragdocs 本身又从qpd-v/mcp-ragdocs的原始作品中分叉而来。原始项目为本实现提供了基础。

-
security - not tested
A
license - permissive license
-
quality - not tested

MCP 服务器实现提供了通过矢量搜索检索和处理文档的工具,使 AI 助手能够通过相关文档上下文增强他们的响应。

使用 Ollama 或 OpenAI 生成嵌入。

包含 Docker 文件

  1. Table of Contents
    1. Usage
      1. Features
        1. Configuration
          1. Usage with Claude Desktop
          2. OpenAI Configuration
          3. Ollama Configuration
          4. Ollama run from this codebase
        2. Environment Variables Reference
          1. Local Deployment
          2. Cloud Deployment
        3. Tools
          1. search_documentation
          2. list_sources
          3. extract_urls
          4. remove_documentation
          5. list_queue
          6. run_queue
          7. clear_queue
        4. Project Structure
          1. Using Ollama Embeddings without docker
            1. License
              1. Contributing
                1. Forkception Acknowledgments
                  ID: g4jkr5rjt5