mcpField
S
String Utility Belt

String Utility Belt

本地服务
stringutilitybelt.com开发工具45 天前更新

关于 String Utility Belt

String Utility Belt 是供 AI Agent 调用字符串转换和流水线的 MCP 服务,无需浏览器。它同时提供工具查找与文档,并通过参数校验和隔离的子进程执行操作。

主要功能

  1. 01查找并查看工具文档
  2. 02执行字符串转换
  3. 03组合多步流水线
  4. 04检测输入格式
  5. 05校验工具参数
  6. 06隔离进程执行

适用场景

  1. 01解码并格式化数据
  2. 02通过流水线转换文本
  3. 03查找合适的转换工具

MCP 相关

该服务提供 `list_utilities`、`describe_utility`、`run_utility`、`run_pipeline` 和 `detect_format` 等转换工具,并提供工具目录及文档资源。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"com-stringutilitybelt": {
"command": "npx",
"args": [
"-y",
"@string-utility-belt/mcp"
]
}
}
}
启动命令npx -y @string-utility-belt/mcp

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

安装包
npm@string-utility-belt/mcp1.10.2

工具

5

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

参数类型必填说明
limitinteger否要返回的结果数上限(默认值 50,最大值 500)。
querystring否搜索词;对 id、name、tags、aliases 和 description 进行不区分大小写的匹配。每个词都必须在任意位置匹配(例如 "encode url"、"sha256"、"uppercase")。
categorystring否要筛选的类别(不区分大小写),例如 "Encoding" 或 "Hashing"。

详细介绍

@string-utility-belt/mcp

smithery badge

一个 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 许可。

评论

支持 Markdown

第一次接触 MCP?

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

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