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 等)。