LLMに独自のデータや専門知識、再利用可能な処理能力を追加する方法として、MCPとスキルの違いを解説する。MCPは外部サービスやリアルタイムデータへ安全かつ標準化された方法で接続する仕組みであり、スキルは特定の手順、プロンプト、スクリプト、参考資料をまとめ、必要な場面でモデルに読み込ませる軽量な仕組みである。それぞれの適性や使い分け、AIエージェント構築において両者を組み合わせる意義を具体例とともに整理する。

LLMに能力を追加するMCPとスキル
LLMに新しい能力を追加したいなら、MCPサーバーとスキルに注目してください。LLMは非常に汎用的で、多くのことを知っていますが、この2つの概念を使えば、さまざまな用途に合わせて独自のデータや特別な情報をLLMへ追加できます。
たとえば、コーディング支援のために追加の情報やデータを与えることもできますし、何らかのAIエージェントを構築する場合にも使えます。それ以外にも、さまざまな用途があります。
ここでは、MCPを選ぶべきなのか、スキルを選ぶべきなのか、それとも両方を使うべきなのかを見ていきます。
まずLLMに戻って考えてみましょう。LLMは本質的には、水晶玉のような予測マシンであり、あらゆる種類の情報を使って学習されています。書籍、雑誌、さらには皆さんがインターネットに投稿したスレッドさえ、どこかのLLMの学習データに含まれているかもしれません。
LLMは、こうした情報とパターン認識を利用して、非常に多くの質問に答えられます。たとえば、Red Hatの歴史は何ですか、と尋ねることもできます。あるいは私たちの場合なら、特定のデータベースをどのように調査すればよいですか、と質問することもできます。
LLMは多くの情報を知っており、皆さんが使っている特定のデータベースの扱い方を知っている可能性もあります。しかし、正しい答えを得るためには、LLMに正しいコンテキストを与える必要があります。
そのコンテキストには、データをどのような形式にしてほしいのかといった追加情報が含まれるかもしれません。また、自分たちのチーム向けにデータベースがどのように設定されているのかという情報もあり得ます。
さらに、何らかのツールを実際に呼び出し、そのデータベースから情報を取得して、その結果をLLMのコンテキストウィンドウへ戻すこともあるでしょう。
プロンプトエンジニアリングからコンテキストエンジニアリングへ
ここで考えてみると、特定の役割とタスクを設定して質問をしている部分は、プロンプトエンジニアリングと呼ばれています。
それ自体は、単にLLMへタスクを与えているだけです。しかし、そこへ追加の情報をすべて加えると、話はさらに面白くなります。
これは単なるプロンプトエンジニアリングではありません。コンテキストエンジニアリングと呼ばれるものです。
つまり、モデルが正しい答えを導き出せるように、適切なコンテキストを与えるということです。必要な情報をすべて提供するわけですが、ここで大きな疑問が生まれます。
AIモデルが正しい答えを出せるように、どうすれば正しいコンテキストを与えられるのでしょうか。そして、ここからどうやってAIエージェントを構築すればよいのでしょうか。
どちらも非常に良い質問です。詳しく見ていきましょう。
MCPが外部データとの接続を標準化する
たとえば、あるエージェントが、現在CRM、つまり顧客関係管理システムに保存されているデータを必要としているとします。
エージェントを構築するときに使うLLMについて考えてみてください。その特定のCRMやサービスのAPI、そのドキュメント、さらにトークンをコピーして貼り付け、顧客の連絡先情報を更新してください、絶対に間違えないでください、とお願いして、あとはうまくいくことを祈る、という方法を取る必要はありません。
代わりにMCP、つまりModel Context Protocolを使うことで、AIモデルがさまざまなデータソースと通信する方法を標準化できます。
MCPは、サービスのAPIを、LLMが扱いやすいシンプルな形式へ抽象化します。さらに、エージェントがそのサービスを呼び出すうえで非常に重要な認証も処理します。
必要に応じて、特定の範囲に限定された専用トークンや、読み取り・書き込み権限などを提供できます。
裏側では、エージェントと連携するMCPサーバーが、IDEやAIアプリケーションなどに追加されます。そしてLLMに対し、サービスから必要な情報を取得するための特定のJSONリクエストを生成するよう指示します。
MCPサーバーは、そのリクエストをPOSTやGETのリクエストへ変換し、実際のサービスを呼び出します。
つまりMCPは、LLMを利用するときやエージェントを構築するときに、LLMと必要なデータソースの間に入る標準化されたレイヤーです。そして、現在存在するほぼすべてのAIツールでサポートされています。
外部データだけでは足りない理由
ただし、MCPは外部データをLLMへ与える方法という問題を解決しましたが、まだ一つ足りないものがあります。
LLMがまだ持っていない可能性のある、特定分野の知識をどうやって与えるのでしょうか。
確かにMCPを使えば、CRMから顧客情報を取得できます。しかし営業チームとしては、毎回まったく同じ方法で処理してほしいかもしれません。
LLMについて少しでも知っているなら、LLMが非決定論的であることは分かるでしょう。そのため、毎回完全に同じ処理をさせるのは非常に難しいのです。
たとえば、営業チームがCRMデータを決まった形式で整形したいとします。そこには顧客の名前、顧客の連絡先情報、そして非常に重要な情報として、その顧客が一番好きなクッキーの種類を含めたいとします。
毎回、何度繰り返しても同じ形式にしてください、と指示できる再現可能な方法を持つこと。これこそ、スキルが非常に重要である理由の基礎となっています。
そしてスキルは、主要なAIツールやモデル全般で利用できます。
スキルとは何か
LLMにいつも任せているタスクを考えてみてください。たとえば、Excel文書を整理する作業があります。
コードのデバッグもそうです。毎回、決まった検証方法を使っているかもしれません。あるいは、コンプライアンスチェックを実行することもあるでしょう。
こうしたさまざまなプロンプトと、その処理に利用しているスクリプトを、スキルとしてまとめることができます。
スキルとは、本質的には少し追加のメタデータを持ったMarkdownファイルであり、それをフォルダの中にまとめたものです。
では、このスキルについて見てみましょう。
スキルにはタイトルの形式、つまりスキルの名前があります。さらに、どのような場面で使うのかという説明があり、その下には実際に使用され、LLMへ渡されるプロンプトそのものが入っています。
特にユニークなのは、必要に応じてスキルをLLMのコンテキストウィンドウへ自動的に読み込めることです。
たとえば、コードデバッガーのスキルがあるなら、コードエラーについて質問したときだけ、それを読み込みます。
また、このフォルダの中には、さまざまな種類のリソースやスクリプトを追加することもできます。
追加のコンテキストや能力が必要なら、それらをスキルへ追加できます。そして、そのモデルに特定の能力を求める質問をしたとき、自動的に読み込まれるようになります。
MCPとスキルはいつ使い分けるべきか
では、どのような場面で一方を選ぶべきなのでしょうか。
AIアプリケーションがリアルタイムデータへアクセスする必要があり、しかも管理された厳格な権限制御の下でアクセスさせたい場合は、MCPを選ぶことになります。
MCPは、エージェントとツールの間をつなぐ統合レイヤーだと考えてください。利用できるのは、そのMCPが提供するツールやリソースを呼び出すことだけです。
たとえば、現在どのVMが稼働していますか、クラスタの状態はどうなっていますか、ある顧客についての情報を教えてください、といった用途でMCPを使います。
しかし問題は、単に再利用可能で独自の能力をAIへ追加したいだけなら、MCPのセットアップと設定はかなり大げさになり得ることです。
そこでスキルが力を発揮します。
スキルは軽量であり、モデルに何かのやり方を教えます。
たとえば、投資データを取得して分析する方法を教えることができます。あるいは、そのタスクを実行するために、スキル内に含まれているスクリプトや例を使わせることもできます。
MCPとスキルを組み合わせる価値
MCPとスキルは、どちらもLLMのコンテキストウィンドウを強化できます。
それによって、AIエージェントを構築したり利用したりするときに、求めている正しい回答や出力を得やすくなります。
重要なのは、どちらもオープンソースであり、現在では多くのAIツールに広く採用されていて、自分のマシン上でローカルに今すぐ使い始められるということです。
今回、MCPとスキルを比較する中で触れなかったことが一つあります。それは、エージェント構築にCLIを使う方法です。
興味があれば、下のコメント欄で教えてください。そうすれば、それについての動画を作ります。
それまでは、今日何かを学べて、アルゴリズムを攻略したいと思ったなら、ぜひ高評価ボタンを思い切り押してください。
そして、MCPサーバーとスキルのどちらを使うほうが好きなのか、下のコメント欄で教えてください。
それでは、次の動画でお会いしましょう。


コメント