CLAUDE LABEN
CONNECTORS — Enterpriseの管理型MCPコネクタにコネクタ可観測性(public beta)が加わり、採用状況・エラー・レイテンシ・使用量を監視できますDIRECTORY — 作成したMCPコネクタをClaudeから直接ディレクトリへ申請できるようになりましたSLACK — Team・EnterpriseではSlackの会話内でClaudeをタグ付けし、タスクを委任できますENTERPRISE — Claude Enterpriseに詳細な管理分析・モデル単位のエンタイトルメント・支出アラートが追加されましたMODEL — Claude Sonnet 5が全プランの既定モデルで、導入価格は100万トークンあたり入力$2・出力$10(8月31日まで)ですLIMITS — Claude Codeの週次利用上限は7月13日まで50%引き上げ、Claude Scienceの応募は7月15日までですCONNECTORS — Enterpriseの管理型MCPコネクタにコネクタ可観測性(public beta)が加わり、採用状況・エラー・レイテンシ・使用量を監視できますDIRECTORY — 作成したMCPコネクタをClaudeから直接ディレクトリへ申請できるようになりましたSLACK — Team・EnterpriseではSlackの会話内でClaudeをタグ付けし、タスクを委任できますENTERPRISE — Claude Enterpriseに詳細な管理分析・モデル単位のエンタイトルメント・支出アラートが追加されましたMODEL — Claude Sonnet 5が全プランの既定モデルで、導入価格は100万トークンあたり入力$2・出力$10(8月31日まで)ですLIMITS — Claude Codeの週次利用上限は7月13日まで50%引き上げ、Claude Scienceの応募は7月15日までです
記事一覧/API & SDK
API & SDK/2026-07-08上級

MCP コネクタを申請・無人運用に回す前に、各ツールを契約テストで確かめる

手元で動いた MCP コネクタをそのまま無人ジョブに繋ぐと、応答形状の誤読や書き込みの二重発火で静かに壊れます。ツール記述・応答契約・冪等性・レイテンシを機械検証する小さなハーネスの作り方を、実測値とともにまとめました。

MCP40Claude API107契約テスト2無人運用6TypeScript22

プレミアム記事

手元で一度動いたコネクタを、そのまま夜間の無人ジョブへ繋いだ夜のことでした。翌朝ログを開くと、同じ記事更新の書き込みが 2 回走っていました。ツールの中身は正しく、権限も足りていて、対話で叩いたときは一度も再現しなかったのに、です。

原因はコネクタ側ではなく、その手前にありました。ネットワークが一瞬詰まってクライアントがリトライしたとき、書き込みツールに冪等性がなく、同じ操作が二重に適用されてしまったのです。対話中の私は目の前で結果を見て気づけますが、無人ジョブには見てくれる人がいません。7 月の更新で、作った MCP コネクタを Claude から直接ディレクトリへ申請できるようになりました。誰かに使ってもらう手前、あるいは自分の夜間ジョブに預ける手前で、「手元で動いた」を「契約として保証されている」に引き上げておきたい、と強く思った出来事でした。

その保証を機械で与える小さな契約テストハーネスを、これから TypeScript の MCP SDK で一段ずつ組み立てていきます。

手元で動いたのに、夜のジョブで静かに壊れた

対話でコネクタを叩く確認には、致命的な死角があります。人間が一度ずつ、成功したときの応答だけを見て「動いた」と判断してしまうことです。

無人運用で壊れるのは、たいてい成功パスの外側です。ツールがエラーを isError: true の構造化応答として返したのに、呼び出し側がそれを成功と読み違える。応答の形が前回と微妙に変わっていて、後段のパースが黙って空を掴む。リトライで書き込みが二重に走る。どれも、目の前で一度叩くだけの確認では絶対に表面化しません。

私自身、個人開発で複数の技術ブログの更新をモデルに任せていて、痛感しています。無人ジョブの信頼性は、コネクタが「一番良いときにどう動くか」ではなく、「揺れたときに約束を守るか」で決まります。だからこそ、申請や本番運用に出す手前で確かめるべきは機能の有無ではなく、ツールが守ると宣言した契約そのものです。

契約テストが確かめるべき4つの性質

契約テストは、単体テストとも E2E とも少し違います。コネクタが公開している「約束」を、外側のクライアントの立場から機械的に突き合わせる作業です。無人運用に出す前に、最低限この 4 つを固定します。

性質確かめること破れたときに起きること
自己記述全ツールに説明文と有効な inputSchema があるかモデルがツールを誤用・無視する
応答契約正常系の応答形状が宣言どおりか後段のパースが黙って空を掴む
冪等性書き込みを2回呼んでも副作用が1回かリトライで二重発火する
レイテンシツール別の応答時間が予算内かタイムアウトで無人ジョブが落ちる

順に、実際に動くコードへ落としていきます。以降は @modelcontextprotocol/sdk のクライアントを使い、テスト対象のコネクタへ外側から接続する構成を前提とします。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
MCP コネクタの全ツールを列挙し、説明文と inputSchema の欠落を申請前に自動検出する検証コード
書き込みツールの二重発火をセンチネル方式で検知する冪等性テストの実装(p95 レイテンシ計測つき)
ツール別の p50/p95 レイテンシから、無人ジョブのタイムアウト予算を根拠を持って決める手順
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API & SDK2026-06-02
MCP の tools 以外の3つの能力を使い分ける:resources・prompts・sampling の設計
MCP サーバーで何でも tools にしてしまう設計の限界を、resources・prompts・sampling という3つの primitive で解きほぐします。壁紙アプリのアセット管理サーバーを題材に、判断基準と実装、クライアント対応の現実的な制約までまとめました。
API & SDK2026-07-05
Opus 4.7 の fast mode 廃止(7/24)で無人ジョブを落とさない — speed パラメータの事前検査と移行
claude-opus-4-7 の fast mode が 2026-07-24 に廃止され、speed: fast がエラーになります。無人パイプラインを静かに壊さないための、使用箇所の機械検出・fail-closed な実行時ガード・4.8 への移行シムを実装コード付きでまとめました。
API & SDK2026-07-03
単価が40%下がっても、タスク単価は下がるとは限らない — Opus 4.8 から Sonnet 5 への移行損益をトークン消費プロファイルで測る
Sonnet 5 の導入価格は Opus 4.8 より約40%安ですが、ツール往復が増えるとタスク単価は逆転し得ます。消費ベクトルの記録・並走ハーネス・損益分岐ターン数の逆算までを動くTypeScriptと実測で示します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →