mcpField
S
String Utility Belt

String Utility Belt

ローカル
stringutilitybelt.com開発ツール45 日前に更新

String Utility Belt について

String Utility Beltは、AIエージェントがブラウザーを使わずに文字列変換やパイプラインを実行できる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

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ライセンスです。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。