检查文档-FastMCP文档索引服务器
FastMCP服务器,使用ChromaDB进行语义文档索引和Git差异分析,以识别代码更改时需要更新的文档。
特性
- 📚 文献检索:具有语义搜索功能的索引标记文档
- 🔍 语义搜索:使用自然语言查询搜索文档
- 📝 Git差异分析:根据代码更改自动识别需要更新的文档
- 🚀 快速嵌入:使用Ollama的nomic嵌入文本模型进行高质量嵌入
- 💾 永久存储:ChromaDB用于可靠的矢量存储
- ☁️ 云支持:ChromaDB Cloud集成,实现可扩展的持久存储
先决条件
- Python 3.9+
- 紫外线 (Python包管理器)
curl -LsSf https://astral.sh/uv/install.sh | sh- 奥拉马 使用nomic嵌入文本模型
# Install Ollama (macOS)
brew install ollama
# Start Ollama service
ollama serve
# Pull the embedding model
ollama pull nomic-embed-text快速开始
1.克隆和设置
# Clone the repository
git clone https://github.com/bdougie/check_the_docs
cd check_the_docs
# Install dependencies with uv
uv sync
# Activate the virtual environment
source .venv/bin/activate # On macOS/Linux
# or
.venv\Scripts\activate # On Windows2.配置继续
在以下位置创建YAML配置文件 .continue/mcpServers/mcp-server.yaml:
name: Check Docs MCP server
version: 0.0.1
schema: v1
mcpServers:
- name: check_the_docs
command: uv
args:
- run
- python
- server.py
cwd: .替换 /path/to/your/check_the_docs 根据您的实际项目路径。
使用示例
索引文档
在Continue Agent中,要求对示例文档进行索引:
index_docs ./docs # or path to your docs folder搜索文档
搜索索引文档:
Search docs for "git integration"分析代码更改
根据代码更改检查哪些文档需要更新:
Check what documentation needs updating based on recent Git changes自我文件检查
使用项目本身来确保所有功能都记录在案:
- 首先,为项目自己的文档编制索引:
index_docs ./- 然后检查是否涵盖了所有代码功能:
Check docs to see if all features in server.py are covered in the documentation这将分析代码库,并建议新功能或工具的任何缺失文档。
有关可用MCP工具的详细信息,请参阅 available_tools.md.
ChromaDB云设置
要使用ChromaDB Cloud进行可扩展的持久存储,您可以直接通过MCP工具进行配置:
快速设置(MCP工具)
# 1. Configure ChromaDB Cloud and switch to cloud mode
configure_chroma_cloud your-tenant-name your-database-name
# 2. Copy existing local data to cloud (optional)
copy_to_cloud your-tenant-name your-database-name
# 3. Verify cloud connection
chroma_status可用的MCP配置工具
configure_chroma_cloud-设置并切换到ChromaDB Cloudswitch_to_local-切换回本地ChromaDBcopy_to_cloud-将本地集合复制到云端copy_from_cloud-将云集合复制到本地chroma_status-检查当前配置和连接
手动设置(环境变量)
# Set environment variables
export CHROMA_CLOUD_TENANT="your-tenant-name"
export CHROMA_CLOUD_DATABASE="your-database-name"
# Copy data and verify
copy_to_cloud your-tenant-name your-database-name
chroma_status有关详细的设置说明,请参阅 chroma-cloud-setup.md.
发展
运行测试
# Install dev dependencies
uv sync --dev
# Run tests
uv run pytest项目结构
check_the_docs/
├── server.py # Main FastMCP server implementation
├── pyproject.toml # Project configuration
├── README.md # This file
├── example.md # Implementation guide
├── chroma_db/ # ChromaDB storage (auto-created)
└── example_docs/ # Example documentation (optional)环境变量
OLLAMA_HOST:Ollama API端点(默认值:http://localhost:11434)CHROMA_DB_PATH:ChromaDB存储路径(默认值:./chroma_db)CHROMA_CLOUD_TENANT:ChromaDB Cloud租户名称(可选,适用于云模式)CHROMA_CLOUD_DATABASE:ChromaDB Cloud数据库名称(可选,用于云模式)CHROMA_CLOUD_API_KEY:ChromaDB Cloud API密钥(可选,用于编程访问)
建筑
服务器使用:
- FastMCP 用于MCP协议的实现
- ChromaDB 用于向量存储和相似性搜索
- 奥拉马 使用nomic嵌入文本生成嵌入
- GitPython 用于存储库分析
- 派丹蒂克 用于请求/响应验证
故障排除
Ollama连接错误
如果您看到“连接被拒绝”错误:
# Check if Ollama is running
ollama list
# Start Ollama if needed
ollama serveChromaDB持久性
数据库存储在 ./chroma_db 默认情况下。要重置:
rm -rf chroma_db/内存问题
对于大型文档集,您可能需要:
- 增加块大小以减少总块数
- 批量处理文件
- 使用云ChromaDB实例
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 使用运行测试
uv run pytest - 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
