Conda元数据查询服务

提供权威、只读的Conda生态系统元数据访问服务,支持AI代理进行包管理查询和分析。

  • by conda-incubator
  • Python
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 conda-incubator/conda-meta-mcp

使用说明

conda-meta-mcp

MCP(模型上下文协议)服务器为AI代理公开权威的只读Conda生态系统元数据。

📖 阅读介绍博客文章: conda meta mcp:AI代理的conda生态系统数据专家

[!注意] conda-meta-mcp 提供从通道数据对conda生态系统元数据的只读访问 (包和repodata)、conda伪造数据和OpenTeams搜索包索引 内容。用户全权负责他们发起、授权、自动化的所有请求, 或促使通过 conda-meta-mcp,包括遵守任何适用的 第三方条款、费率限制、访问要求和软件包许可证。

元数据和许可证字段可能不完整、过时或仅供参考。这 项目不提供法律建议或授予使用第三方服务的权利,或 内容。

“Meta”在这里意味着什么

“Meta”指的是关于软件包的结构化、机器可消费的生态系统智能,而不是上游项目文档本身。此服务器提供(另请参见架构 server-info.json 当前能力):

目前可用:

  • 版本元数据(MCP工具/库版本)通过 info 工具
  • 包裹信息tarball数据通过 package_insights 工具
  • 通过以下方式搜索包裹 package_search 工具
  • 通过导入到包的启发式映射 import_mapping 工具
  • 通过文件路径映射到包 file_path_search 工具
  • 通过以下方式将PyPI名称映射到conda包 pypi_to_conda 工具
  • CLI帮助(适用于conda) cli_help 工具
  • 通过以下方式查询存储库元数据(取决于/谁需要) repoquery 工具

由特定渠道数据源支持的工具需要明确的 channel 论证和 在读取不受支持的通道的数据源之前失败。

计划:

  • 求解器可行性信号(干运行输出)
  • 模式参考和选定的规范摘录
  • 二进制链接信息
  • 知识库各部分的链接(不是副本)

它不嵌入、索引或提供完整的库文档(例如numpy API页面);这仍然超出了设计范围。

1.目的

通过提供最新的关键和零散的专家知识,使代理能够回答包装问题。该项目提供了一个安全、可检查、零副作用的表面,因此试剂可以提供准确、最新的指导。

2.范围

目标

  • 值得信赖的机器界面
  • 只读,可托管
  • 快速启动,低延迟
  • 清晰的扩展和测试模式

非目标

  • 执行安装/修改
  • 替换人类文档
  • 重新实现conda-forge处理逻辑

3.设计原则

  • 合同规定无副作用
  • 刀具注册模式(conda_meta_mcp.tools)
  • 测试+预提交强制一致性
  • 增量扩展

4.安装

通过pixi(推荐)

作为工具全局安装:

pixi global install conda-meta-mcp

或者添加到您的项目中:

pixi add conda-meta-mcp

康达/曼巴

conda install -c conda-forge conda-meta-mcp

或者搭配曼巴/小曼巴:

mamba install -c conda-forge conda-meta-mcp

来源(开发)

先决条件: 皮克西

git clone https://github.com/conda-incubator/conda-meta-mcp.git
cd conda-meta-mcp
pixi run cmm --help

5.代理设置

安装为conda包

呼叫 cmm mcp-json 获取一个包含带有args的命令的json片段,以添加到您的代理配置中。

从源安装

呼叫 pixi run cmm mcp-json 获取一个包含带有args的命令的json片段,以添加到您的代理配置中。

6.在GitHub Copilot编码代理中的使用

创建名为的GitHub工作流 copilot-setup-steps.yml 包含(另请参见 GitHub文档):

jobs:
  copilot-setup-steps:
    ...
    steps:
      ...
      - name: Setup conda-meta-mcp
        uses: conda-incubator/conda-meta-mcp@main
      ...

在存储库中的“设置”->“复制副本”->“编码代理”->“MCP配置”下添加此MCP配置:

{
  "mcpServers": {
    "conda-meta-mcp": {
      "type": "local",
      "command": "cmm",
      "args": [
        "run"
      ],
      "tools": [
        "*"
      ]
    }
  }
}

7.发展

任务(pixi):

  • 测验: pixi run test (覆盖范围开放 htmlcov/index.html)
  • 林/格式/类型/重新生成元数据: pixi run pre-commit

8.扩展(新工具)

  1. 创建 conda_meta_mcp/tools/<name>.py 与:

    from .registry import register_tool
    
    @register_tool  # or @register_tool(cache_clearers=[...]) for custom cache clearers
    async def my_tool(...) -> dict:
        """Tool description (becomes MCP tool description)."""
        return await asyncio.to_thread(_helper_function, ...)
    
  2. 添加单元测试(模拟重型deps)

  3. pixi run prek

  4. pixi run test

  5. 公开公关

8.安全模型

  • 无环境突变
  • 无外部命令副作用
  • 未来的添加必须保留只读合同