toolc について
toolcは、MCPサーバー、REST API、ドキュメントを、エージェント向けの小さなエンドポイントにコンパイルします。ツールの統合や選択を調整でき、呼び出しログと結果の圧縮も行えます。
主な機能
- 01MCPとRESTのツール群をコンパイル
- 02説明の書き換えと類似ツールの統合
- 03search_toolsとcall_toolでカタログを公開
- 04大きな結果の圧縮と呼び出し記録
- 05OpenAPIやドキュメントからAPIを取り込み
活用シーン
- 01エージェントのコンテキスト内のツール定義を削減
- 02複数のMCPサーバーのツールを統合
- 03OpenAPI仕様からREST APIを追加
- 04呼び出し記録と繰り返すエラーを確認
MCP 対応
MCPサーバーを下流として受け入れ、クライアント向けにMCPサーバーのゲートウェイを実行します。コンパイル済みまたはミラー化したツール群を公開できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
toolc
エージェント向けツールサーフェスを最適化するコンパイラーです。 MCP サーバー、REST API の OpenAPI 仕様、さらにはドキュメントページを指定すると、 より小さく、よりスマートなツールサーフェスを提供するエンドポイントを返します。 接続するすべてのエージェントでコストを削減し、あらゆるタスクの精度を高め、 すべての呼び出しを記録します。
N 台の MCP サーバーを接続すると、すべてのツール定義がモデルのコンテキストに 読み込まれ、ツール選択の精度が低下し、その場しのぎの複数段階の呼び出しチェーンを 強いられます。toolc はフェデレーションをコンパイルします。
- 書き換え:兄弟ツールとの違いを明確にした、LLM 向けに最適化された説明
- 統合:類似したツール群(
search_x/find_x/get_x)を、決定論的な ルーティングを備えた単一のファサードツールに統合 - 選択:コンテキストを最大限に節約したい場合、カタログ全体を 2 つのメタツール
(
search_tools/call_tool)に集約 - 圧縮:大きすぎる結果を提供時に要約し、識別子と情報源の詳細を保持
- 合成:OpenAPI 仕様、またはドキュメントから合成したドラフト仕様を使って、 REST API をツール群に直接追加
- 監視:引数と結果を含むすべての呼び出しを記録し、繰り返し発生するエラーを 分類して修正案を提示
ベンチマーク
稼働中の 5 台のサーバーにまたがる 131 個のツール、30 個のタスク × 3 試行、 回答を評価(全データ · 統合の実行結果):
| 条件 | 成功率 | 完了タスクあたりのコスト | ツール定義のコンテキスト |
|---|---|---|---|
| 未加工(全 131 ツール) | 96.7% | $0.2631 | 約 24,360 tok |
| コンパイル+統合 | 96.7% | $0.0411(6.4 倍安価) | 約 845 tok |
| 選択なしで統合 | 100.0% | $0.1335 | 約 14,506 tok |
統合により、トレードオフの両端で優れた結果が得られます。選択サーフェスは コストを抑え、統合はあらゆる設定で精度を高めます。各処理は設定で切り替えられるため、 デプロイごとにトレードオフを選択できます。
クイックスタート
git clone https://github.com/toolc-dev/toolc && cd toolc
pnpm install && pnpm -r test
# describe your federation
cp toolc.config.example.jsonc toolc.config.jsonc
# introspect it
node packages/cli/bin/toolc.mjs -c toolc.config.jsonc inspect
# compile (set ANTHROPIC_API_KEY for the rewrite/consolidate passes)
node packages/cli/bin/toolc.mjs -c toolc.config.jsonc compile
# serve the compiled surface over stdio (add to Claude as an MCP server)
node packages/cli/bin/toolc.mjs -c toolc.config.jsonc serve --mode compiled
接続先には MCP サーバー、または REST API をそのまま指定できます。
{
"downstream": [
{ "id": "gh", "transport": { "type": "http", "url": "https://api.githubcopilot.com/mcp/" } },
{ "id": "nws", "transport": { "type": "openapi", "spec": "https://api.weather.gov/openapi.json" } }
]
}
Docker でのデプロイについては、SELF_HOSTING.md をご覧ください。
ホステッドサービス
toolc.dev では、この同じエンジンをマネージドサービスとして 提供しています。コンパイル済みの HTTPS エンドポイント、プレイグラウンドと 全ペイロードのログエクスプローラーを備えたコンソール、ドキュメントからの仕様書作成、 エラーに基づく修正案の提案を利用できます。
ディレクトリ構成
packages/core:IR(Capability Graph)、フロントエンド(MCP、OpenAPI、ドキュメント合成)、パス、出力packages/gateway:呼び出し記録と圧縮機能を備えたランタイム MCP サーバー(ミラー+コンパイル済み)packages/cli:toolcコマンドpackages/harness:ベンチマーク実行ツール、評価、レポートpackages/shared:設定スキーマ、エラー
ライセンス
エンジン(このリポジトリ内のすべての内容)は、永久に Apache-2.0 ライセンスです。 誰でもローカルで独自のツールサーフェスをコンパイルして提供でき、ホステッド製品と まったく同じ品質のコンパイルを利用できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。