关于 String Utility Belt
String Utility Belt 是供 AI Agent 调用字符串转换和流水线的 MCP 服务,无需浏览器。它同时提供工具查找与文档,并通过参数校验和隔离的子进程执行操作。
主要功能
- 01查找并查看工具文档
- 02执行字符串转换
- 03组合多步流水线
- 04检测输入格式
- 05校验工具参数
- 06隔离进程执行
适用场景
- 01解码并格式化数据
- 02通过流水线转换文本
- 03查找合适的转换工具
MCP 相关
该服务提供 `list_utilities`、`describe_utility`、`run_utility`、`run_pipeline` 和 `detect_format` 等转换工具,并提供工具目录及文档资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 5 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 要返回的结果数上限(默认值 50,最大值 500)。 |
| query | string | 否 | 搜索词;对 id、name、tags、aliases 和 description 进行不区分大小写的匹配。每个词都必须在任意位置匹配(例如 "encode url"、"sha256"、"uppercase")。 |
| category | string | 否 | 要筛选的类别(不区分大小写),例如 "Encoding" 或 "Hashing"。 |
详细介绍
@string-utility-belt/mcp
一个 MCP 服务,将 String Utility Belt 的 247 种字符串转换工具及其流水线引擎作为工具开放,供 AI Agent 直接调用,无需使用浏览器。
安装
无需克隆或构建:客户端通过 npx 从 npm 运行(需要 Node.js 20 或更高版本)。
Claude Code
claude mcp add subelt -- npx -y @string-utility-belt/mcp
或者将其安装为插件,这样服务版本就会固定为插件附带的版本(插件 README):
/plugin install string-utility-belt --marketplace String-Utility-Belt/string-utility-belt
Claude Desktop、Cursor 和其他 MCP 客户端:将以下内容添加到客户端的 MCP 配置中(Claude Desktop 使用 claude_desktop_config.json),然后重启客户端:
{
"mcpServers": {
"subelt": {
"command": "npx",
"args": ["-y", "@string-utility-belt/mcp"]
}
}
}
它也可在 Smithery 和官方 MCP Registry 中找到,名称为 com.stringutilitybelt/mcp。接下来,可以向 Agent 提出类似“对这个内容进行 base64 解码,并美化输出 JSON”的请求:它会通过 list_utilities 查找工具,并使用 run_utility 或 run_pipeline 运行。
工具
list_utilities—{ category?, query?, limit? }→{ items: [{ id, name, category, description }], total, categories },按匹配度从高到低排序。query是一组词,所有词都必须在 id、名称、标签、别名或描述中的某处匹配(顺序不限)。从这里开始。describe_utility—{ id }→ 工具的完整文档:参数(类型、默认值、选项/范围、描述)、接受和生成的内容、标签、别名、操作示例,以及所需的运行时功能。run_utility—{ id, input, inputEncoding?, params? }→{ output, outputEncoding? }。文本输出会原样返回;JSON 输出会以美化格式的文本返回;字节输出会以 base64 返回,并设置outputEncoding: "base64"。参数会根据工具的规格进行校验。工具运行失败时,会返回带有错误消息的isError: true,不会抛出异常。run_pipeline—{ steps?, share?, input, inputEncoding? }→ 整个流水线的结果{ output, outputEncoding?, errors, timings, skipped, halted }(v3 架构:工具步骤、分支、宏、“逐项运行”步骤、条件、逐步错误策略)。传入steps([]表示恒等流水线)或share(#/p/<payload>链接、包含此链接的 URL,或不带前缀的 payload),且只能传入其中一项。启用步骤中的未知工具 id 和无效参数会在运行前被拒绝。detect_format—{ input, inputEncoding? }→{ candidates: [{ format, confidence, note }] },按可能性从高到低排序(JSON、YAML、base64、JWT、gzip 等)。
inputEncoding 可以是 "text"(默认)、"base64"(标准或 URL 安全格式,可省略填充)、"hex"(两者都会先解码为原始字节)或 "json"(先解析);detect_format 接受 "text"、"base64" 或 "hex"。
资源
subelt://utilities— 完整目录的 JSON,包含每个工具的 id、名称、类别、描述、标签和别名。subelt://utility/{id}— 通过带有 id 补全功能的资源模板,获取单个工具的完整文档(结构与describe_utility相同)。
限制与隔离
- 每次调用的输入上限为 1 MB(
share链接上限为 1M 个字符)。 - 输出超过 1M 个字符时会被截断,并标记为
truncated: true,同时附带未截断的fullLength。 - 工作流最多包含 100 个步骤(包括嵌套步骤)。
- 每次调用运行 20 s 后就会停止——设置
SUBELT_MCP_TIMEOUT_MS可更改此限制。 - 实用工具代码在池化的子进程中运行(最多 4 个,每个堆内存为 512 MB),而不是在服务中运行: 如果某次调用造成阻塞(例如灾难性的正则表达式、成本为 31 的 bcrypt),就会在到达截止时间时被终止;如果耗尽内存,则会失败并提示 "ran out of memory";无论哪种情况,服务都会继续响应。运行器会随服务退出;如果服务意外崩溃,运行器也会自行终止。
- 始终拒绝执行运行任意用户 JavaScript 的实用工具(
custom_js)——由大模型驱动的代码执行不在此服务的范围内。两个需要浏览器DOMParser的实用工具(xml_to_json、html_table_to_csv)会失败并显示说明性错误。
隐私政策
此服务完全在你的电脑上运行。完整隐私政策请访问 stringutilitybelt.com/privacy/;针对本服务,具体如下:
- 数据收集。 它只接收你的 MCP 客户端在每次工具调用中发送的参数(输入文本、 实用工具 ID、参数、工作流步骤),并只向该客户端返回结果。它不包含分析、遥测或广告。
- 使用和存储。 服务及其子进程会在内存中处理输入,以生成你请求的 结果。不会将任何内容写入磁盘。诊断信息(例如启动失败或运行器耗尽内存)会输出到标准错误流,你的 MCP 客户端可能会将其保存在自己的日志中。
- 与第三方共享。 不会。此服务不会发起网络请求,因此你提供的任何内容都不会传到我们或其他任何人那里。(你的 MCP 客户端可能会从 stringutilitybelt.com 下载服务元数据中列出的图标并显示;服务本身不会这样做。)
- 保留。 调用返回后不会保留任何内容。
- 联系方式。 [email protected]。
构建
在仓库根目录执行(无需单独安装——会复用根目录的 node_modules):
npm run build:mcp
这会生成一个独立文件 packages/mcp/dist/server.mjs(需要 Node 20+,所有依赖均已打包,只有 Node 自带的内置模块会保持外部依赖)。这是一个 SSR 构建,因此依赖会解析到其 Node 版本;同一个文件也可作为任务运行器入口(--job-runner)。
运行本地构建
要从检出目录试用更改,请将客户端指向构建后的文件,而不是 npm 包:
claude mcp add subelt -- node /absolute/path/to/string-utility-belt/packages/mcp/dist/server.mjs
开发
# Unit + integration tests (in-process via InMemoryTransport, plus the process pool)
npx vitest run packages/mcp/src --maxWorkers=2
# Build, then also run the stdio smoke tests against the real binary
npm run build:mcp
npx vitest run packages/mcp/src/bin.smoke.test.ts --maxWorkers=1
源码与问题反馈
@string-utility-belt/mcp 在 GitHub 上的 String Utility Belt 仓库中开发, 与 Web 应用和其他集成一同维护。请在其问题跟踪器中报告错误或请求新功能。采用 MIT 许可。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。