一、单位换算,日常高频但总是靠搜索引擎

做开发的、搞外贸的、写论文的、甚至日常刷个海淘——单位换算无处不在:

  • 看美剧里提到"6 feet tall",脑子里得换算成厘米
  • 海淘商品标着"2 lb",想知道到底是几斤
  • 写代码遇到"256 KB",手算转成字节是多少
  • 拿到一组 GPS 坐标,发现偏了几百米——原来是坐标系没对上

每次都要打开搜索引擎搜"1英尺等于多少米",搜完还得翻一下是英制还是美制,效率极低。更别说那些不常见的密度单位(g/cm³ ↔ lb/ft³)或压力单位(psi ↔ bar),连搜索都不一定能找到靠谱答案。

agent.linkedshine.com/tools 的换算工具模块,把这些高频换算需求一网打尽,11 种子工具覆盖数值、物理量、数字存储、地理坐标四大领域。而且每个工具都原生支持 MCP 协议,大模型可以直接调用——这才是重点。

二、工具入口

在线地址:在线工具集(备选:在线工具集

点击菜单 「换算工具」 即可看到全部 11 个子工具。


三、四大分类,11 种换算工具一览

3.1 数值类

工具 说明 支持的进制
进制转换 二进制、八进制、十进制、十六进制互转 2/8/10/16

输入 255,选十进制 → 十六进制,输出 FF;反过来也行。程序员日常必备。

3.2 物理量类(8 个工具)

工具 单位数 涵盖单位
长度换算 12 毫米、厘米、米、千米、英寸、英尺、码、英里、里、丈、尺、寸
重量换算 9 毫克、克、千克、吨、盎司、磅、斤、两、钱
温度换算 3 摄氏度 (°C)、华氏度 (°F)、开尔文 (K)
时间换算 8 毫秒、秒、分钟、小时、天、周、月、年
面积换算 9 平方毫米、平方厘米、平方米、平方公里、公顷、公亩、平方英尺、平方英里、亩
体积换算 10 毫升、厘升、分升、升、立方米、立方厘米、立方英尺、立方英寸、美制加仑、英制加仑
密度换算 5 千克/立方米、克/立方厘米、克/毫升、千克/升、磅/立方英尺
压力换算 8 帕斯卡、千帕、兆帕、巴、标准大气压、psi、毫米汞柱、托

亮点:同时覆盖国际单位制(米、千克)、英制(英尺、磅、加仑)和中国传统市制(里、丈、尺、寸、斤、两、钱、亩)。

单位 换算关系
1 尺 = 1/3 米 ≈ 0.3333 米
1 斤 = 0.5 千克
1 亩 ≈ 666.667 平方米

3.3 数字存储类

工具 单位数 涵盖单位
字节换算 6 B、KB、MB、GB、TB、PB

按 1024 进制(2^10)换算,不是硬盘厂商常用的 1000 进制。

3.4 地理类

工具 说明
地理坐标系转换 WGS84 ↔ GCJ02 ↔ BD09 三种坐标系互转,支持批量

搞过地图开发的同学一定懂:GPS 原始坐标(WGS84)放到高德/QQ 地图上会偏移,因为国内地图用的是 GCJ02(火星坐标系);百度地图又额外加了一层加密(BD09)。这个工具一步到位,三系统同时输出。


四、使用步骤

网页端

  1. 打开 agent.linkedshine.com/tools?module=conversion
  2. 选择 「换算工具」,点击需要的子工具
  3. 输入数值 + 选择源单位 / 目标单位
  4. 结果实时计算,直接复制使用

整个过程纯前端计算,数据不上传服务器。 

坐标转换特殊说明

地理坐标系转换为批量模式:每行一个坐标,格式为 经度,纬度(如 116.397428,39.909230),选择源坐标系后一次性输出三种坐标系的结果,保留 6 位小数精度。


五、几个典型场景

场景一:海淘重量换算

美亚上商品标注 2.5 lb,想知道是几斤。打开重量换算,输入 2.5,从 磅(lb) → ,结果是 2.2679 斤

场景二:程序员进制转换

看日志里出现 0xFF,想知道十进制是多少。打开进制转换,十六进制 → 十进制,得出 255

场景三:地图坐标纠偏

从某数据平台导出了一批 GCJ02 坐标,需要放到 Google 地图上展示(要用 WGS84)。打开地理坐标系转换,粘贴所有坐标行,选 GCJ02 → 输出中取 WGS84 列即可。

场景四:健身数据换算

Apple Watch 显示跑了 5 mi(英里),想知道是多少公里。长度换算:5 mi → km = 8.0467 km

场景五:存储容量规划

某接口返回文件大小 1048576 B,想知道是几 MB。字节换算:1048576 B → MB = 1 MB


六、重点:MCP 协议支持——让大模型直接调用换算能力

6.1 什么是 MCP

MCP(Model Context Protocol) 是 Anthropic 推出的开放协议,相当于 AI 应用的"USB-C 接口"。它定义了一套标准,让大模型可以安全、标准化地调用外部工具和数据源。

简单理解:大模型本身不会计算,但通过 MCP 协议,它可以"看到"有哪些工具可用,然后像调用函数一样发送请求,拿到结果后再组织回答。

6.2 MCP Server 端点

换算工具通过统一的 Streamable HTTP 端点暴露:

端点 方法 说明
POST /api/tools/mcp POST JSON-RPC 请求(initialize、tools/list、tools/call)
DELETE /api/tools/mcp DELETE 终止会话

鉴权方式(三选一):

Authorization: Bearer <api-key>
x-api-key: <api-key>
?apiKey=<api-key>

6.3 按需筛选工具:modules 和 keywords 参数

整个工具集目前有 40+ 个 MCP 工具(涵盖文本、换算、编码、日期、开发、语言等模块)。如果把全部工具一次性暴露给大模型,不仅浪费 context 窗口,还可能让模型在无关工具上"分心"。

因此 MCP 端点提供了两个筛选参数,让你按需获取工具列表。

modules — 按模块筛选

指定要加载的模块,支持模块 ID 或中文名称

含义
conversion 或 换算工具 只加载换算类工具
text 或 文本工具 只加载文本类工具
datetime 或 日期时间 只加载日期时间工具
conversion,text 同时加载换算和文本工具(逗号分隔)
keywords — 按关键词搜索

在工具的名称(如 length_convert温度换算)、标题描述关键词标签中搜索匹配项:

匹配结果
长度 匹配"长度换算"工具
坐标,温度 匹配"地理坐标系转换"和"温度换算"(逗号分隔)
WGS84 匹配"地理坐标系转换"(命中关键词标签)
length_convert 匹配"长度换算"(命中 MCP 工具名)
温度换算 匹配"温度换算"(命中工具名称)

modules 和 keywords 同时提供时为 AND 逻辑——工具必须同时满足两个条件才会出现。

使用方式

方式一:URL 查询参数(适合 MCP 客户端配置)

直接在 MCP 连接 URL 上附加参数:

https://agent.linkedshine.com/api/tools/mcp?modules=换算工具&keywords=长度,温度

这样大模型 tools/list 时只能看到匹配的换算工具,且只显示长度换算和温度换算。

方式二:JSON-RPC body 参数(适合 API 直接调用)

curl -X POST 'https://agent.linkedshine.com/api/tools/mcp' \
  -H "Content-Type: application/json" \
  -H "x-api-key: 你的API-KEY" \
  -d '{
    "jsonrpc":"2.0",
    "id":1,
    "method":"tools/list",
    "params": {
      "modules": "换算工具",
      "keywords": "坐标,WGS84"
    }
  }'

