Model Context Protocol(MCP)モデルコンテキストプロトコル。Anthropic が 2024 年11 月25 日に公開され、最近とても話題にはなっています。とはいっても具体的にどういうこと?という人も多いのではないかと思います。詳しく説明するとややこしくなるのでビジネスシーンにおける、ここまで理解しとけば会話はできるし、把握できる。という狭義というよりかは広域的な概念的にとらえることができる解説が少なかったのでそこにフォーカスし解説をしていきたいと思います。

(MCP)モデルコンテキストプロトコルとは?

まずMCPとはざっくり「接続のための通信規格」です。APIとかそういった接続方法的にとらえていただければいいのかなと思います。現実の物に例えるならUSB-AとかUSB-Cとかそのものの規格です。なのでMCPというなにかがあるわけではありません。話し方のルール的な感じです。

そして、そのMCPという規格を使うにはMCPホストMCPクライアントMCPサーバー必要です。
MCPホストはMCPを使って操作する側です。具体的にはCursor、Windsurf、Clineなどの操作側を指します。つまり生成AIを使うことのできるサービス自体です。
MCPクライアントとは何かというとMCPサーバーへの取次役です。ただMCPホストに内包されているので意識することはほとんどありません。
そしてもう一個MCPサーバーがなにか操作したい先との間に入る変換器やコネクタのようなものだと思ってください。

例えばSlackを操作したいとします。そうなると

Slack →(Web API)→ MCPサーバー →(MCPクライアント)→ MCPホスト → 人

つまり、MCPサーバーとはAPIなどの規格をもう一度書き直すというか包む(ラップ)することでMCPクライアントつまりMCPホストを通じて生成AIに使いやすくさせるためのものととらえてもらえれば。もちろんローカルの物を操作するケースでは変わってきますが、ざっくりとはこのように認識すれば概念的にはつかめると思います。

文脈的にMCPというときもMCPサーバーのこと自体を指すことが多いかなという感じです。ただ本来はMCPという規格自体ではあるということです。MCPホストを指すときはMCPホストやそのサービス自体を名前具体的にいいますので。

MCP接続には主に2種類。

ではMCPが規格でMCPサーバーを作ることによって規格統一を図るということがわかりました。ではどんなものをMCP形式に変換するかというとざっくり大きくこの二つです。

①APIを変換するオンライン利用
各WEBサービスではWeb APIによる提供がされています。Slackだったりとか。そのAPIの形式をMCPに書き換えます。このAPIを操作するときはこうしてという感じに。

②ローカルものを操作するようなケース
それと対をなすのが、例えばローカル上のDBを操作したりするケースです。この場合だとAPIがないケースがあります。そこにMCP規格で操作方法をMCP形式でまとめることで操作をできるようにします。

現状としてはこの二つを変換することが多いです。それを図としてまとめて、よく説明で使われるのは以下の画像です。

参考元
https://norahsakal.com/blog/mcp-vs-api-model-context-protocol-explained

このようにslackやGmailやGoogleカレンダーのようなWEB APIを使うものとローカルにあるDBとかと同じ規格にしてそれを操作することで4つを一個にまとめた。みたいなかんじです。そしてそれをCursorWindsurfClaude desktopなどで操作するという感じです。

なので究極行ってしまえば、SlackもAPIありますし、CLIで操作できるサービスも多々あるのでそれが使えるのであれば従来どおり Web API や CLI で事足りるケースも多いと思います別に今までもできてましたしつかってましたので。
セキュリティ的にも認証的な要素とかそっちの方がいい場合もおおいので。

逆に言うと事前にMCPを作っておくことで、あなた(AI)はこの範囲なら自由に操作していいよ。と定義するようなものです。

ただし、プログラムに組み込むのであれば正確性をともなうので事前にAPIなどを使いプログラムを規定しそれを使わせるようにした方が確実にいいです。
開発途中など、なんどもいろいろな形式で使うけど一回一回組むのはめんどくさいというときに事前に準備しておくことで楽。みたいな感じが今よく使われる主流です。

そして統一規格にすることでLLMの場合すべてのAPIの仕様を完全把握し正確に使うというのが不得意なので、そこを事前にまとめてわかりやすくしとこうね。そうすればLLM君が勝手に使えて楽だよね。みたいな感じです。

