文档语义搜索服务

基于ChromaDB向量存储的智能文档搜索服务,支持多框架文档的语义搜索和集成。

  • by artemartemov
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 artemartemov/docs-mcp

使用说明

docs mcp

一个安全的模型上下文协议(MCP)服务器,使用ChromaDB矢量存储跨多个框架提供智能文档搜索。

特性

  • 语义搜索 使用向量嵌入跨文档
  • 多个框架 支持:Python,FastAPI,React,SwiftUI,Tailwind CSS,Figma API,FigmaPlugins,MDN CSS
  • ChromaDB存储 用于快速、持久的矢量搜索
  • MCP协议 集成Claude Code和其他AI工具
  • CLI接口 便于管理和提取

快速开始

  1. 设置环境

    ./docs-mcp dev --setup
    
  2. 提取文档 (选择一个或多个)

    ./docs-mcp extract --framework python
    ./docs-mcp extract --framework css
    ./docs-mcp extract --all
    
  3. 启动MCP服务器

    ./docs-mcp server --start
    
  4. 测试集成

    ./docs-mcp test --framework figma
    

可用命令

提取文档

./docs-mcp extract --framework python     # Python official docs
./docs-mcp extract --framework fastapi    # FastAPI documentation  
./docs-mcp extract --framework react      # React.js documentation
./docs-mcp extract --framework swiftui    # SwiftUI Apple docs
./docs-mcp extract --framework tailwind   # Tailwind CSS docs
./docs-mcp extract --framework figma      # Figma REST API docs
./docs-mcp extract --framework figma_plugin # Figma Plugin API docs
./docs-mcp extract --framework css        # MDN CSS documentation
./docs-mcp extract --all                  # Extract all frameworks

分析收藏

./docs-mcp analyze --stats                # Show documentation statistics

测试集成

./docs-mcp test --framework figma         # Test Figma integration
./docs-mcp test --all                     # Run all tests

服务器操作

./docs-mcp server --start                 # Start MCP server
./docs-mcp server --config               # Show configuration

发展

./docs-mcp dev --setup                    # Setup development environment
./docs-mcp dev --clean                    # Clean temporary files

配置

在中设置环境变量 .env:

CHROMA_DATA_DIR=/path/to/chroma/data
OPENAI_API_KEY=your_openai_key
ENVIRONMENT=development
MCP_SERVER_HOST=127.0.0.1
MCP_SERVER_PORT=8000

MCP集成

添加到您的 .mcp.json:

{
  "mcpServers": {
    "docs": {
      "command": "python",
      "args": ["src/docs_mcp/server.py"],
      "env": {
        "PYTHONPATH": "src"
      }
    }
  }
}

可用的MCP工具

  • search_fastapi_docs() -搜索FastAPI文档
  • search_python_docs() -搜索Python文档
  • search_swift_ios_docs() -搜索Swift/iOS文档
  • get_security_guidelines() -获取安全最佳实践
  • get_collection_stats() -查看数据库统计信息
  • add_project_documentation() -添加自定义文档

框架覆盖范围

框架 文档 状态
Python 465+ ✅ 完成
顺风CSS 195+ ✅ 完成
图API 144+ ✅ 完成
Figma插件 60+ ✅ 完成
SwiftUI 39+ ✅ 完成
FastAPI 21+ ✅ 完成
反应 15+ ✅ 完成
CSS(MDN) 2400+ 🔄 进行中

需求

  • Python 3.8+
  • OpenAI API密钥(用于嵌入)
  • 2GB+磁盘空间(用于ChromaDB)

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

测试

该项目通过有组织的测试套件保持高测试覆盖率:

  • 服务器初始化测试 (4个测试):验证服务器启动和导入
  • 配置测试 (7个测试):验证设置和环境处理
  • 工具注册测试 (9项测试):确保所有MCP工具都已正确注册
  • CLI测试 (4个测试):测试命令行界面功能

在本地运行测试

# Run all tests
make test

# Run specific test categories
python -m pytest tests/test_server_initialization.py -v
python -m pytest tests/test_configuration.py -v
python -m pytest tests/test_tool_registration.py -v
python -m pytest tests/test_cli.py -v

# Run with coverage
python -m pytest tests/ --cov=src/docs_mcp --cov-report=html

覆盖范围要求

  • 最小覆盖: 75%
  • 覆盖范围报告:在CI/CD中自动生成
  • 覆盖范围伪影:在GitHub Actions构建中可用
  • PR评论:自动报告拉取请求的覆盖范围

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 运行测试并确保覆盖率: make test
  5. 提交拉取请求

所有pull请求都必须通过:

  • ✅ 服务器初始化测试
  • ✅ 配置验证测试
  • ✅ 工具注册测试
  • ✅ CLI功能测试
  • ✅ 代码格式化(黑色)
  • ✅ 代码linting(flake8)
  • ✅ 75%+测试覆盖率

支持

有关问题和疑问,请在GitHub上打开问题。