MCP サーバーとは、社内システムや SaaS の機能を、AI エージェントから呼び出せるようにする窓口のことです。 MCP(Model Context Protocol)は AI と外部のシステムをつなぐ公開の仕様で、MCP サーバーは「使える操作の一覧」と「それぞれの説明・引数の形」を AI に渡します。AI は利用者の依頼を読み、どの操作をどの引数で呼ぶかを自分で決めます。ここでは仕組みと、自社のシステムに MCP サーバーを作るときの手順・権限の設計を整理します。
MCP の仕組み
MCP は Anthropic が 2024 年 11 月に公開し、仕様は modelcontextprotocol.io で版ごとに公開されています。登場するのは次の 3 つです。
- ホスト:利用者が操作する AI のアプリ(Claude、Claude Code、Cursor など)
- クライアント:ホストの中で MCP サーバーと通信する部分
- サーバー:自社のシステムの機能を AI に渡す側。この記事で作るもの
サーバーが AI に渡せるものは、仕様では主に 3 種類です。
| 種類 | 中身 | 例 |
|---|---|---|
| tools | AI が呼び出す操作 | 予約の一覧を取る、請求書を発行する |
| resources | AI や利用者が読む情報 | 規程の本文、製品の設定 |
| prompts | 利用者が選んで使う定型の指示 | 「月次の報告を作る」の手順 |
業務で最も使うのは tools です。操作ごとに名前、何をするかの説明、引数の形(JSON Schema)を定義します。AI は説明を読んで使い分けるため、説明の書き方が、そのまま AI の使い方の正確さになります。
通信の方式は 2 つです。手元の PC で AI ツールがサーバーを子プロセスとして起動する stdio と、サーバーを URL で公開する Streamable HTTP です。社内の複数の人や、claude.ai のようなクラウドの AI から使うなら HTTP の形にします。HTTP で公開するときの認可は、仕様で OAuth 2.1 にもとづく形が定められています。
社内システムに MCP サーバーを作る手順
- AI に任せたい仕事を決める:「先月の未入金の請求を一覧にする」「空いている予約枠を探す」など、人が画面で行っている作業から選びます。最初は読み取りだけの仕事にすると安全です
- 操作を tools に分ける:画面の 1 つのボタンではなく、仕事の単位で分けます。1 つの tool に多くの引数を持たせるより、目的ごとに分けたほうが AI が迷いません
- 説明と引数を書く:tool の説明には、何をするか、いつ使うか、返す内容、使ってはいけない場面を書きます。引数には型と取り得る値(列挙)を付けます
- 既存の API につなぐ:MCP サーバーは既存の API を呼ぶ薄い層として作り、業務の判定や入力チェックは API 側に残します。画面と AI で同じ決まりが効くようにするためです
- 認証をつなぐ:HTTP で公開する場合は OAuth で利用者を認証し、その人の権限で API を呼びます。共通の強い権限のキーで動かす作りは避けます
- 試して説明を直す:実際の AI から、想定どおりの依頼と、あいまいな依頼の両方を試します。違う tool が呼ばれたら、説明を直します
権限と記録の設計
AI が操作するといっても、責任を持つのは操作を依頼した人です。権限は次のように設計します。
- 利用者本人の権限で動かす:管理画面で編集者が見るだけの人は、AI からも見るだけにします。MCP サーバーのために別の権限の体系を作りません
- 書き込みは段階的に:まず読み取りの tools だけを公開します。更新・削除は、確認のための引数(例:確認済みであることを示す値)を付けないと実行しない、下書きまでにして公開は管理画面の承認を通す、といった止め所を置きます
- 影響の大きい操作は出さない:一括削除、権限の変更、外部への送信の宛先の変更などは、MCP では提供しない選択肢もあります
- 記録を残す:いつ、誰が、どの tool を、どの引数で呼び、何が返ったかを残します。AI 経由の操作であることが分かる印も付けます
- 返す情報を絞る:tool の結果は AI のやり取りの中に入ります。個人情報や秘密の値は、仕事に要る項目だけを返します
公開の前に確かめること
| 観点 | 確かめること |
|---|---|
| 説明 | tool の名前と説明だけで、何をするかが人にも分かるか |
| 引数 | 型・必須・列挙が定義され、誤った値をサーバー側で拒否するか |
| 権限 | 管理画面と同じ役割で、見る・変えるが分かれているか |
| 確認 | 更新・削除に止め所があるか |
| 記録 | AI 経由の操作が監査できるか |
| 結果 | 返す項目が必要な分だけか。件数の多い一覧はページを分けて返すか |
| 失敗 | エラーの文が、AI が次に何をすればよいか分かる内容か |
MCP に対応した当社の製品
当社の製品の多くは MCP に対応しています。Webhook Admin は AI エージェントから送信先の登録や失敗した送信の再送を、DocRelay はテンプレートの作成から帳票の発行までを、規程ログ は現行の規程と過去の版を読んだうえでの改定案の下書きを扱えます。下書きの公開は管理画面の承認を通す作りです。社内システムに MCP サーバーを足す開発は、AI エージェント開発のページでご紹介しています。
出典
- Anthropic: Introducing the Model Context Protocol
- Model Context Protocol: Specification
- Model Context Protocol: Transports
- Model Context Protocol: Authorization
よくある質問
MCP サーバーと API の違いは何ですか?
API はプログラムが呼び出す窓口で、MCP サーバーは AI エージェントが呼び出す窓口です。MCP サーバーは、使える操作の一覧と、それぞれの説明・引数の形を AI に渡します。AI はその説明を読んで、どの操作をどの引数で呼ぶかを決めます。中身は既存の API を呼び出す薄い層として作ることが多くあります。
MCP サーバーは社内のネットワークの中に置く必要がありますか?
用途で決まります。手元の PC の AI ツールから使うだけなら、PC 上で動かす stdio の形で足ります。複数の社員や claude.ai などのクラウドの AI から使う場合は、HTTP で公開し、OAuth などで利用者を認証します。社内のネットワークの中だけに置く場合は、クラウドの AI からは届かない点に注意します。
AI に操作を任せて、誤って更新・削除されることはありませんか?
起こり得るため、設計で防ぎます。最初は読み取りの操作だけを公開し、更新や削除は確認の手順(確認のための引数や、管理画面での承認)を必須にします。操作は利用者本人の権限で行い、誰がどの操作を呼んだかを記録に残します。