ucon MCP 服务器

Markdown 使用说明

  • 项目简介
    • 这是一个实现 MCP 协议的后端服务器,结合 ucon 的单位转换和维度分析能力,为 AI Agent 提供可标准化访问的上下文服务。通过 MCP 服务器,LLM 客户端能够请求单位转换、单位集合查询、尺度前缀查询、维度兼容性检查等功能。
  • 主要功能点
    • convert(value, from_unit, to_unit):将数值在指定单位之间转换,返回带有数量、单位和维度信息的结果,支持复杂的单位表达式(如 m/s、kg/m³ 等)。
    • list_units(dimension?):按维度查询、列出可用单位(基础单位及可标度前缀的组合),返回单位信息清单。
    • list_scales():返回可用的刻度前缀(如 kilo、milli、Ki、Mi 等)及其数值因子。
    • check_dimensions(unit_a, unit_b):检查两个单位的维度是否兼容,返回兼容性及各自的维度名称。
    • list_dimensions():列出所有物理维度的名称(包括基元维度和派生/伪维度)。
    • 服务基于 MCP,能够处理跨单位、跨维度的转换,支持跨基准体系(通过 BasisTransform 的 rebasing 机制)以及对单位组合的路径查找。
  • 安装步骤
    • 安装简单版:pip install ucon
    • 安装带 MCP 支持的版本:pip install ucon[mcp]
  • 服务器配置(MCP 客户端的配置要求)
    • MCP 客户端需要提供启动服务器的命令与参数(command 与 args),以便建立与 MCP 服务器的连接。以下为示例配置,按仓库信息整理,确保可直接用于实际场景。
    • 示例 1:通过 uvx 启动(推荐,无需本地安装) { "server_name": "ucon", "command": "uvx", "args": ["--from", "ucon[mcp]", "ucon-mcp"] } 注释:uvx 为零安装模式,指定来源为本仓库的 MCP 实现,启动 nua 的 MCP 服务模块。
    • 示例 2:本地开发启动模式(需要本地有 MCP 和 uv 工具) { "server_name": "ucon", "command": "uv", "args": ["run", "--directory", "/path/to/ucon", "--extra", "mcp", "ucon-mcp"] } 注释:在 /path/to/ucon 指向仓库根目录,使用 uv 的 run 模式暴露 MCP 服务。
  • 基本使用方法
    • 启动服务后,LLM 客户端通过 MCP 客户端与该服务器建立连接,发送 JSON-RPC 风格的请求,例如请求 convert、list_units、check_dimensions 等。
    • 客户端请求示例(概念性描述,不含代码):
      • 调用 convert,请求包含 value、from_unit、to_unit;服务器返回包含数量、目标单位、维度信息,以及可选的不确定度。
      • 调用 list_units,服务器返回符合条件的单位信息列表(名称、简写、别名、所属维度、是否可标度)。
      • 调用 list_scales,返回可用的刻度前缀及其因子。
      • 调用 check_dimensions,返回 compatible 标志与各自维度名称。
      • 调用 list_dimensions,返回维度名称清单,按字母排序等。
    • 运行后,开发者或代理可以通过 MCP 客户端将自然语言请求映射为上述 JSON-RPC 调用,从而实现对单位、维度和转换能力的统一访问。
  • 注意事项
    • 本实现提供的工具函数与返回模型均落地在服务器端,MCP 客户端只需对接接口并发送请求,不需要关心内部实现细节。
    • 客户端若需要,请基于服务器暴露的字段名称与类型构造请求和处理响应(字段名称在返回模型中固定,如 quantity、unit、dimension、compatible 等)。

服务器信息