MCP ツールスキーマビルダー
ツールを定義して JSON Schema を得ます。strict モードの要件もその場で反映されます。
ツール定義は社内システムを説明するものです。すべてブラウザー内で作られ、送信されません。
手元の定義を点検する
MCP ツールスキーマ について
ツール定義には二つの役目があり、JSON なのはそのうち一つだけです。スキーマは引数の形を述べ、説明文はそのツールが何のためにあり、各引数が何を意味するかを述べます。スキーマは完全に妥当でありながら、まちがったタイミングで、もっともらしい出鱈目を詰めて呼ばれるツールを生むことがあります。JSON のどこにも「それが何なのか」が書かれていないからです。このビルダーはスキーマを書き出し、その両面——構造と、そもそも何かが説明されているか——を点検します。strict モードも正しく扱います。すべてのプロパティを required に並べることを要求し、追加のプロパティを禁じるモードで、スキーマの見た目はほかに変わらないため、これに引っかかる人が多いのです。
機能
- 型・説明・任意の値集合を持つパラメーター
- strict モードの「すべて required」規則を、あとで気づくのではなくその場で適用
- strict モードが有効なら additionalProperties を正しく設定
- 配列には items スキーマを自動付与
- 説明のないパラメーターに警告
- パラメーター名の重複を検出
- 値が一つだけの列挙は定数だと注記
- スキーマだけでなくツール定義全体を出力
MCP ツールスキーマ の使い方
- ツール名と、いつ使うべきかの説明を書きます
- 各パラメーターに型と説明を付けて足します
- 必須のものを選ぶか、strict モードを有効にします
- 定義を tools 配列にコピーします
例
入力
"strict": true
出力
Error: strict mode requires every property to be listed as required
strict モードに任意のプロパティはありません。代わりに null を許可します。
よくあるエラーとトラブルシューティング
- strict モードが拒否される。 — すべてのプロパティが required で、additionalProperties が false である必要があります。任意のものは required にして null を許すか、strict を切ってください。
- ツールが誤った引数で呼ばれる。 — たいてい説明のないパラメーターです。名前だけでは意味を推測させることになり、「id」は何でもありえます。
- ツールが誤ったタイミングで呼ばれる。 — それはスキーマではなくツールの説明文です。何をするかだけでなく、いつ使い、何が返るかを書いてください。
- 配列のパラメーターが拒否される。 — 配列には中身を述べる items スキーマが要ります。ここでは自動的に付きます。
よくある質問
- strict モードで実際に何が変わりますか。
- 引数がスキーマどおりに検証されることを保証します。代償として、すべてのプロパティを required に並べ、追加のプロパティを認めないことが必要です。本当に任意の引数は「required だが null 可」として設計することになります。
- パラメーターの説明はどこまで書きますか。
- スキーマだけを読んだ人が何を入れるか分かる程度に。書式、単位、値の出どころです。「注文に使われた顧客のメールアドレス」は「メール」よりはるかに価値があります。
- 列挙はいつ使うべきですか。
- 妥当な値の集合が本当に閉じていて短いときです。誤答の一群をまとめて消せます。値が一つだけの列挙は、パラメーターではなく定数なので指摘されます。
- MCP ツールと API ツールの両方に使えますか。
- スキーマはどちらも同じ JSON Schema の部分集合です。外側の包みは文脈で少し違いますが、間違えやすい入力スキーマの部分は同一です。
- 良いツールの説明文とは何ですか。
- 二文で三つのこと。何をするか、いつ使うか、何が返るか。最後は最も省かれがちで、最も役に立ちます。一回の呼び出しで足りるかを呼ぶ側に教えるからです。
関連ツール
AI・エージェントの他のツール
AI・エージェントのツールをすべて見る · すべてのツール