ooligo
mcp-server

Claude向けIronclad MCPサーバー

Difficulty
上級
Setup time
120min
For
legal-ops · in-house-counsel · contract-manager · legal-tech-engineer
Legal Ops

Stack

IroncladをClaudeへのツールサーフェスとして公開するModel Context Protocol(MCP)サーバーです。弁護士や法務オペレーションエンジニアは、Claude会話からIroncladのUIではなく、ワークフローの検索、実行済み契約リポジトリの検索、特定の条項タイプの取得、ワークフローのメタデータのサマリー作成、レコードへの注釈付けを依頼できます。スキャフォールドは apps/web/public/artifacts/mcp-server-ironclad-legal/ にあり、設計上、読み取り中心です。アクティブなワークフロー内のドラフトは通常、特権的な作業成果物であるため、サーバーはデフォルトでドキュメントのボディを切り詰め、全文を取得するには明示的な2回目のツールコールが必要です。

使用すべきタイミング

社内チームがすでにIroncladを使用しており、週に数回IroncladのUIをクリックして弁護士が実行する3つ以上の定期的なクエリを名指しできる場合に、このサーバーを使用してください。典型的な例:「$500K以上のアクティブなMSAをすべてリストして」「直近20件のクローズ済みディールの免責条項を抽出して」「相手方の返答を5営業日以上待っているワークフローを表示して」。これらのクエリは機械的なものです:契約タイプの特定、プロパティによるフィルタリング、メタデータフィールドの返却。これはClaude ツール会話に圧縮しやすい作業の形です。

経済的な論拠:1週間に200件の同様のクエリを実行するStage 4 Optimizedの法務オペレーションチームが、クエリごとにエンドツーエンドで約4分(Ironcladを開く、検索を実行する、フィルタリングする、結果をコピーする、案件メモに貼り付ける)を費やすと、週約13時間のUIナビゲーションになります。Claude でのターンごとに約30秒に圧縮すると、2時間未満になります。残りの時間は実質的なレビュー作業に戻ります——これはチームの限界的な時間が実際に不足している場所です。

使用すべきでないタイミング

これらの定期的なクエリのボリュームが週約20件未満の場合はスキップしてください——セットアップコスト(特権姿勢の法的レビュー、ベアラートークンの影響範囲のセキュリティレビュー、サンドボックスから本番への検証サイクル)はそのボリュームでは回収できません。IroncladのUIをクリックしてください。ボリュームが増えたら再検討してください。

