APIのためのモデルコンテキストプロトコル(MCP)とは?重要な理由

Ashley Innocent

Ashley Innocent

13 3月 2026

APIのためのモデルコンテキストプロトコル(MCP)とは?重要な理由

要約

Model Context Protocol (MCP) は、AIアシスタントを外部データソースやAPIに接続するための標準規格です。これにより、Claude Desktop、Cursor、その他のAIツールがAPIに安全にアクセスできるようになります。Modern PetstoreAPIはMCPを実装しており、AIアシスタントが自然言語を介してペットの検索、注文、在庫管理を行うことができます。

はじめに

Claude Desktopに「300ドル以下の利用可能な猫を見せてください」と尋ねると、Claudeは「ペットストアのデータにアクセスできません」と答えます。ワークフローを中断して、APIからコピー&ペーストする必要があるでしょう。

MCP(Model Context Protocol)を使用すると、ClaudeはあなたのAPIに直接アクセスできます。同じ質問をすると、ClaudeはPetstoreAPIを照会し、結果をフィルタリングして、300ドル以下の利用可能な猫を表示します。

Modern PetstoreAPIはMCPを実装しており、AIアシスタントが自然言語を介してペットストアとやり取りできるようにします。

AI統合のためのAPIを構築している場合、ApidogはMCP実装のテストやAIアシスタントのインタラクションの検証を支援します。

ボタン

MCPとは?

MCPは、AIアシスタントを外部リソースに接続するためにAnthropicによって作成されたプロトコルです。

MCPが解決する問題

AIアシスタントは強力ですが、孤立しています。以下のことはできません。

MCPは、AIアシスタントがこれらのリソースに安全に接続するための標準的な方法を提供します。

MCPコンポーネント

1. MCPサーバー - リソースとツールをAIアシスタントに公開します

2. MCPクライアント - AIアシスタント(Claude Desktop、Cursorなど)

3. リソース - AIが読み取ることができるデータ(ファイル、データベースレコード、API応答)

4. ツール - AIが実行できるアクション(注文の作成、ペットの更新、在庫の検索)

MCPアーキテクチャ

AI Assistant (Claude Desktop)
    ↓ MCP Protocol
MCP Server (PetstoreAPI MCP Server)
    ↓ Internal APIs
PetstoreAPI Backend
    ↓
Database

MCPの仕組み

1. サーバー登録

Claude DesktopをMCPサーバーに接続するように設定します。

{
  "mcpServers": {
    "petstore": {
      "command": "node",
      "args": ["/path/to/petstore-mcp-server.js"],
      "env": {
        "PETSTORE_API_KEY": "your-api-key"
      }
    }
  }
}

2. ツール発見

AIアシスタントが尋ねます。「利用可能なツールは何ですか?」

MCPサーバーが応答します。

{
  "tools": [
    {
      "name": "search_pets",
      "description": "Search for pets by species, status, and price",
      "inputSchema": {
        "type": "object",
        "properties": {
          "species": {"type": "string", "enum": ["CAT", "DOG"]},
          "maxPrice": {"type": "number"},
          "status": {"type": "string", "enum": ["AVAILABLE", "ADOPTED"]}
        }
      }
    },
    {
      "name": "create_order",
      "description": "Place an order for a pet",
      "inputSchema": {
        "type": "object",
        "properties": {
          "petId": {"type": "string"},
          "userId": {"type": "string"}
        },
        "required": ["petId", "userId"]
      }
    }
  ]
}

3. ツール実行

ユーザーが尋ねます。「300ドル以下の利用可能な猫を見せてください」

AIアシスタントが呼び出します。

{
  "tool": "search_pets",
  "arguments": {
    "species": "CAT",
    "status": "AVAILABLE",
    "maxPrice": 300
  }
}

MCPサーバーが実行します。

async function search_pets({ species, status, maxPrice }) {
  const response = await fetch(
    `https://petstoreapi.com/v1/pets?species=${species}&status=${status}&maxPrice=${maxPrice}`
  );
  return await response.json();
}

結果をAIに返し、AIがユーザー向けにフォーマットします。

MCPと従来のAPIの比較

