mcpField
C
calc-mcp

calc-mcp

本地服务
github.com/coo-quack开发工具9今天更新

关于 calc-mcp

calc-mcp 是一款 MCP 服务,提供确定性的计算、日期、编码、哈希等实用工具,适合需要本地处理且不向外部服务发送处理数据的 MCP 客户端用户。

主要功能

  1. 01计算数学表达式和统计数据
  2. 02处理日期与时区
  3. 03生成密码学随机值
  4. 04编码、解码和哈希数据
  5. 05转换单位和数字进制
  6. 06解析并验证常见格式

适用场景

  1. 01计算表达式,避免依赖 LLM 估算
  2. 02转换时间并计算日期间隔
  3. 03生成 UUID 或密码
  4. 04编码文本或计算哈希值

MCP 相关

通过 stdio 向 MCP 客户端提供 21 种工具,涵盖数学、随机生成、日期操作、编码、哈希、转换、解析和验证。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"coo-quack-calc": {
"command": "npx",
"args": [
"-y",
"@coo-quack/calc-mcp"
]
}
}
}
启动命令npx -y @coo-quack/calc-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@coo-quack/calc-mcp2.1.5

工具

21

收录的工具列表 · 更新于 4 天前

参数类型必填说明
maxnumber否数字生成的最大值(默认值:100)
minnumber否数字生成的最小值(默认值:0)
typeenum是要生成的随机值类型:uuid、ulid、password、number 或 shuffleuuid | ulid | password | number | shuffle
itemsarray否要打乱的项目(用于 type=shuffle)
lengthinteger否密码生成长度(默认值:16)
charsetstring否密码的自定义字符集(覆盖大写字母/数字/符号选项)
numbersboolean否在密码中包含数字(默认值:true)
symbolsboolean否在密码中包含符号(默认值:true)
readableboolean否易读模式:排除容易混淆的字符(l/1/I/O/0/o),便于阅读
uppercaseboolean否在密码中包含大写字母(默认值:true)
uuidVersionenum否UUID 版本:v4(随机,默认值)或 v7(按时间排序)v4 | v7
excludeCharsstring否要从密码中排除的字符(例如 "\\|{}")

详细介绍

Calc MCP

npm 版本 CI 许可证:MIT

Calc MCP 演示

📖 文档 — 完整的工具参考、示例和安装指南。

21 个 AI 不擅长处理的工具 — 确定性数学计算、密码学随机数、精确日期运算、编码、哈希等。

大模型会幻觉式地给出计算结果,无法生成真正的随机数,也很难处理时区。这个 MCP 服务解决了这些问题。

快速开始
# Claude Code
claude mcp add -s user calc-mcp -- npx -y @coo-quack/[email protected]

# Or just run it
npx -y @coo-quack/[email protected]

适用于 Claude Desktop、VS Code Copilot、Cursor、Windsurf 和任何 MCP 客户端 — 下方的设置指南。


为什么?

仅用 AI使用 calc-mcp
“10 + 34 × 341 ÷ 23 = 507.8” ❌514.087 ✅(数学)
“这是一个 UUID:550e8400-...” 🤷 伪造密码学安全的随机 UUID v4/v7 ✅(随机数)
“从现在起 100 天是……” 🤔 猜测2026-05-22 ✅(日期)
“password123 的 SHA-256 是……” 💀 幻觉{"hash": "ef92b778bafe..."} ✅(哈希)
  • 确定性 — 每次输入相同,输出就相同且正确
  • 安全 — 沙盒化数学运算、ReDoS 防护、弱哈希警告
  • 隐私 — 所有计算都在本地运行,不会向外部服务发送数据
  • 无需服务端配置 — 通过 npx 安装一次即可;需要配置 MCP 客户端
  • 无需 API 密钥 — calc-mcp 本身无需账户或 API 密钥;需要 Node.js

示例

用自然语言提问 — 你的 AI 助手会选择合适的工具。

数学与数字
你问你得到工具
10 + 34 × 341 ÷ 23 等于多少?514.087math
将 255 转换为二进制11111111base
4539578763621486 是有效的银行卡号吗?trueluhn
文本与编码
你问你得到工具
“Hello, World! 🌍”有多少个字符?15 chars, 18 bytescount
对“Hello World”进行 Base64 编码SGVsbG8gV29ybGQ=base64
对“eyJhbGciOiJIUzI1NiJ9”进行 Base64 解码{"alg":"HS256"}base64
对“hello world”进行 URL 编码hello%20worldencode
对“hello%20world”进行 URL 解码hello worldencode
对 &lt;script&gt; 进行 HTML 解码<script>encode
计算“password123”的 SHA-256 哈希{"hash": "ef92b778bafe..."}hash
使用密钥“secret”计算“message”的 HMAC-SHA256{"hash": "8b5f48702995..."}hash
日期与时间
你问你得到工具
纽约现在几点?2026-02-10T19:00:00-05:00datetime
2026-02-11 之后 100 天是哪天?2026-05-22date
“30 9 * * 1-5”何时运行?Mon–Fri at 9:30cron_parse
生成
你询问你得到工具
生成一个 UUID v7019c4b54-aad2-7e52-...random
生成一个易读的 20 个字符密码hT9jZDojX6sHRJt8vaKSrandom
打乱 ["Alice", "Bob", "Charlie"]["Charlie", "Alice", "Bob"]random
转换
你询问你得到工具
100 英里是多少公里?160.93 kmconvert
72°F 是多少摄氏度?22.22°Cconvert
将 #FF5733 转换为 RGBrgb(255, 87, 51)color
将 rgba(255, 0, 0, 0.5) 转换为 8 位 HEX#ff000080color
分析与解析
你询问你得到工具
从 "abc123def456" 中提取数字123, 456regex
1.5.3 是否符合 ^1.0.0?truesemver
1.8.0 是否符合 ">=1.5.0 <2.0.0"?truesemver
192.168.1.0/24 的 IP 范围?192.168.1.1 – .254 (254 hosts)ip
"kitten" → "sitting" 的编辑距离3diff
"€" 的 Unicode 信息U+20AC, Currency Symbolschar_info
{"name":"test"} 是有效的 JSON 吗?valid, objectformat_validate
解码与解析
你询问你得到工具
解码此 JWT:eyJhbGci...{ alg: "HS256", name: "John Doe" }jwt_decode
解析 https://example.com/search?q=hellohost: example.com, q: "hello"url_parse

