CalculatorLib MCP

数千个计算器和 9 个单位换算类别 — 精简为仅 12 个工具(先搜索计算器,再运行它)— 接入任何 Model Context Protocol 客户端。向 Claude 提出诸如 “我体重 70 kg、身高 170 cm,BMI 是多少?” 或 “把 5 米换算成英尺” 之类的问题,得到权威答案,而不是凭空捏造的算术。

12可用工具
数千个计算器
9换算类别
MCP 端点 URL
基于 Streamable HTTP 的 JSON-RPC 2.0。公开 — 任何人都可调用。
Authorization 请求头 可选
添加此请求头可将调用归属到你的账户,并在 /account/mcp-logs 查看使用分析。 生成令牌 →

60 秒内安装

选择你使用的客户端,粘贴代码片段,重启。就这么简单。

运行一条命令,Claude Code 即可自动接入连接:

claude mcp add --transport http calculatorlib https://calculatorlib.com/mcp

或者,如果你更愿意手动编辑配置文件 ~/.claude/mcp.json

{
  "mcpServers": {
    "calculatorlib": {
      "url": "https://calculatorlib.com/mcp"
    }
  }
}

在 Claude Code 中用 /mcp 验证 — 你应当看到 calculatorlib 已连接,并列出 12 个工具。

编辑你的 Claude Desktop 配置:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json

添加下面的 mcpServers 条目(与你已有的内容合并):

{
  "mcpServers": {
    "calculatorlib": {
      "url": "https://calculatorlib.com/mcp"
    }
  }
}

重启 Claude Desktop。输入框中的锤子图标将显示 calculatorlib 及其 12 个工具。

打开 Cursor 设置 → MCPAdd new MCP server,然后粘贴:

{
  "mcpServers": {
    "calculatorlib": {
      "url": "https://calculatorlib.com/mcp"
    }
  }
}

Cursor 使用相同的 Streamable HTTP 传输,因此 JSON 架构与 Claude Desktop 完全一致。

编辑你的 Zed 设置(cmd+, / ctrl+,Open Settings),并在 context_servers 下添加计算器服务器:

{
  "context_servers": {
    "calculatorlib": {
      "source": "custom",
      "transport": {
        "type": "streamable-http",
        "url": "https://calculatorlib.com/mcp"
      }
    }
  }
}

重新加载助手面板;计算器工具即可供任何 agent 线程使用。Zed 的 MCP 支持需要 v0.165 或更高版本。

在 VS Code 中打开 Cline 扩展 → MCP ServersEdit Configuration。在 macOS 上,设置文件位于 ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json(Linux/Win 路径类似):

{
  "mcpServers": {
    "calculatorlib": {
      "url": "https://calculatorlib.com/mcp",
      "transportType": "streamableHttp"
    }
  }
}

Cline 会自动重新加载服务器配置;新工具会在几秒内出现在 MCP 面板中。

打开 Windsurf → CascadeConfigure MCP,或直接编辑 ~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "calculatorlib": {
      "serverUrl": "https://calculatorlib.com/mcp"
    }
  }
}

重启 Windsurf,计算器工具即会出现在 Cascade 的工具选择器中。HTTP 传输需要 Windsurf 1.5+。

任何支持 Streamable HTTP 传输(规范版本 2025-06-18)的 MCP 兼容客户端都可连接:

{
  "transport": "streamable-http",
  "endpoint": "https://calculatorlib.com/mcp"
}

或者直接用 curl 调用 JSON-RPC 端点:

curl -X POST https://calculatorlib.com/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

试试这些提示词

安装后,直接用自然语言和 Claude 对话 — 它会挑选合适的工具。

1

“如果我体重 70 kg、身高 170 cm,我的 BMI 是多少?我处于健康范围吗?”

Claude 调用 bmi_calculator,返回 BMI 24.22 及对应的 WHO 分类。

2

“把 5 米换算成英尺,再把 200 磅换算成千克。”

Claude 依次调用 convert_lengthconvert_mass

3

“如果我投资 $10 000,按 5% 年复利持有 20 年,最终价值是多少?”

Claude 调用 compound_interest_calculator 并展示明细。

4

“一笔 $300k 的房贷,年利率 6.5%、期限 30 年,每月还款是多少?”

Claude 用本金、利率、期限调用 home_loan_calculator

在线试用台

就在这里调用服务器 — 向 https://calculatorlib.com/mcp 发送真实 JSON-RPC,获得真实响应。无需注册。正在加载工具…

授权令牌(可选)
原始 JSON-RPC 请求 & 响应
请求
响应
高级技巧 — MCP Inspector 如需完整的请求/响应调试器,请运行官方 inspector 并将其指向此服务器: npx @modelcontextprotocol/inspector,然后连接到 https://calculatorlib.com/mcp(传输方式:Streamable HTTP)。

工具浏览器

按名称或标题搜索计算器库和 9 个换算类别。在思考要向 Claude 提出什么时很有用。

正在加载目录…

