【2026年完全版】MCP(Model Context Protocol)とは?AIとツール連携の仕組みと実装方法を徹底解説

MCP(Model Context Protocol)とは何か?

MCP(Model Context Protocol)とは、Anthropicが2024年11月に発表したオープンスタンダードで、AIアシスタントと外部ツール・データソースを安全に連携させるためのプロトコルです。「AIのためのUSB-C」とも呼ばれ、AIがデータベース・ファイルシステム・Web APIなどにアクセスするための統一インターフェースを提供します。

2026年現在、MCP対応のツールは急速に増えており、エンジニアにとってMCPを理解することは必須スキルとなっています。

MCPが解決する課題

従来、AIに外部ツールを使わせるには、各ツールごとに独自の連携を実装する必要がありました。例えば:

  • GitHubのIssueをAIに読み込ませる
  • データベースのデータをAIに分析させる
  • Slackのメッセージを要約させる

それぞれの連携を個別に実装するのは非効率で、セキュリティリスクも高まります。MCPはこの問題を解決する「共通言語」を提供します。

MCPのアーキテクチャ

MCPはクライアント・サーバーモデルで動作します:

MCPクライアント

AIアシスタント(Claude、GPT-4、Gemini等)がクライアントとして動作します。ユーザーからの指示を受け、MCPサーバーにリクエストを送ります。

MCPサーバー

外部ツールやデータソースへのアクセスを提供するサーバーです。主に以下の3種類の機能を提供します:

  • Resources(リソース):ファイル・データベース・APIからのデータ読み込み
  • Tools(ツール):外部サービスの操作(ファイル作成、メール送信等)
  • Prompts(プロンプト):再利用可能なプロンプトテンプレート

主要なMCPサーバー一覧

2026年現在、多数のMCPサーバーが公開されています。代表的なものを紹介します:

MCPサーバー機能用途
GitHub MCPリポジトリ・PR・Issue操作開発ワークフロー自動化
PostgreSQL MCPSQLクエリの実行・スキーマ参照データ分析・DB管理
Slack MCPメッセージ送受信・チャンネル管理コミュニケーション自動化
Google Drive MCPドキュメント・スプレッドシート操作ドキュメント管理
Brave Search MCPWeb検索情報収集・リサーチ
Filesystem MCPローカルファイル操作ファイル管理・コード生成

MCPの実装方法:Pythonで自作する

独自のMCPサーバーを作成することも可能です。以下はPythonでの基本的な実装例です:

from mcp.server import Server
from mcp.server.models import InitializationOptions
from mcp.types import Resource, Tool, TextContent
import mcp.server.stdio

# MCPサーバーの作成
server = Server("my-mcp-server")

@server.list_resources()
async def list_resources():
    return [
        Resource(
            uri="data://products",
            name="商品一覧",
            description="商品データベースの一覧",
        )
    ]

@server.read_resource()
async def read_resource(uri: str):
    if uri == "data://products":
        return "商品1, 商品2, 商品3"  # 実際はDBから取得

@server.list_tools()
async def list_tools():
    return [
        Tool(
            name="search_products",
            description="商品を検索する",
            inputSchema={
                "type": "object",
                "properties": {
                    "keyword": {"type": "string", "description": "検索キーワード"}
                },
                "required": ["keyword"]
            }
        )
    ]

@server.call_tool()
async def call_tool(name: str, arguments: dict):
    if name == "search_products":
        keyword = arguments["keyword"]
        # 実際の検索ロジック
        results = [f"{keyword}に関連する商品"]
        return [TextContent(type="text", text=str(results))]

# サーバー起動
async def main():
    async with mcp.server.stdio.stdio_server() as (read, write):
        await server.run(read, write, InitializationOptions())

if __name__ == "__main__":
    import asyncio
    asyncio.run(main())

ClaudeでMCPを使う設定方法

Claude Desktopでの設定

Claude Desktopアプリでは、claude_desktop_config.jsonにMCPサーバーの設定を追加します:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/your-username/Documents"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
      }
    }
  }
}

MCPのセキュリティ考慮事項

MCPを使う際は以下のセキュリティポイントに注意が必要です:

  • 最小権限の原則:MCPサーバーに必要最低限の権限のみを付与する
  • 入力バリデーション:AIからの入力を適切に検証する
  • 認証情報の管理:APIキーや認証情報は環境変数で管理する
  • アクセスログ:MCPサーバーへのアクセスをログに記録する

MCPの今後の展望

MCPは2025年から2026年にかけて急速に普及し、AI開発のデファクトスタンダードになりつつあります。主要なAIプラットフォーム(OpenAI、Google、Microsoft)もMCPサポートを表明しており、AIエージェントの「共通言語」として定着することが期待されます。

まとめ

MCPはAIと外部ツールを安全・効率的に連携させる革命的なプロトコルです。エンジニアとして、MCPの概念を理解し、自社システムへの適用を検討することで、AIを活用した業務効率化をより深く推進できます。

まずはClaude DesktopにFilesystem MCPを設定して、「AIがローカルファイルを読み書きできる」体験から始めてみましょう。

投稿者 kasata

IT企業でエンジニアとして勤務後、テクノロジー情報メディア「Tech Athletes(テック・アスリート)」を運営。プログラミング、クラウドインフラ(AWS/GCP/Azure)、AI活用、Webサービス開発を専門とする。エンジニア・ビジネスパーソン向けに、実際に使ってみた経験をもとに信頼できる技術情報を発信中。資格:AWS認定ソリューションアーキテクト、Python 3 エンジニア認定試験合格。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です