docs2db-mcp服务器
用于docs2db-api-RAG查询的MCP服务器。为RHEL文档提供语义和混合搜索工具。与llama stack、Goose、Claude Desktop和其他MCP客户端兼容。
特性
- 混合搜索:将向量相似性和BM25关键字搜索与互序融合相结合
- 交叉编码器重新排序:使用ms-marco-MiniLM-L-6-v2提高结果质量
- MCP协议:通过FastMCP的标准模型上下文协议
- 苏格兰和南方能源公司运输:服务器发送实时流媒体事件
- 可配置的:所有设置的环境变量
- 生产就绪:容器化、非root用户、健康检查
安装
先决条件
安装 紫外线:
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Or with brew
brew install uv来自PyPI
uv add docs2db-mcp-server源自
git clone https://github.com/rhel-lightspeed/docs2db-mcp-server.git
cd docs2db-mcp-server
uv sync
uv pip install -e .快速开始
先决条件
- PostgreSQL与pgvector 包含docs2db RAG数据库
- docs2db 构建RAG数据库(请参见 docs2db)
运行服务器
# Start the MCP server (uses localhost defaults)
uv run python -m docs2db_mcp
默认配置连接到 postgresql://postgres:postgres@localhost:5432/ragdb
服务器将于启动 http://localhost:8002/sse
与骆驼堆叠一起使用
添加到您的 run.yaml:
tool_runtime:
- provider_id: model-context-protocol
provider_type: remote::model-context-protocol
registered_resources:
tool_groups:
- toolgroup_id: mcp::docs2db-rag
provider_id: model-context-protocol
mcp_endpoint:
uri: http://localhost:8002/sse与Goose一起使用
添加 ~/.config/goose/config.yaml:
extensions:
docs2db-rag:
enabled: true
type: stdio
name: docs2db-rag
cmd: uv
args:
- run
- python
- -m
- docs2db_mcp
envs:
DOCS2DB_MCP_TRANSPORT: stdio与Claude Desktop一起使用
添加 claude_desktop_config.json:
{
"mcpServers": {
"docs2db-rag": {
"command": "uv",
"args": ["run", "python", "-m", "docs2db_mcp"]
}
}
}配置
所有配置均通过环境变量进行 DOCS2DB_MCP_ 前缀。
备注:对于stdio传输, DOCS2DB_LOG_LEVEL 自动设置为 CRITICAL 以尽量减少启动日志。如果需要,手动设置。
MCP服务器设置
| 变量 | 默认值 | 描述 |
|---|---|---|
DOCS2DB_MCP_TRANSPORT | sse | 运输类型(sse/stdio) |
DOCS2DB_MCP_HOST | 0.0.0.0 | 绑定地址 |
DOCS2DB_MCP_PORT | 8002 | 端口号 |
DOCS2DB_MCP_LOG_LEVEL | INFO | 日志记录级别 |
DOCS2DB_MCP_SHOW_BANNER | true | 显示FastMCP横幅(stdio自动抑制) |
数据库设置
| 变量 | 默认值 | 描述 |
|---|---|---|
DOCS2DB_MCP_DB_HOST | localhost | PostgreSQL主机 |
DOCS2DB_MCP_DB_PORT | 5432 | PostgreSQL端口 |
DOCS2DB_MCP_DB_DATABASE | ragdb | 数据库名称 |
DOCS2DB_MCP_DB_USER | postgres | 数据库用户 |
DOCS2DB_MCP_DB_PASSWORD | postgres | 数据库密码 |
RAG设置
| 变量 | 默认值 | 描述 |
|---|---|---|
DOCS2DB_MCP_RAG_SIMILARITY_THRESHOLD | 0.7 | 最小相似性得分 |
DOCS2DB_MCP_RAG_MAX_CHUNKS | 5 | 要返回的最大块数 |
DOCS2DB_MCP_RAG_ENABLE_RERANKING | true | 启用交叉编码器重新排序 |
工具
搜索文档
使用混合搜索(vector+BM25)搜索RHEL文档。
参数:
query(字符串,必填):搜索查询max_chunks(整数,可选):要返回的最大块数(默认值:5)similarity_threshold(浮点数,可选):最小相似性得分(默认值:0.7)enable_reranking(布尔值,可选):启用交叉编码器重新排序(默认值:true)
退货:
{
"chunks": [
{
"text": "Chunk content...",
"contextual_text": "LLM-generated context...",
"similarity": 0.85,
"source": "path/to/source/file.html",
"metadata": {...}
}
],
"query_used": "original query"
}Docker/Podman
塑造形象
podman build -t docs2db-mcp-server .运行容器
podman run -d \
--name docs2db-mcp \
-p 8002:8002 \
-e DOCS2DB_MCP_DB_HOST=postgres \
-e DOCS2DB_MCP_DB_PASSWORD=mysecret \
docs2db-mcp-serverDocker作曲/Podman作曲
services:
postgres:
image: pgvector/pgvector:pg17
environment:
POSTGRES_PASSWORD: postgres
volumes:
- ragdb:/var/lib/postgresql/data
- ./ragdb_dump.sql:/docker-entrypoint-initdb.d/init.sql
docs2db-mcp:
image: docs2db-mcp-server
ports:
- "8002:8002"
environment:
DOCS2DB_MCP_DB_HOST: postgres
DOCS2DB_MCP_DB_PASSWORD: postgres
depends_on:
- postgres发展
# Clone repo
git clone https://github.com/rhel-lightspeed/docs2db-mcp-server.git
cd docs2db-mcp-server
# Install dependencies
uv sync
uv pip install -e ".[dev]"
# Run tests
uv run pytest
# Run linters
uv run ruff check .
uv run mypy src/建筑
┌─────────────────────────────────────┐
│ MCP Client │
│ (llama-stack, Goose, Claude, etc.) │
└──────────────┬──────────────────────┘
│ MCP Protocol (SSE/stdio)
↓
┌─────────────────────────────────────┐
│ docs2db-mcp-server │
│ │
│ FastMCP Server │
│ └─ search_documents (tool) │
│ ↓ │
│ UniversalRAGEngine │
│ (from docs2db-api) │
└──────────────┬──────────────────────┘
│
↓
┌─────────────────────────────────────┐
│ PostgreSQL + pgvector │
│ (docs2db RAG database) │
└─────────────────────────────────────┘相关项目
- docs2db -从文档构建RAG数据库
- docs2dbapi -查询API以获取docs2db数据库
- linux mcp服务器 -用于Linux诊断的MCP服务器
许可证
Apache许可证2.0-请参阅 许可证 了解详情。
贡献
欢迎投稿!请打开问题或拉取请求。
支持
- 问题: https://github.com/rhel-lightspeed/docs2db-mcp-server/issues
- 讨论: https://github.com/rhel-lightspeed/docs2db-mcp-server/discussions
