UV文档API服务

一个提供对UV文档程序化访问的MCP服务器,通过标准化的API暴露文档层次结构和详细命令文档。

  • by StevenBtw
  • Python
  • 本地部署
  • 17 星标
  • 更新于
在 GitHub 查看 StevenBtw/uv-docs-mcp

使用说明

UV文档MCP服务器

提供编程访问的MCP服务器 紫外线的 通过标准化API编制文档。此服务器现在利用了一种现代的分层资源结构,该结构将高级文档部分和详细的命令文档(包括子部分)作为单独的MCP资源公开。工具已经简化,许多文档查询都是通过资源层处理的。

链接

快速开始

  1. 要求:
    确保安装了Python 3.13+(MCP SDK兼容性最低为3.10)。

  2. 克隆存储库:

    git clone https://github.com/StevenBtw/uv-docs-mcp.git
    cd uv-docs-mcp
    
  3. 设置虚拟环境并安装依赖关系:

    python3.13 -m venv env
    source env/bin/activate   # On Windows use: env\\Scripts\\activate
    pip install -e .
    
  4. 运行服务器:

    uv run uv-docs
    

    (如果使用Claude Desktop或其他MCP客户端,请相应地调整配置。)

建筑

服务器采用模块化和分层设计构建,明确区分了关注点:

flowchart TD
    Client[MCP Client] --> Server[Server Layer]
    Server --> Resources[Resource Layer]
    Server --> Tools[Tools Layer]
    Server --> Prompts[Prompts Layer]
    
    Resources --> Cache[Cache System]
    Tools --> Cache
  • 资源层:
    使用该方案通过URI公开UV文档 uv-docs://资源是分层结构的:

    • 第一级: 基础部分(例如。, uv-docs://cli, uv-docs://settings, uv-docs://resolver)
    • 第二级: 单个命令(例如。, uv-docs://cli/uv-run, uv-docs://cli/uv-cache)
    • 第三级: 命令子部分(例如。, uv-docs://cli/uv-cache/uv-cache-dir)
  • 工具层:
    提供操作命令以与缓存交互并执行实时搜索。

    • update_cache: 如果实时版本不同,则更新文档缓存。
    • 搜索文档: 使用实时查询执行搜索UV文档。
  • 提示层:
    为人工智能助手提供提示模板,以生成文档摘要(例如 summarize-docs 提示)。

组件

资源

使用以下方式访问资源 uv-docs:// URI方案,并提供完整的文档层次结构。例如:

  • 基础部分:
    uv-docs://cli 返回所有CLI命令的列表。

  • 命令级别:
    uv-docs://cli/uv-cache 返回有关的元数据 uv cache 命令,包括可用的文档部分。

  • 分段级别:
    uv-docs://cli/uv-cache/uv-cache-dir 返回“uvcachedir”部分的详细文档内容。

每个资源都返回JSON数据,其中包含详细的元数据,并在请求时返回完整的文档内容。这种细粒度的细分允许MCP客户端和AI助手只查询他们需要的信息。

工具

现有的工具已经简化:

  1. update_cache
    • 目的: 如果实时版本已更改,请更新文档缓存。
    • 输入:
      {
        "force": false
      }
      
  2. 搜索文档
    • 目的: 对UV文档进行实时搜索。
    • 输入:
      {
        "query": "search query"
      }
      

鼓励

服务器为常见的文档任务提供预构建的提示模板:

  • 汇总文档:
    创建UV文档部分的摘要。
    可选参数:
    {
      "section": "cli|settings|resolver"
    }
    
    如果未指定任何部分,则生成所有部分的摘要。

安装和配置

MCP服务器配置

对于 克劳德桌面 用户可以适当地修改MCP服务器设置:

开发/未发布配置

{
  "mcpServers": {
    "uv-docs": {
      "command": "uv",
      "args": [
        "--directory",
        "/Users/steven/Git/MCP/uv-docs",
        "run",
        "uv-docs"
      ]
    }
  }
}

已发布配置

{
  "mcpServers": {
    "uv-docs": {
      "command": "uvx",
      "args": [
        "uv-docs"
      ]
    }
  }
}

调试与检查

要进行详细的调试,请使用 MCP检查员:

npx @modelcontextprotocol/inspector uv --directory /Users/steven/Git/MCP/uv-docs run uv-docs

缓存

服务器实现了一个版本感知缓存系统,以优化文档检索:

  • 初始化: 缓存在启动时自动初始化。
  • 版本检查: 将实时文档版本与缓存版本进行核对。
  • 分段缓存: 每个文档部分(例如CLI、设置、解析器)都是单独缓存的。
  • 手动更新: 使用 update_cache 必要时使用工具。

发展

项目结构

uv-docs/
├── src/
│   └── uv_docs/
│       ├── __init__.py
│       ├── server.py         # Server setup and routing
│       ├── resources.py      # Resource handling and MCP resource interface
│       ├── cache.py          # Version-aware cache system
│       ├── prompts.py        # Prompt templates for documentation tasks
│       └── tools.py          # Consolidated tool implementations (update_cache, search_documentation)
├── pyproject.toml            # Project configuration
└── README.md                # Project overview (this file)

建筑与出版

  1. 同步依赖关系和锁定文件:
    uv sync
    
  2. 构建包分发:
    uv build
    
  3. 发布到PyPI:
    uv publish
    

注: 通过以下方式设置PyPI凭据:

  • 令牌: --token 或环境变量 UV_PUBLISH_TOKEN
  • 或用户名/密码: --username/UV_PUBLISH_USERNAME 和 --password/UV_PUBLISH_PASSWORD

调试

为了获得最佳的调试体验,请使用 MCP检查员:

npx @modelcontextprotocol/inspector uv --directory /Users/steven/Git/MCP/uv-docs run uv-docs

检查器将显示一个用于基于浏览器的调试的URL。

缓存

服务器实现了一个版本感知缓存系统:

  • 服务器启动时缓存初始化
  • 根据实时文档进行版本检查
  • 版本更改时自动更新
  • 通过update_cache工具手动更新
  • 每个文档部分都单独缓存