Welcome to Tech Athletes | テック・アスリート   Click to listen highlighted text! Welcome to Tech Athletes | テック・アスリート

【2026年版】MCP(Model Context Protocol)完全入門|AIエージェントを自作する方法を徹底解説

MCP(Model Context Protocol)は、AnthropicがClaudeのために開発したオープンプロトコルで、AIアシスタントと外部ツール・データソースを安全に連携させる規格です。2025年の登場以来、AI開発者の間で急速に普及しており、2026年現在ではOpenAIやGoogleも対応を進めています。本記事ではMCPの基本概念から実装方法まで詳しく解説します。

MCPとは何か?なぜ重要なのか

MCP(Model Context Protocol)は、AIモデルが外部ツール・データベース・APIなどと統一された方法で連携できるようにするプロトコルです。従来はAIとツールの連携方法がバラバラでしたが、MCPにより標準化されました。

MCPが解決する問題

  • 統一インターフェース:異なるAIモデルでも同じMCPサーバーが使える
  • セキュリティ:AIに直接API Keyを渡さずに安全に連携
  • 再利用性:一度作ったMCPサーバーを複数のAIアプリで再利用
  • エコシステム:GitHub・Google Drive・Slack・Notionなど多数の公式MCPサーバーが公開済み

MCPのアーキテクチャを理解する

MCPの構成要素

  • MCP Host:Claude Desktop・Cursor・カスタムAIアプリなど、MCPクライアントを含むAIアプリケーション
  • MCP Client:HostとServerの間でプロトコルを処理するクライアントコンポーネント
  • MCP Server:ファイルシステム・データベース・APIなどのリソースを提供する軽量サーバー

MCPが提供する3つの機能

  • Resources:テキスト・ファイル・データベースレコードなどのデータをAIに提供
  • Tools:AIが呼び出せる関数(APIコール・ファイル操作・計算など)
  • Prompts:再利用可能なプロンプトテンプレート

MCPサーバーの作り方(Python/TypeScript)

Python SDKを使ったMCPサーバー作成

まずMCP Python SDKをインストールします。

pip install mcp

シンプルなMCPサーバーの例:

from mcp.server import Server
from mcp.server.models import InitializationOptions
import mcp.server.stdio
import mcp.types as types

app = Server("my-mcp-server")

@app.list_tools()
async def handle_list_tools() -> list[types.Tool]:
    return [
        types.Tool(
            name="get_weather",
            description="指定した都市の天気情報を取得します",
            inputSchema={
                "type": "object",
                "properties": {
                    "city": {
                        "type": "string",
                        "description": "都市名"
                    }
                },
                "required": ["city"]
            }
        )
    ]

@app.call_tool()
async def handle_call_tool(name: str, arguments: dict) -> list[types.TextContent]:
    if name == "get_weather":
        city = arguments.get("city")
        # 実際のAPI呼び出し処理をここに実装
        return [types.TextContent(type="text", text=f"{city}の天気: 晴れ、気温25℃")]

async def main():
    async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
        await app.run(read_stream, write_stream, InitializationOptions())

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

Claude Desktopにカスタムツールを追加する方法

作成したMCPサーバーをClaude Desktopで使うには、設定ファイルに追加します。

// ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "my-weather-server": {
      "command": "python",
      "args": ["/path/to/your/server.py"]
    }
  }
}

人気のMCPサーバー一覧

GitHubのMCP公式リポジトリには多数のリファレンス実装が公開されています:

MCPサーバー機能用途
Filesystemローカルファイル操作ファイル読み書き・検索
GitHubGitHub API連携リポジトリ・Issue管理
Google DriveGoogleドライブ操作ドキュメント・スプレッドシート
SlackSlack連携メッセージ送受信・チャンネル操作
SQLiteSQLiteデータベースデータの読み書き・クエリ
Puppeteerブラウザ自動化Webスクレイピング・スクリーンショット

MCPを使ったAIエージェント開発のユースケース

  • 社内情報検索エージェント:社内ドキュメント・Slack・Confluenceを横断検索
  • コードレビューボット:GitHubのPRを自動でレビュー・コメント
  • データ分析エージェント:DBのデータをSQLで取得して分析・可視化
  • カスタマーサポートBot:問い合わせ対応・チケット管理を自動化

まとめ

MCPは、AIと外部ツールを標準化された方法で連携させる革命的なプロトコルです。Python SDKやTypeScript SDKを使えば、エンジニアであれば比較的簡単に独自のMCPサーバーを構築できます。

2026年現在、MCPのエコシステムは急速に拡大しており、AIエージェント開発において必須の知識となっています。本記事を参考に、ぜひカスタムAIエージェントの開発に挑戦してみてください。

投稿者 kasata

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

コメントを残す

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

Click to listen highlighted text!