全部 21 个工具

工具描述
math计算表达式、统计数据
count字符(支持字素簇)、单词、行、字节
datetime当前时间、时区转换、UNIX 时间戳
randomUUID v4/v7、ULID、密码(易读、自定义字符集)、随机数、打乱顺序
hashMD5、SHA-1、SHA-256、SHA-512、CRC32、HMAC
base64编码 / 解码
encodeURL、HTML 实体、Unicode 转义
date日期差、加减日期、星期几、和历
regex测试、匹配、matchAll、替换
base进制转换(2–36)
diff行差异、Levenshtein 距离
format_validate验证 JSON、CSV、XML、YAML
cron_parse易读的 cron 表达式 + 后续运行时间(支持星期和月份名称)
luhn验证 / 生成校验位
ipIPv4/IPv6 信息、CIDR 包含检查、范围计算
colorHEX ↔ RGB ↔ HSL(支持 alpha 通道)
convert8 个类别、146 个单位名称:长度、重量、温度、面积(坪、榻榻米)、体积、速度、数据、时间
char_infoUnicode 码点、区块、类别
jwt_decode解码标头 + 载荷(不验证)
url_parse协议、主机、路径、参数、哈希
semver比较、验证、解析、范围匹配

安装

Claude Code
claude mcp add -s user calc-mcp -- npx -y @coo-quack/[email protected]
Claude Code 插件

也可通过 coo-quack marketplace 作为插件使用:

/plugin marketplace add coo-quack/claude-code-marketplace
/plugin install calc-mcp@coo-quack

详情请参阅安装指南。

Claude Desktop / Cursor / Windsurf

添加到配置文件:

应用配置路径
Claude Desktop(macOS)~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop(Windows)%APPDATA%\Claude\claude_desktop_config.json
Cursor~/.cursor/mcp.json
Windsurf~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "calc-mcp": {
      "command": "npx",
      "args": ["-y", "@coo-quack/[email protected]"]
    }
  }
}
VS Code(GitHub Copilot)

添加到工作区中的 .vscode/mcp.json:

{
  "servers": {
    "calc-mcp": {
      "command": "npx",
      "args": ["-y", "@coo-quack/[email protected]"]
    }
  }
}
Docker 镜像

Calc MCP 可通过 GitHub Container Registry 获取 Docker 镜像:

docker run --rm -i ghcr.io/coo-quack/calc-mcp:latest

也可以在 MCP 客户端配置中使用:

{
  "mcpServers": {
    "calc-mcp": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "ghcr.io/coo-quack/calc-mcp:latest"]
    }
  }
}

可用标签:

  • ghcr.io/coo-quack/calc-mcp:latest — 最新版本
  • ghcr.io/coo-quack/calc-mcp:X.Y.Z — 指定版本(将 X.Y.Z 替换为所需版本)
其他 MCP 客户端

Calc MCP 可与任何兼容 MCP 的客户端配合使用。通过 stdio 运行服务:

npx -y @coo-quack/[email protected]

将客户端的 MCP 配置指向上述命令。该服务使用标准的 模型上下文协议 通过 stdio 进行通信。

开发

bun install
bun run dev       # Start dev server
bun test          # Run tests
bun run lint      # Biome
bun run format    # Biome

安全性

calc-mcp 会在本地处理所有数据,且不会:

  • ❌ 将数据发送到外部服务
  • ❌ 将数据记录到文件或远程服务
  • ❌ 持久化存储已处理的数据

详细的安全信息请参阅 SECURITY.md。

安全地与大模型配合使用

calc-mcp 本身仅在本地运行。 但是,通过大模型使用时,您的输入会发送给大模型提供商(Anthropic、OpenAI 等)。

  • ✅ 建议: 尽可能使用测试/示例数据
  • ✅ 建议: 对敏感操作使用仅在本地运行的大模型
  • ❌ 不要: 将生产环境密钥传递给 MCP 工具(这些信息会发送给您的大模型提供商)

示例:

# ❌ Unsafe: Any secret passed to MCP tool is sent to your LLM provider
# Tool: hash
# Input: { "input": "sk-1234567890abcdef", "algorithm": "sha256" }

# ✅ Safe: Use test data only (for learning/development)
# Tool: hash
# Input: { "input": "test-value-123", "algorithm": "sha256" }

# ✅ For production secrets: Use local-only LLMs or process outside MCP

注意: 错误消息会自动清理,以防止意外泄露数据。

有关安全问题,请参阅我们的安全政策。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。