返回结果将仅包含"地理坐标系转换"这一个工具。

实战建议
使用场景 推荐配置 效果
只需要换算功能 ?modules=换算工具 11 个换算工具,其他模块不出现
只做长度和重量换算 ?modules=换算工具&keywords=长度,重量 仅 2 个工具
坐标数据清洗专用 ?modules=换算工具&keywords=坐标,WGS84 仅坐标系转换工具
不筛选(默认) 不带参数 全部启用的工具都会列出

通过 modules + keywords 的组合,你可以为不同场景的 Agent 精准配置工具集,既省 context 又降低模型选错工具的概率。


6.4 如何让大模型使用换算工具

方式一:通过 CodeBuddy / Claude Desktop 等 MCP 客户端配置

在 MCP 配置文件中添加换算工具服务器。以 CodeBuddy 为例,编辑 mcp.json

{
  "mcpServers": {
    "在线小工具": {
      "url": "https://agent.linkedshine.com/api/tools/mcp?apiKey=你的API-KEY&modules=换算工具"
    }
  }
}

配置完成后,你就可以直接对大模型说:

"帮我算一下 168 厘米是多少英尺"

大模型会自动:

  1. 通过 tools/list 发现可用的 length_convert 工具
  2. 根据工具的参数 schema(value: number, from: 'cm' | 'm' | ... , to: 'ft' | 'in' | ...)构造调用
  3. 发送 tools/call 请求,参数为 { value: 168, from: 'cm', to: 'ft' }
  4. 拿到结果 168 厘米 (cm) = 5.5118110236 英尺 (ft),然后以自然语言回复你

