0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MCP(Model Context Protocol)完全入門 2026 — AIエージェントとツールを繋ぐ新標準

0
Last updated at Posted at 2026-04-23

MCP(Model Context Protocol)完全入門 2026 — AIエージェントとツールを繋ぐ新標準

2024年末、Anthropicが発表した**MCP(Model Context Protocol)**は、AIエージェント開発の風景を一変させました。「AIのためのUSB-C」とも称されるこのオープン標準は、2026年現在、OpenAI・Google・Microsoftも採用を表明し、エージェントエコシステムの共通基盤になりつつあります。

本記事では、MCPの仕組み・実装方法・主要なMCPサーバー・ユースケースを体系的に解説します。

👉 関連ツールを探すなら → AgDex.ai — 400以上のAIエージェントツールを網羅したディレクトリ


MCPとは何か?

**MCP(Model Context Protocol)**は、LLM(大規模言語モデル)とデータソース・ツールを標準化された方法で接続するためのオープンプロトコルです。

従来の課題:

各アプリが独自実装
LLM → [独自API実装A] → ファイルシステム
LLM → [独自API実装B] → データベース  
LLM → [独自API実装C] → GitHub

MCPによる解決:

標準化されたプロトコル
LLM(ホスト) ←→ MCPクライアント ←→ MCPサーバー ←→ データソース
                  (標準プロトコル)

主要概念

概念 役割
MCP ホスト LLMを実行するアプリ(Claude Desktop、Cursor等)
MCP クライアント ホスト内でサーバーと通信するコンポーネント
MCP サーバー データソースへのアクセスを提供する軽量プログラム
トランスポート 通信方式(stdio / SSE / HTTP)

MCPの3つのプリミティブ

MCPサーバーが提供できる機能は3種類に整理されます:

1. Tools(ツール)

LLMが呼び出せる関数。副作用あり(データ変更・API呼び出し等)。

@mcp.tool()
def create_github_issue(
    title: str,
    body: str,
    repo: str
) -> str:
    """GitHubにIssueを作成する"""
    # 実装
    return f"Issue #{issue_number} を作成しました"

2. Resources(リソース)

LLMが読み取れるデータ。副作用なし(ファイル・DB・APIレスポンス等)。

@mcp.resource("file://{path}")
def read_file(path: str) -> str:
    """ローカルファイルの内容を返す"""
    with open(path) as f:
        return f.read()

3. Prompts(プロンプト)

再利用可能なプロンプトテンプレート。

@mcp.prompt()
def code_review_prompt(code: str, language: str) -> str:
    return f"""
    以下の{language}コードをレビューしてください:
    
    ```{language}
    {code}
    ```
    
    セキュリティ・パフォーマンス・可読性の観点で評価してください。
    """

MCPサーバーの実装:Python SDK入門

pip install mcp

シンプルなMCPサーバー例

from mcp.server import Server
from mcp.server.stdio import stdio_server
import mcp.types as types

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

@app.list_tools()
async def 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 call_tool(name: str, arguments: dict) -> list[types.TextContent]:
    if name == "get_weather":
        city = arguments["city"]
        # 実際にはAPIを呼ぶ
        return [types.TextContent(
            type="text",
            text=f"{city}の天気: 晴れ、気温22°C"
        )]
    raise ValueError(f"Unknown tool: {name}")

async def main():
    async with stdio_server() as (read_stream, write_stream):
        await app.run(read_stream, write_stream, app.create_initialization_options())

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

Claude Desktopへの設定

// ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
// %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
  "mcpServers": {
    "my-server": {
      "command": "python",
      "args": ["/path/to/my_server.py"]
    },
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/username/Documents"]
    }
  }
}

主要なMCPサーバー一覧

公式サーバー(Anthropic提供)

サーバー 機能
@modelcontextprotocol/server-filesystem ローカルファイルの読み書き
@modelcontextprotocol/server-github GitHub操作(PR/Issue/コード)
@modelcontextprotocol/server-postgres PostgreSQLクエリ実行
@modelcontextprotocol/server-brave-search Brave Search API
@modelcontextprotocol/server-sqlite SQLiteデータベース操作
@modelcontextprotocol/server-puppeteer ブラウザ自動化
@modelcontextprotocol/server-google-maps Google Maps API

コミュニティサーバー(人気上位)

サーバー 機能 GitHub
Composio MCP 150以上のSaaS統合 composiohq/composio
Toolhouse MCP クラウドツール実行 toolhouseai/toolhouse
Zapier MCP Zapierアクション
Obsidian MCP Obsidian Vault操作 ガイドあり
Linear MCP Linear課題管理
Notion MCP Notionページ操作
Slack MCP Slackメッセージ
Jira MCP Jira課題管理