テナントがスキャフォールドの想定されるベースパス(https://ironcladapp.com/public/api/v1/)に対して検証されていないティアまたはリージョンにある場合もスキップしてください。スキャフォールドはランタイムテストされていません。未確認のベースURLに対して実行すると、Claudeの会話内で「データが欠落している」と偽る404が返ります。これはMCP媒介の法務ツールの信頼を損なう正確な失敗モードです。

案件管理ポリシーがドラフト、赤入れ、監査ログ、コメントを含むすべてのワークフローコンテンツを例外なく特権として扱う場合もスキップしてください。サーバーのデフォルトのトランケーション姿勢は一般的なケースを処理しますが、厳格な特権体制は展開(読み取り専用を含む)の前に追加の特権タグ強制レイヤー(バンドルのTODOリストの5番目)が必要です。

最後に、契約データへのClaude アクセスをカバーする法務チームのAIポリシーがない場合もスキップしてください。まずポリシーを立ち上げ、それからこのサーバーを導入してください。

セットアップ

セットアップの詳細は apps/web/public/artifacts/mcp-server-ironclad-legal/README.md に文書化されています。概要:

  1. バンドルをプライベートリポジトリにクローンします。バンドルの仮想環境内で pip install -e . を実行します。
  2. 管理コンソールでIronclad APIトークンをプロビジョニングします(Admin → API Keys → Create)。ワークフロー、レコード、ドキュメントへの読み取りスコープで設定します。add_comment を使用する場合のみコメント書き込みスコープを追加します。基礎となるサービスアカウントロールを絞って設定してください——ベアラートークンはそのロールが見えるすべてを閲覧できます。
  3. 環境変数を設定します:IRONCLAD_API_TOKENIRONCLAD_TRUNCATE_AT(サマリーレスポンスのドキュメントボディのデフォルト4000文字)、IRONCLAD_DEFAULT_WORKFLOW_TYPES(例:msa,nda,sow,dpa)。
  4. READMEのJSONスニペットを使ってClaude Desktopに登録します。
  5. 既知のワークフローIDのサマリー作成をClaudeに依頼してサニティチェックし、レスポンスがボディフィールドに _truncated_at マーカーが付いたメタデータのみであることを確認してから、完全なドキュメントボディを依頼して明示的な get_document コールの後にのみ届くことを確認します。

2ステップの取得が重要です——ステップ5が最初のコールで完全なドキュメントボディをインラインで返す場合、トランケーションガードが誤って設定されており、それを接続したエンジニア以外の誰にもサーバーを公開する前に修正する必要があります。

公開される内容

サーバーは9つのツールを特権モデルでグループ化して登録します:

  • オブジェクト読み取り(読み取り専用): get_workflowget_recordget_document。各ツールはリクエストされたオブジェクトのメタデータを返します。get_document のみが明示的に呼び出された場合に完全なボディテキストを返します。
  • 検索(読み取り専用): search_records(実行済み契約リポジトリに対する全文検索)、list_workflows(ステータスとタイプによるフィルタリング)。
  • 法務ヘルパー(読み取り専用): clauses_by_type はワークフローのドキュメントから特定のタイプ(例:indemnificationliability_captermination)の抽出された条項を返します。expiring_contracts はウィンドウ内で更新または失効に近づいているレコードを返します。
  • 監査クラス(デフォルトのトランケーション): summarize_workflow はメタデータのみのサマリーとドキュメントIDとタイトルを返します。サマリー内のドキュメントボディは IRONCLAD_TRUNCATE_AT 文字で切り詰められ、_truncated_at マーカーが付きます。
  • 軽量書き込み(特権): add_comment はレコードにコメントを追加します。意図的な唯一の書き込みパスです。Ironclad内のコメントはそれ自体が証拠開示対象です——Ironclad UIで直接書かないようなことは何も書かないでください。

トランケーションヘルパーとメタデータのみの監査ロガーを含むディスパッチロジックは apps/web/public/artifacts/mcp-server-ironclad-legal/src/ironclad_legal_mcp/server.py にあります。

特権モデル

スキャフォールドに対して各々ガードを持つ3つの具体的な姿勢の選択:

  1. 読み取り中心。 delete_* なし、ドラフト編集なし、ワークフローステージ遷移なし、署名者変更なし。唯一の書き込みパスは add_comment です。ガード:server.py のディスパッチは単純にコメント以外の書き込みツールを登録しません。状態変更ツールの追加には特権レビューを伴う明示的なコード変更が必要です。
  2. デフォルトのトランケーション。 summarize_workflow はドキュメントボディを IRONCLAD_TRUNCATE_AT(デフォルト4000文字)に切り詰め、ユーザーが明示的に尋ねた場合にClaudeがフォローアップの get_document コールを発行すべきことを知るよう _truncated_at でレスポンスをタグします。ガード:server.pytruncate_body() ヘルパーが単一のチョークポイントです。これを広げるとすべてのコールサイトの特権姿勢が一度に変わります。
  3. 検索クエリのメタデータは永続化されない。 監査ロガーはタイムスタンプ、ユーザー、ツール名、結果数を記録します——クエリ文字列は記録しません。ガード:log_invocation() ヘルパーには query パラメーターがありません。追加には特権ポリシーに照らしてレビューされるコード変更が必要です。

これらの3つの選択を組み合わせることで、Claudeは契約リポジトリをナビゲートし、弁護士が判断するために必要なメタデータを表面化し、コメントでアクションを記録できますが、特権的な作業成果物を意図せず流出させたり、チームのレビュー優先事項の証拠開示可能な記録を作成したりすることはできません。特権姿勢が製品であり、ツールはサーフェスです。

コストの現実

3つのコスト項目、すべて実際のもの:

  • Claudeサブスクリプション。 MCPを有効にしたClaude DesktopまたはClaude Code。ほとんどの社内法務チームのセットアップにはPro($20/ユーザー/月)またはTeam($25〜30/ユーザー/月)が対応します。ヘビーユーザーはMaxを正当化する可能性があります。
  • サーバーホスティング。 セルフホストのPythonプロセス。開発用に弁護士ごとにローカルで実行するか、共有使用のためにVPN背後の小さな内部VM(1日100コール未満のボリュームには1 vCPU / 1 GB RAMで十分)で実行します。ハイパースケーラーで月$5〜20。内部Kubernetesキャパシティがあれば無料。
  • Ironclad APIクォータ。 Ironcladはテナントごとにレート制限します。週200件のクエリを実行するチームはデフォルトクォータ内に十分収まりますが、夜間にリポジトリ全体をスキャンする自動化を構築するチームはすぐに制限に達します。バンドルのREADMEのTODOリストは指数バックオフリトライを本番前のタスクとしてフラグしています——一度クォータを使い果たすとその理由がわかります。

予算に含まれていないコスト項目は法的レビュー時間です。本番展開の前に社内弁護士の2〜4時間の特権姿勢のレビューと、Ironcladがサーフェスを変えるAPIを出荷するたびに四半期ごとに1〜2時間の再レビューを計画してください。

成功の定義

3つの数値の動きを確認します:

  • クエリごとのUI時間(サンプリングによる測定):チームが週次で実行する5つの定期的なクエリを選び、展開前にIronclad UIで時間を計り、展開後に同じ5つのClaudeでの会話の時間を計り、割り算します。目標:5倍以上。2倍以下ではセットアップコストが回収できていません。
  • 監査ログで観察できるトランケーション発生率:弁護士が summarize_workflow コールの後に明示的な get_document をフォローアップする頻度は?適切な範囲は約20〜50%。70%以上はトランケーション上限が過度に積極的で弁護士がブロックされていることを意味します。10%以下は質問に実際に答えていないメタデータを受け入れていることを意味します。
  • 週あたりの追加コメント数。 add_comment は唯一の書き込みパスであり、弁護士がClaudeが表面化したものに基づいて行動したことを示す唯一のシグナルです。展開から2か月後にカウントがフラットまたはゼロの場合、ツールは検索専用の利便性として使用されています。それはそれで構いませんが、特権レビューコストを正当化しません。

代替手段との比較

3つの実際の選択肢、それぞれ異なるトレードオフ:

  • Ironcladのネイティブ機能。 Ironcladは製品内で条項抽出とAIサマリー機能を提供しています。ワークフローがIronclad内に留まり、答えがレコードに属する場合はそれらを選択してください。答えが案件管理メモ、AIポリシーのガードレール、ツールサーフェスの残りに到達するClaude会話に着地する必要がある場合はこのMCPサーバーを選択してください——つまり、Claudeの推論との統合が価値であり、契約検索自体ではない場合。
  • ベンダー法務AI(Harvey、EvenUpなど)。 これらのベンダーは独自のインジェストパイプライン上で事前トレーニングされた法務ドメインモデルを提供しています。特権デフォルトのワークフロー、弁護士グレードの検索評価が必要で、予算がある場合(年間5桁中程度以上)はベンダーを選択してください。モデルの好みがClaudeで、インジェストがIroncladネイティブで、チームがベンダーのシートごとの価格が採算に合わないほど小さい場合はこのMCPサーバーを選択してください。
  • 現状:弁護士がIronclad UIをクリックする。 これが正直なベースラインです。MCPサーバーはクエリボリュームが特権レビューとセットアップコストを償却するのに十分な場合にのみそれに勝ります。弁護士あたり週約20件のクエリ未満では現状が勝ります。

注意点

バンドルのREADMEに完全なリストがあります。ここでは3つの失敗モードを具体的なガードとともに取り上げます:

  • summarize_workflow の意図しないボディ包含による特権漏洩。 ナイーブな実装ではドキュメントボディをインラインにします。ガード:summarize_workflow はすべての body フィールドを truncate_body() を通じてルーティングし、IRONCLAD_TRUNCATE_AT でキャップして _truncated_at でレスポンスをタグします。これを広げるには1つのヘルパーの編集が必要であり、特権レビュアーが監査すべき単一のチョークポイントです。
  • 法的レビュー戦略を明らかにする search_records のクエリログ。 クエリ文字列のログはチームが探しているものを示す証拠開示可能なレコードを作成します——それ自体が特権的なメタデータです。ガード:log_invocation() はツール名と結果数のみを受け入れます。クエリ文字列は決してログに書き込まれません。復元には特権ポリシーに照らしてレビューされるコード変更が必要です。
  • スキャフォールドのOAuth更新の欠如。 スキャフォールドは静的なIroncladベアラートークンを使用しており、弁護士が企業を離れた際に個別に失効させることができません。ガード(オープン):バンドルのTODOリストの2番目はOAuth更新を本番前のタスクとしてフラグしています。実装されるまで、すべての人員変更時にトークンをローテーションし、静的トークンの展開を開発専用の姿勢として扱ってください。

スタック

バックエンドでIroncladのパブリックAPIと通信する公式 mcp SDK、httpxpydantic を使用したセルフホストのPython MCPサーバー。フロントエンドはClaude DesktopまたはCode。オプション:案件管理監査証跡にパイプされた python-json-logger による構造化ログ。送信前にクエリ文字列とドキュメントボディをスクラブしたSentryまたはOpenTelemetryエクスポート。

Files in this artifact

Download all (.zip)