機能 従来のAPI MCP
アクセス 直接HTTP AIアシスタント経由
インターフェース REST/GraphQL 自然言語
認証 APIキー、OAuth MCPサーバーが認証を処理
発見 OpenAPIドキュメント ツールスキーマ
利用 コード/curl 会話型
エラー処理 HTTPステータスコード AIがエラーを解釈

比較例

従来のAPI:

curl -H "Authorization: Bearer token" \
  "https://petstoreapi.com/v1/pets?species=CAT&maxPrice=300"

MCP:

User: 「300ドル以下の利用可能な猫を見せてください」
AI: [search_petsツールを呼び出し、結果をフォーマット]
"こちらが300ドル以下の利用可能な猫5匹です。
1. Fluffy - 250ドル
2. Whiskers - 280ドル
..."

Modern PetstoreAPIはMCPをどのように実装しているか

Modern PetstoreAPIはMCPサーバーを提供します。

利用可能なツール

1. search_pets - 条件でペットを検索 2. get_pet - ペットの詳細を取得 3. create_order - 注文を行う 4. get_inventory - 在庫を確認 5. update_pet_status - ペットの利用可能性を更新

例: 検索と注文

ユーザー: 「500ドル以下の犬を見つけて注文してください」

AIのワークフロー:

1. search_pets({species: "DOG", maxPrice: 500}) を呼び出す
2. ユーザーに結果を表示する
3. ユーザーが確認:「ラブラドールを注文する」
4. create_order({petId: "019b4132", userId: "user-456"}) を呼び出す
5. 注文が完了したことを確認

MCPサーバーコード

import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';

const server = new Server({
  name: 'petstore-mcp',
  version: '1.0.0'
}, {
  capabilities: {
    tools: {}
  }
});

server.setRequestHandler('tools/list', async () => ({
  tools: [
    {
      name: 'search_pets',
      description: 'Search for pets',
      inputSchema: {
        type: 'object',
        properties: {
          species: { type: 'string' },
          maxPrice: { type: 'number' }
        }
      }
    }
  ]
}));

server.setRequestHandler('tools/call', async (request) => {
  const { name, arguments: args } = request.params;

  if (name === 'search_pets') {
    const response = await fetch(
      `https://petstoreapi.com/v1/pets?${new URLSearchParams(args)}`
    );
    return { content: [{ type: 'text', text: JSON.stringify(await response.json()) }] };
  }
});

const transport = new StdioServerTransport();
await server.connect(transport);

ApidogでMCPをテストする

ApidogはMCP実装のテストを支援します。

  1. 基盤となるAPIが正しく機能するかテストする
  2. ツールスキーマがAPI契約と一致するか検証する
  3. エラー処理をテストする
  4. 認証フローを検証する

MCPが重要である理由

1. AIネイティブなAPI

APIが自然言語を介してアクセス可能になります。非技術系のユーザーもAIアシスタントを介してAPIとやり取りできます。

2. 標準化

MCPはAI-API統合の標準となりつつあります。一度サポートすれば、すべてのMCPクライアントで機能します。

3. セキュリティ

MCPサーバーが認証を処理します。AIアシスタントは直接APIにアクセスする必要はありません。

4. 組み合わせ可能性 (Composability)

AIアシスタントは複数のMCPサーバーを組み合わせ、サービスを横断するワークフローを作成できます。

結論

MCPはAIアシスタントとAPIの架け橋となります。Modern PetstoreAPIはMCPを実装しており、Claude Desktopやその他のAIツールが自然言語を介してペットストアとやり取りできるようにします。

主なポイント:

よくある質問

どのAIアシスタントがMCPをサポートしていますか?

Claude Desktop、Cursor、その他のAnthropic製のツールが対応しています。サポートは拡大中です。

MCPは安全ですか?

はい。MCPサーバーが認証を処理します。AIアシスタントはAPIキーを認識しません。

既存のAPIでMCPを使用できますか?

はい。既存のAPIをラップするMCPサーバーを構築することで可能です。

MCPはREST APIに取って代わるものですか?

いいえ。MCPはAIアシスタントからのアクセス用です。REST APIは直接プログラムによるアクセス用として引き続き使用されます。

MCPツールをテストするにはどうすればよいですか?

Apidogを使用して基盤となるAPIをテストし、その後Claude DesktopでMCPツールをテストします。

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる