この記事の内容
実際に
AIに おける MCPとは? 知りたかった ことを すべて 解説
MCPとは?
MCPは
MCPは

MCP仕様では、
MCPクライアントは誰が作成するのですか?
通常、
MCPホストとも
Claude Desktop
Cursor
Qodo AI
これらの
MCPサーバーはどこで見つけられますか?
Anthropicは、@modelcontextprotocol/serversリポジトリでは、
セキュリティに関する免責事項:
非公式かつ監査されていないMCPサーバーのコードには、マルウェアやサプライチェーンセキュリティ上の懸念、安全でないコーディング慣行が含まれている可能性があり、インフラストラクチャやAIアプリケーションに影響を及ぼすおそれがあるため、十分に注意して扱ってください。
独自の@modelcontextprotocol/sdkなどの
以下は、
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
// Create an MCP server
const server = new McpServer({
name: "Demo",
version: "1.0.0"
});
// Add an addition tool
server.tool("add",
{ a: z.number(), b: z.number() },
async ({ a, b }) => ({
content: [{ type: "text", text: String(a + b) }]
})
);MCPの導入では、どのようなセキュリティ上の点に注意すべきですか?
以下は、
アクセス制御 - MCPサーバーで
MCPリソースを 公開する 場合、 AI搭載アプリケーションを 通じて LLMを 操作し、 MCPリソースから 公開された データに アクセスして 収集する ユーザーと、 その 権限を どのように 区別しますか? セキュアコーディング - MCPサーバーも
ソフトウェアであり、 他の アプリケーションの 開発と 同様に、 安全でない 方法で 実装される 可能性が あります。 開発者は、 パストラバーサルや コードインジェクションを 防ぐ ためのセキュアコーディングの 規則に 従う 必要が あります。 たとえば、 MCPサーバーが ファイル読み取りツールを 公開していて、 読み取り対象を 親ディレクトリ内に 制限する 必要が ある 場合、 典型的な ../パストラバーサル攻撃に 対して、 コードが 誤って 脆弱に ならないように するには どうすれば よいでしょうか?
MCPサーバーとクライアントはどのように通信しますか?
データ交換形式には
MCPサーバーと
システムプロセスの
標準入出力 - ローカルで 実行できる MCPサーバーを 実現する ための 通信チャネルです。 セキュリティや プライバシーの 懸念に 対応できる ほか、 レイテンシを 抑えられるなどの メリットが あります。 この チャネルでは、 システムプロセス ( npx <mcp-server>など)を起動します。 プロセスの 実行中は、 stdout、stdio、stderrを介して データや コマンドが やり取りされます。 Server-Sent Events
(SSE)を 使った HTTP通信 - 主に、 AI搭載アプリケーションを 拡張する リモート配置の MCPサーバーとの 通信に 使用します。
MCPサーバーはデータを提供できますか?
はい。
MCPサーバーは、
MCPリソース - リソースとは、
LLMが 利用できる さまざまな データソースです。 たとえば、 MCPサーバーは ファイルの 内容や ディレクトリ内の ファイル一覧を、 LLM向けの データリソースと して 公開できます。 MCPリソースは、 LLMの データソースを さらに 強化、 拡張する RAGの 一種と 考えることができます。 MCPプロンプト - AI搭載アプリケーションの
ユーザーは、 利用可能な すべての 機能を 把握しているとは 限りません。 その ため、 MCPサーバーは、 意味に 基づいて MCPクライアントから エンドユーザーに 提示できる テキストプロンプトの 一覧を 公開できます。 ユーザーは それらの プロンプトを 直接 使って、 特定の アクションを 実行したり、 データを 収集したりできます。 MCPツール - MCPサーバーの
用途と して 最も 一般的なのが、 LLMに よる アクションの 実行です。 MCP以前の LLMは、 テキストを 生成できても ウェブ検索は できず、 アクションを 実行する 手段が ありませんでした。 MCP (より 正確には、 その 先駆けと なった OpenAIの関数 呼び出し)の 登場で 状況が 変わりました。 MCPサーバーは、 ロボットの 手を 動かしたり、 ブラウザーの 検索ボックスに 文字を 入力したりする 一連の アクションを 実装し、 その 機能を LLMに 公開できます。 LLMは その アクションを 実行できます。
MCPサーバーとクライアントの通信をデバッグするにはどうすればよいですか?
HTTPトランスポートで
Claudeは、
MCP Inspector - MCP Inspectorは、
MCPクライアントと MCPサーバー間の 通信を 傍受する 専用の コマンドラインツールです。 通信チャネルの 情報を 確認、 デバッグ、 追跡し、 情報や 分析結果を 取得できます。 npmレジストリで 入手できる JavaScript版の MCP Inspectorの 使用例:
npx @modelcontextprotocol/inspector <command> <arg1> <arg2>注:Pythonで
ログ機能 - ローカルの
ログファイルシステムや ネットワークベースの リモートログサービスなど、 専用の ログ機能を 使って 情報を 収集する ことを おすすめします。 HTTPベースと STDIOベースの どちらの MCPサーバーにも 利用できます。 特に、 ファイルへの ログ記録は、 STDIOで 通信する MCPサーバーに とって 使いやすく、 実用的な 方法です。
MCPはOpenAIのツールとどう違うのですか?
ツールは、
MCPはGraphQLに似ていますか?
MCPが
MCPは、
AIを
AIを 活用した 開発を 安全に 進める ための ベストプラクティス
AIを