実際にGoogleスライド MCPサーバーを作ってみた。

今回Googleスライドを操作するMCPサーバーをつくりました。
つくりましたが・・・実用的かといわれるといらないかもしれません(笑)単なるロマンです。
今ならgensparkのAIスライドを使ったり既成のサービスの方が俄然精度は高いでしょう。

今回の作成で必要だった知識は、

・ClineやWindsurfなどの操作知識
・GCPのAPI(Google Slides APIとGoogle Drive API)を使うのでそのための設定の仕方

です。MCPサーバー自体の作成自体は正直非常に簡単で、動かすだけなら

MCP(モデルコンテキストプロトコル)サーバーを作りたいです。googleスライドのMCPサーバーです。 Googleスライドのディスカバリドキュメントは以下の通りです。

Google Slides API
https://developers.google.com/workspace/slides/api/reference/rest?hl=ja

ぐらいを送信するだけで、とりあえずうごくものは簡単に出来上がります。
もちろんすべて完璧にしようとするとプログラムの構造やディレクトリも最適化しないとファイルが特大になったりするので最適化するためのプログラム知識はいるでしょう。

実際、今回のGoogle Slides MCPも基本Vibe Coding(バイブコーディング)で、部分的にちょちょっと、という感じです。

ディスカバリドキュメントとは
REST API を記述して使用するための機械可読仕様のドキュメントです。つまりAIとか機械が読みやすいドキュメントってことです。AI時代にありがたいですね。これがあったのでコピペでVibeCodingですみました。
https://slides.googleapis.com/$discovery/rest?version=v1

開くとこのような感じで機械仕様に記載があります。これをそのまま上記プロンプトと一緒にClineになげました。ただそれだけです。

これでほぼ完成です。この後も最後の調整はwindsurf何回か繰り返し最初は9つのツールしか使えなかったものを49個まで増やしてみました。49個なのはWindsurfの利用可能ツール数上限が49だったからです。50のはずなのですが50にしたらエラーでたので49にしたらいけました。

設定する。

Windsurfからいきます。自分はgithubフォルダにMCPサーバー自体のフォルダを置いてたのでそれを使うようにmcp-configを記載します。Clineの場合も同等です。

Windsurfであればmcp_config.jsonに以下を記載してください。Windowsとかだと以下に近しいパスになると思います。なお「/」は「\」バックスラッシュに変えないとエラーが出る可能性があります。

{
  "mcpServers": {
    "googleslides": {
      "autoApprove": [],
      "disabled": false,
      "timeout": 60,
      "command": "node",
      "args": [
        "C:/Users/ユーザー名/Documents/GitHub/googleslides-msp/build/index.js"
      ],
      "transportType": "stdio"
    }
  }
}

みごと49ツール認識。動かしてみる。

動いていますが、単にテキスト並べているだけなので微妙です。ここから発展されるのであれば、既存のテンプレートを用意し、画像はgemini APIなどを使うMCPサーバーを作りそれで作成URL取得して画像も自動挿入。スクショも取れるのでそれを自動フィードバックやplaywriteなどのツールでスクショとりそれを閲覧させるような仕組みまでもちこめれば自動で改善しながら進むこともできるでしょうが、ロマン過ぎてここらで止めておきます。

まとめ

つまりざっくりとは、MCPとはLLMが理解しやすい形。そしていろいろな形式をMCP 形式へ変換・中継する MCP サーバーを用意・作成し、生成AIがMCPクライアントを使いMCPサーバーと連絡を取りながら通信するということです。

MCPはある意味柔軟性が高いため生成AIとの相性がいいのですが、なんでもかんでも作れてしまうという意味ではもしかしたら統治利かなくなる可能性もあります。
利便性とセキュリティ性とのバランスを取りながら利用していきたいところです。

この記事を書いた人

スムーズロゴ
enterprise-smooz

資料
ダウンロード

マスタデータのメンテナンスに関わる機能をまとめたSaaS「SMOOZ
SMOOZはリレーショナルデータベースの課題を解決するサービスです。
オンラインデモで気軽に試すことが可能です。