chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

メモ:MCP(Model Context Protocol)を理解する(霧の中)

背景:技術解説関係で、MCPを理解する必要あり。人に教えられまで自分はMCPって全く知りませんでした。そもそもLLM流行りすぎてちょっと引いてた*1。。
結論:半日ぐらい情報収集した程度の理解ですが、、MCPとはLLMに最新データ取得、データ加工、ファイル生成等の手足を付ける仕組みで、接続のためのAPIが標準化されたものと。世の中にはMCPサーバがすでに大量に存在していて、LLM アプリから(MCP Client経由で) MCP サーバに接続することで、自然言語ExcelやWord文章が作れてしまう…LLMアプリはサービス利用者との対話を通じて最適なMCPサーバを選んで接続して処理を行うと理解しました。

自分が理解したMCPアーキテクチャ(合っているかは未確認)

speakerdeck.com
business.ntt-east.co.jp
安かったのでKindle版も買っちまいました。

なんと、、AbletonMCPもあるらしい。自然言語でこんな感じで作ってと言ったら楽曲を作ってくれるらしい。自分が勉強してるテクノ作曲講座はもう不要か!?

MCP(正確にはMCPでつながった先のWebサービス)を活用するには、MCPサーバの機能定義が重要と思えるのだが。。機能定義がボロだったら、LLMから指示の出しようがないというか。。

Required Information for LLM to Interact with an MCP Server
Category	Description
Endpoint Definitions	The full set of HTTP endpoints exposed by the MCP server, including supported methods (e.g., GET, POST, PUT, DELETE) and their respective paths.
Payload Schemas	The expected structure of request bodies, typically defined in JSON. This includes required fields, data types, and optional parameters.
Contextual Semantics	A mapping between natural language intents and API operations. For example, "Play a lo-fi track" might correspond to POST /play with { "genre": "lofi" }.
Authentication Mechanisms	Details on how the LLM should authenticate with the MCP server, such as API keys, OAuth tokens, or session headers.
Session and State Management	Information on how the MCP server handles conversational context, user sessions, and persistent state across multiple API calls.
Error Handling and Response Formats	Specification of how errors are returned (e.g., HTTP status codes, error messages) and how successful responses are structured.

使いたいWebAPIがあるけど、MCPサーバがまだ作られていないなーという場合は、自分で上記config?を定義してMCPサーバを立てる必要があると。

MCPがなくても、LLMに、このサイトにいって、情報を読み取って理解してとか言えばまぁやってくれると思いますが、そういう補助操作なしにコンテキストを取り込める、また、これまではExcelファイルを作りたい時は、Copy&Paste程度でローカルに落とせる程度だったのが、MCPを使えばGitHubにコミットしたり、GoogleDriveに保存したりと、効率の良い生成が可能になる。。。と理解しました。XcodeCloudと接続できたら、「iOSアプリをビルドして」とLLMアプリに言うだけでビルドもしてくれるかも。「審査に出して」と言ったら審査にも出してくれそうだ。さらに、Appleから公開拒否されたら、審査通過するようにソースも書き換えて欲しい。。

MCPをどれだけうまく活用できるか?は対話の文脈とそれに即したMCPサーバの選別、リクエスト送信が重要と理解したのですが、それを行うのはLLMではなく、LLMアプリであると、で、LLMアプリの作り方がボロだったらまた意味不明なアウトプットがなされる。まともなLLMアプリってすでに存在するのかを質問すると、Copilotは以下の回答


だったら、MCPってまたはしゃぎすていないか?? あるいは、もうまともなLLMアプリができている??

文脈からMCPサーバの自動選別できないのだったら、「3番目のMCPサーバを使って、400文字に要約した会議議事録を作成、Word形式でGoogleDriveに保存して」とか明示したらいいのでは? coolではないが。

MCPサーバ一覧をLLMとの会話の前にcontextとして渡しておいて、「会話中にMCPを使えそうならAPI呼び出しを指示してください」と言っておけばいいのでは?(LLMにMCPサーバのマッチングとAPI呼び出しタイミングを任せる案)そんなに簡単なものではない??

LLMアプリは薄皮でよければ自作できると言ってきた(Copilotが)。

CopilotにMCPの課題を質問した

(具体的にどうやったら実現できるのかは理解できていませんが)OAuthをLLMアプリに組み込んでおけば、認証の問題はクリアできそうですが、、そもそも自然言語による会話や、MCPサーバのサービス定義が曖昧で、曖昧なままAPIを呼び出してしまう問題というのはずっと付きまとうような印象が・・

Copilotの言語モデル?をGPT-5に切り替えると、論調がちょっと変わってきた。以下のように、まずまず使えるMCP Clientが存在すると。

とりあえず、AnthropicのCalude Desktopを入れて、LLMとつないでみて、次にMCP サーバと接続して、できることがどう変化するかを確認する。
Download Claude
Ableton MCP Serverを使った作曲、演奏を行う場合、各モジュール(?)の関係性を質問(Claude4)

*1:仕事では使いまくってますが