MCP vs Function Calling:何が違うのか?

よく混同される「OpenAI Function Calling」とMCPの違いを整理します:

観点 Function Calling MCP
標準化 OpenAI独自 オープン標準
再利用性 アプリ固有 任意のホストで再利用
状態管理 ステートレス セッション/状態管理あり
リソース提供 ツールのみ Tools + Resources + Prompts
採用 OpenAIエコシステム マルチベンダー対応

実践的な使い分け:

  • Function Calling → OpenAI API直接利用、シンプルなツール呼び出し
  • MCP → 複数ホスト横断、開発環境統合、長期運用ツール

ユースケース別:MCPの活用パターン

パターン1:開発者ツール統合

Claude / Cursor
    ↓ MCP
GitHub + Linear + Sentry + Slack
→ 「バグを調査してIssue作成し、担当者に通知」を1プロンプトで完結

パターン2:社内データアクセス

社内LLMアシスタント
    ↓ MCP
PostgreSQL + Notion + Google Drive
→ セキュアなコンテキスト内でデータ横断検索

パターン3:エージェントへのツール配布

# LangChainでMCPツールを使う例
from langchain_mcp_adapters.tools import load_mcp_tools
from langchain_anthropic import ChatAnthropic
from langgraph.prebuilt import create_react_agent

async with MultiServerMCPClient({
    "filesystem": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
        "transport": "stdio"
    }
}) as client:
    tools = await client.get_tools()
    agent = create_react_agent(ChatAnthropic(model="claude-sonnet-4-5"), tools)
    result = await agent.ainvoke({"messages": [("user", "srcディレクトリの構造を教えて")]})

MCPのエコシステム:2026年の現状

ホスト対応状況

ホスト MCP対応 状態
Claude Desktop 公式(最初期から)
Cursor 完全対応
Windsurf 対応済み
Zed Editor 対応済み
VS Code (Copilot) Microsoft公式対応
OpenAI ChatGPT 🔄 対応予定発表
Gemini 🔄 Google検討中

MCPサーバーのディレクトリ

  • mcp.so — 最大のMCPサーバーディレクトリ、2000以上のサーバー掲載
  • mcpservers.org — コミュニティキュレーション
  • GitHub awesome-mcp-servers — 厳選リスト

セキュリティ上の注意点

MCPを本番環境で使う際に考慮すべきリスク:

1. ツール呼び出しの承認

# 危険な操作には確認を挟む
@mcp.tool()
def delete_file(path: str, confirmed: bool = False) -> str:
    if not confirmed:
        return f"⚠️ {path} を削除します。confirmed=true で再実行してください"
    os.remove(path)
    return f"削除完了: {path}"

2. スコープ制限

// ファイルシステムアクセスは特定ディレクトリに限定
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y", "@modelcontextprotocol/server-filesystem",
        "/Users/username/workspace"  //  スコープを限定
      ]
    }
  }
}

3. プロンプトインジェクション対策

  • 外部データ(ファイル内容、Webページ等)経由の指示に注意
  • ツール実行前のサマリー表示を推奨
  • Lakera Guard等でリソース出力をスキャン

まとめ:MCPが変えるエージェント開発

MCPの登場により、「ツール統合」の問題は一度解けば再利用できるようになりました:

Before MCP(2024以前):

  • 各エージェントフレームワーク独自のツール定義
  • 同じGitHub統合を何度も書き直す
  • ホストが変わると全部やり直し

After MCP(2025〜):

  • MCPサーバーを一度書けば全ホストで使える
  • コミュニティサーバーを組み合わせてすぐ使える
  • 標準化されたセキュリティモデル

2026年現在、MCPはすでに「AIエージェント開発のデファクト標準」になりつつあります。早めに習得しておく価値は高いです。


関連リソース


AgDex.aiはAIエージェントエコシステムのキュレーションディレクトリです。フレームワーク、LLM API、クラウド、開発ツールを横断的に比較・探索できます。


🔍 AIエージェントツールをもっと探す

この記事で紹介したツール以外にも、2026年注目のAIエージェント関連ツールを探したい方は、ぜひ AgDex.ai をご活用ください。

AgDex.ai

AgDex.ai は、550以上のAIエージェントツール・フレームワーク・LLMプロバイダーをカテゴリ別に整理したキュレーションディレクトリです。

  • 🗂️ カテゴリ別検索:コアフレームワーク / エコシステム / LLM / クラウド / ツール
  • 🌐 4言語対応:日本語・英語・ドイツ語・スペイン語
  • 🔍 フィルター機能:オープンソース/クローズドソース・無料/有料・初心者/上級者
  • 🔗 直接リンクhttps://agdex.ai

毎週更新中。お気に入りのツールが見つかったらブックマーク & シェアをお願いします!


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?