String Utility Belt について
String Utility Beltは、AIエージェントがブラウザーを使わずに文字列変換やパイプラインを実行できる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
String Utility Belt の 247 個の文字列変換ユーティリティとパイプラインエンジンを、AI エージェントがブラウザーを介さずに直接呼び出せるツールとして公開する MCP サーバーです。
インストール
クローンやビルドは不要です。クライアントは npm から npx(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 として登録されています。エージェントに「これを base64 デコードして JSON を整形して」のように依頼すると、list_utilities でユーティリティを探し、run_utility または run_pipeline で実行します。
ツール
list_utilities—{ category?, query?, limit? }→{ items: [{ id, name, category, description }], total, categories }。一致度の高い順に返します。queryは、id、name、tags、aliases、description のいずれかに、順不同ですべて一致する必要がある単語の集合です。まずはここから始めてください。describe_utility—{ id }→ ユーティリティの詳細なドキュメント:パラメーター(種類、デフォルト値、選択肢/範囲、説明)、受け付けるデータと生成するデータ、タグ、別名、実行例、および必要なランタイム機能。run_utility—{ id, input, inputEncoding?, params? }→{ output, outputEncoding? }。テキスト出力はそのまま返されます。JSON 出力は整形済みテキストとして返されます。バイト出力はoutputEncoding: "base64"とともに base64 で返されます。パラメーターはユーティリティの仕様に照らして検証されます。ユーティリティが失敗した場合は、例外をスローせず、メッセージとともにisError: trueが返されます。run_pipeline—{ steps?, share?, input, inputEncoding? }→ パイプライン全体の{ output, outputEncoding?, errors, timings, skipped, halted }(v3 スキーマ:ユーティリティステップ、分岐、マクロ、「それぞれに対して実行」するステップ、条件、ステップごとのエラーポリシー)。steps([]は恒等パイプライン)かshare(#/p/<payload>リンク、それを含む URL、またはペイロードのみ)のどちらか一方を正確に指定してください。有効なステップに含まれる不明なユーティリティ 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— 全ユーティリティのカタログ(各ユーティリティの id、name、category、description、tags、aliases を含む JSON)。subelt://utility/{id}— リソーステンプレートを使用して提供される、1 つのユーティリティの詳細なドキュメント(describe_utilityと同じ形式)。id の補完に対応しています。
制限と分離
- 入力は1回の呼び出しにつき1 MBまでです(
shareリンクは100万文字までです)。 - 出力が100万文字を超えると切り詰められ、
truncated: trueと切り詰め前のfullLengthが示されます。 - パイプラインは最大100ステップです(ネストされたステップも数えます)。
- 各呼び出しは20秒後に停止します。変更するには
SUBELT_MCP_TIMEOUT_MSを設定してください。 - ユーティリティコードはサーバーではなく、プールされた子プロセス(最大4つ、各ヒープ512 MB)で実行されます。 呼び出しがブロックした場合(致命的な正規表現、コスト31のbcryptなど)は期限到達時に強制終了され、メモリを使い果たした場合は「メモリ不足」で失敗します。いずれの場合もサーバーは応答を続けます。ランナーはサーバーとともに終了し、サーバーが突然停止した場合は自ら終了します。
- 任意のユーザーJavaScriptを実行するユーティリティ(
custom_js)は常に拒否されます。LLM主導のコード実行はこのサーバーの対象外です。ブラウザーのDOMParserを必要とする2つのユーティリティ(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は、Webアプリやその他の統合とともに、GitHubのString Utility Beltリポジトリで開発されています。バグの報告や機能のリクエストは、課題トラッカーにお寄せください。MITライセンスです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。