工作原理

  • 端点:位于 https://calculatorlib.com/mcp 的单个 POST 处理器,基于 Streamable HTTP 使用 JSON-RPC 2.0(传输规范 2025-06-18)。
  • 工具命名:计算器 slug 使用 snake_case(bmi_calculatorcompound_interest_calculator);换算器为 convert_<category>
  • 输入:每个工具都会公布一个从计算器表单字段(类型、枚举、最小/最大值)推导出的 JSON Schema。条件字段(例如 BMI 中的公制与英制)会列为可选 — 请阅读每个字段的描述以了解哪些组合有效。
  • 输出:一行文本摘要,外加一个 LLM 可解析的 structuredContent JSON 对象(例如 { "main": [{...}], "data": [...] })。
  • 更新:目录每 5 分钟刷新一次 — 新发布的计算器会自动出现。

直接 API(无需 MCP 客户端)

想在没有 MCP 客户端的情况下集成?同样的数据可通过普通 JSON 端点获取。

curl -X POST https://calculatorlib.com/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
curl -X POST https://calculatorlib.com/mcp \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc":"2.0","id":2,"method":"tools/call",
    "params":{
      "name":"bmi_calculator",
      "arguments":{"unitSystem":"metric","weight":70,"height":170}
    }
  }'
curl -X POST https://calculatorlib.com/mcp \
  -H 'Content-Type: application/json' \
  -d '{
    "jsonrpc":"2.0","id":3,"method":"tools/call",
    "params":{
      "name":"convert_length",
      "arguments":{"value":5,"from":"Meter","to":"Foot"}
    }
  }'

REST 端点(无 JSON-RPC 封装):

  • /api/calculators/schemas?q=<keywords> — 搜索计算器(带输入架构的有限匹配结果)
  • /api/converter/categories — 带单位的换算类别
  • POST /api/converter/convert — 直接换算,请求体 { category, from, to, value }

身份验证(可选但推荐)

匿名调用可用 — 身份验证是可选的。添加令牌可在 /account/mcp-logs 解锁按用户的使用分析:你通过令牌发起的每次调用都会显示在那里,包含延迟、错误原因以及你调用的计算器。

获取令牌(60 秒)

  1. 登录(或先创建账户)。
  2. 前往 /account/api-tokens
  3. 点击 Generate token。复制该值 — 它只显示一次。

将其添加到你的 MCP 客户端

与公开安装相同的配置文件,再加上一个 headers.Authorization 字段:

{
  "mcpServers": {
    "calculatorlib": {
      "url": "https://calculatorlib.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN_HERE"
      }
    }
  }
}

为什么要这么做?

  • 个人使用日志 — 查看你最常调用哪些计算器、哪些失败,仅限于你的令牌范围(/account/mcp-logs)。
  • 多客户端、独立令牌 — 为每台设备(笔记本、服务器、agent)各创建一个。吊销其中一个不会影响其他。
  • 未来按用户功能的基础 — 当我们加入速率限制 / 配额 / 已保存预设时,它们会绑定到已验证的调用上。

使用 Bearer 令牌的 curl

curl -X POST https://calculatorlib.com/mcp \
  -H 'Authorization: Bearer YOUR_TOKEN_HERE' \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

服务器运维者:设置 MCP_REQUIRE_AUTH=true 可要求每次调用都带令牌(匿名 → 401)。旧的 MCP_API_TOKEN 环境变量仍可作为单一共享密钥的旁路。

常见问题 & 故障排除

这是免费的吗?有速率限制吗?
是的,免费且公开。Cloudflare 部署在前面提供通用的 DDoS 防护。目前没有按 IP 的配额 — 请合理使用。如果你预计会在生产环境中大量调用,请通过页脚的联系链接告知我们。
你们会存储我的查询吗?
计算器输入在内存中处理,不会在应用层记录日志。Cloudflare 和应用服务器可能会为运维保留临时访问日志(请求方法、状态、IP);不涉及 JSON 负载的任何内容。
为什么 Claude 有时会说某个工具没有返回有用数据?
一部分计算器以带样式的纯 HTML 呈现结果,没有语义标记。MCP 层无法从中提取结构化字段,因此返回 “无输出”。我们正在补充标记 — 大多数计算器会返回丰富的结构化输出;其余的仍能正常执行,但只返回一行摘要。
我可以进行身份验证,让我的使用记录显示在我的账户下吗?
可以 — 登录并访问 /account/api-tokens 生成一个 Bearer 令牌。在每个 /mcp 请求中以 Authorization: Bearer <token> 传入,你的调用就会出现在 /account/mcp-logs。完整的客户端配置见上方的“身份验证”部分。
我弄丢了令牌。能找回吗?
不能 — 只存储 SHA-256 哈希。请在 /account/api-tokens 吊销丢失的令牌并生成一个新的。
我刚发布了一个新计算器 — 它什么时候出现?
5 分钟内(目录缓存 TTL)。管理员可通过 /admin/tools/cache → Invalidate ALL caches 强制刷新。
工具名称与我在 URL 中看到的 slug 不一致?
URL slug 中的连字符会转换为下划线作为工具名称(Claude 的工具解析器对下划线处理得更可靠)。因此 /bmi-calculator 会变成 bmi_calculator
BMI 工具同时将公制(weight、height)和英制(weightLbs、heightFt、heightIn)输入都标为可选。为什么?
带条件输入的计算器(例如单位制切换)无法在标准 JSON Schema 中表达 “当 unitSystem=metric 时 X 必填,当 unitSystem=imperial 时 Y 必填”。我们将两组都列为可选,并让 LLM 阅读每个字段的描述来选择正确的组合。