"168 厘米约等于 5.51 英尺,也就是 5 英尺 6 英寸左右。"

七、技术实现(给感兴趣的朋友)

7.1 三层架构

整个模块采用清晰的三层架构:

┌─────────────────────────────────────────────┐
│  MCP 适配器层 (mcp/tool-adapters/conversion) │  ← Zod Schema + execute()
├─────────────────────────────────────────────┤
│  注册层 (registry.ts)                       │  ← 工具元数据、搜索、按分类过滤
├─────────────────────────────────────────────┤
│  纯函数层 (processors.ts + geo-coord.ts)     │  ← 核心换算逻辑,零副作用
└─────────────────────────────────────────────┘

7.2 核心换算算法

通用单位换算(适用于长度、重量、字节、时间、面积、体积、密度、压力 8 类):

export function convertUnit(value: number, units: UnitDef[], fromId: string, toId: string): number {
  const from = units.find(u => u.id === fromId)
  const to = units.find(u => u.id === toId)
  if (!from || !to) return NaN
  return (value * from.toBase) / to.toBase
}

每个单位定义包含一个 toBase 因子(转到基准单位的系数),换算时:源值 × 源到基准因子 ÷ 目标到基准因子

例如米是基准单位(toBase=1),厘米的 toBase=0.01:

  • 120 cm → m(120 × 0.01) / 1 = 1.2 m
  • 1.2 m → cm(1.2 × 1) / 0.01 = 120 cm

这种"基准单位中转"的设计,新增一个单位只需加一行数据,不需要写排列组合的换算逻辑。

温度换算:采用"两步法"——先转到摄氏,再转到目标单位,避免 3×3=9 种排列组合。

// Fahrenheit → Celsius → Kelvin
function convertTemperature(value, from, to) {
  let celsius
  switch (from) {
    case 'celsius':    celsius = value; break
    case 'fahrenheit': celsius = (value - 32) * 5 / 9; break
    case 'kelvin':     celsius = value - 273.15; break
  }
  switch (to) {
    case 'celsius':    return celsius
    case 'fahrenheit': return celsius * 9 / 5 + 32
    case 'kelvin':     return celsius + 273.15
  }
}

坐标系转换:移植自经典的 Python CoordTransform 算法,通过非线性三角函数多项式实现 WGS84 ↔ GCJ02 的偏移计算,GCJ02 ↔ BD09 则使用极坐标变换。gcj02ToWgs84 的逆运算尤为巧妙——不是直接反解,而是利用"2 × 原始坐标 - 正向变换结果"逼近 WGS84 真值。

7.3 适配器工厂模式

8 个通用单位换算的 MCP 适配器使用了工厂函数模式,避免代码冗余:

// 每个适配器只需 10 行代码
export const lengthConvertAdapter = createUnitConvertAdapter({
  id: 'length-convert',
  name: 'length_convert',
  description: '长度单位换算...',
  units: lengthUnits,
  _meta: { modules: 'conversion', keywords: ['长度', '距离', ...] },
})

工厂函数 createUnitConvertAdapter 自动:

  1. 从 units 数组提取单位 ID 生成 Zod enum schema
  2. 提供标准的 execute 逻辑(调用 convertUnit、格式化输出)
  3. 同时返回 content(人类可读文本)和 structuredContent(结构化 JSON)

八、总结

换算工具模块的核心优势:

  1. 11 种子工具,覆盖 80+ 个不同单位——从程序员日常的进制转换,到普通人海淘的长度/重量换算,再到地图开发的坐标系纠偏,一站式搞定
  2. 同时支持国际单位、英制和中国市制——丈尺寸、斤两钱、亩,这些传统单位都能换算
  3. 原生 MCP 协议支持——每个工具都实现了完整的 ToolAdapter 接口(含 Zod 参数校验、JSON Schema 输出、结构化数据),大模型可以直接通过 Streamable HTTP 协议调用
  4. 支持模块筛选——通过 tools/list 的 modules/keywords 参数,可以只暴露换算工具给大模型,避免 context 浪费
  5. 纯前端 + MCP 双模式——网页端即开即用,API 端给 Agent 无缝集成

在线体验:在线工具集(备选:在线工具集

MCP 端点:POST https://agent.linkedshine.com/api/tools/mcp

换算工具只是整个工具集的一部分,还有文本工具、编码工具、日期时间、开发工具、语言工具等多个模块,全部支持 MCP 调用。

用得好欢迎点赞收藏,有问题评论区见~


更多免费在线工具 + MCP 集成方案,尽在 agent.linkedshine.com/tools

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