CLAUDE LABEN
MCP — 2026-07-28 仕様への対応が Claude 製品群で広がっています。双方向ステートフルなプロトコルからリクエスト・レスポンス型へ移り、MCP サーバーをサーバーレスやエッジに置けるようになりましたEXTENSIONS — 公式拡張が3種そろいました。サーバー側で UI を描く MCP Apps、非同期の長時間処理を扱う Tasks、IdP 経由で組織単位に払い出す Enterprise Managed Auth ですADOPTION — MCP の月間 SDK ダウンロードが4億を超え、年内で約4倍になりました。エージェントとアプリケーションを繋ぐ標準としての位置づけが固まりつつありますQUOTA — Claude Code 契約者向けの週次利用枠 50% 上乗せは本日8月19日が最終日です。長時間のエージェント実行を回すなら今日が最後の機会になりますPRICING — Claude Sonnet 5 の導入価格 100万トークンあたり入力2ドル・出力10ドルは8月31日で終了し、9月1日から入力3ドル・出力15ドルへ移ります。残り12日ですFIX — タイムアウトが固定されたサーバーに対し MCP v2 接続がサブスクリプションを際限なく張り直す不具合が修正され、ユーザー帰属のための forward_user_identity 設定も追加されましたMCP — 2026-07-28 仕様への対応が Claude 製品群で広がっています。双方向ステートフルなプロトコルからリクエスト・レスポンス型へ移り、MCP サーバーをサーバーレスやエッジに置けるようになりましたEXTENSIONS — 公式拡張が3種そろいました。サーバー側で UI を描く MCP Apps、非同期の長時間処理を扱う Tasks、IdP 経由で組織単位に払い出す Enterprise Managed Auth ですADOPTION — MCP の月間 SDK ダウンロードが4億を超え、年内で約4倍になりました。エージェントとアプリケーションを繋ぐ標準としての位置づけが固まりつつありますQUOTA — Claude Code 契約者向けの週次利用枠 50% 上乗せは本日8月19日が最終日です。長時間のエージェント実行を回すなら今日が最後の機会になりますPRICING — Claude Sonnet 5 の導入価格 100万トークンあたり入力2ドル・出力10ドルは8月31日で終了し、9月1日から入力3ドル・出力15ドルへ移ります。残り12日ですFIX — タイムアウトが固定されたサーバーに対し MCP v2 接続がサブスクリプションを際限なく張り直す不具合が修正され、ユーザー帰属のための forward_user_identity 設定も追加されました
ブログ一覧

MCP(Model Context Protocol)実践ガイド — Claude をカスタムツールで拡張する

MCPModel Context ProtocolClaude APIツール拡張

MCP とは何か?

Model Context Protocol(MCP) は、Anthropic が策定したオープン標準で、AI モデルと外部ツール・データソースをシームレスに連携させるためのプロトコルです。USB-C が様々なデバイスを統一的に接続するように、MCP は Claude と外部世界をつなぐ標準インターフェースを提供します。

MCP を使うことで、Claude は以下のようなことが可能になります:

  • ローカルファイルシステムの読み書き
  • データベースへのクエリ実行
  • 外部 API の呼び出し
  • カスタムビジネスロジックの実行

MCP の基本アーキテクチャ

MCP は クライアント・サーバー型アーキテクチャ を採用しています。

Claude(MCP クライアント)
         ↕ MCP プロトコル(JSON-RPC over stdio/SSE)
MCP サーバー(カスタムツール群)

主な概念は以下の3つです:

Tools(ツール): Claude が呼び出せる関数。例えば read_filequery_databasesend_email など。

Resources(リソース): Claude が参照できるデータ。ファイル、データベースのレコード、API レスポンスなど。

Prompts(プロンプト): 再利用可能なプロンプトテンプレート。特定のタスクに最適化されたプロンプトを提供します。

最初の MCP サーバーを作る

TypeScript で簡単な MCP サーバーを作ってみましょう。ここでは「現在時刻を返す」シンプルなツールを実装します。

1. プロジェクトのセットアップ

mkdir my-mcp-server
cd my-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk
npm install -D typescript @types/node

2. サーバーの実装

// src/index.ts
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import {
  CallToolRequestSchema,
  ListToolsRequestSchema,
} from "@modelcontextprotocol/sdk/types.js";
 
const server = new Server(
  {
    name: "my-mcp-server",
    version: "1.0.0",
  },
  {
    capabilities: {
      tools: {},
    },
  }
);
 
// 利用可能なツール一覧を返す
server.setRequestHandler(ListToolsRequestSchema, async () => {
  return {
    tools: [
      {
        name: "get_current_time",
        description: "現在の日時を返します",
        inputSchema: {
          type: "object",
          properties: {
            timezone: {
              type: "string",
              description: "タイムゾーン(例: Asia/Tokyo)",
            },
          },
        },
      },
    ],
  };
});
 
// ツールの実行ハンドラー
server.setRequestHandler(CallToolRequestSchema, async (request) => {
  if (request.params.name === "get_current_time") {
    const timezone =
      (request.params.arguments?.timezone as string) || "Asia/Tokyo";
    const now = new Date().toLocaleString("ja-JP", { timeZone: timezone });
 
    return {
      content: [
        {
          type: "text",
          text: `現在時刻(${timezone}): ${now}`,
        },
      ],
    };
  }
 
  throw new Error(`Unknown tool: ${request.params.name}`);
});
 
// サーバーの起動
const transport = new StdioServerTransport();
await server.connect(transport);

3. Claude Desktop への接続

~/Library/Application Support/Claude/claude_desktop_config.json に以下を追加します:

{
  "mcpServers": {
    "my-mcp-server": {
      "command": "node",
      "args": ["/path/to/my-mcp-server/dist/index.js"]
    }
  }
}

Claude Desktop を再起動すると、Claude の会話の中でこのツールが利用できるようになります。

実践的なユースケース

ケース1:社内データベース連携

// PostgreSQL に接続してデータを取得するツール
{
  name: "query_sales_data",
  description: "売上データをクエリします",
  inputSchema: {
    type: "object",
    properties: {
      start_date: { type: "string", description: "開始日(YYYY-MM-DD)" },
      end_date: { type: "string", description: "終了日(YYYY-MM-DD)" },
    },
    required: ["start_date", "end_date"],
  },
}

このツールを使うと、「先月の売上データを分析して」という自然言語の指示だけで、Claude が自動的にデータベースをクエリして分析結果を返してくれます。

ケース2:ファイル操作の自動化

// プロジェクトディレクトリ内のファイルを読み書きするツール
{
  name: "write_report",
  description: "分析レポートをファイルに保存します",
  inputSchema: {
    type: "object",
    properties: {
      filename: { type: "string" },
      content: { type: "string" },
    },
    required: ["filename", "content"],
  },
}

ケース3:外部サービス連携

Slack、Notion、GitHub などの外部 API と連携するツールを作ることで、Claude が直接これらのサービスを操作できるようになります。

// GitHub Issue を作成するツール
{
  name: "create_github_issue",
  description: "GitHub にイシューを作成します",
  inputSchema: {
    type: "object",
    properties: {
      repo: { type: "string", description: "リポジトリ名(owner/repo)" },
      title: { type: "string", description: "イシューのタイトル" },
      body: { type: "string", description: "イシューの本文" },
    },
    required: ["repo", "title"],
  },
}

MCP を使う際のベストプラクティス

ツールの粒度を適切に保つ: ひとつのツールに多くの機能を詰め込まず、単一責任の原則に従って設計しましょう。

エラーハンドリングを丁寧に: Claude はエラーメッセージを見て次のアクションを決定します。エラーの原因と推奨される対処法を明確に伝えましょう。

セキュリティに注意: MCP サーバーが外部 API キーや機密情報を扱う場合、環境変数を使って管理し、ハードコーディングは避けましょう。

ツールの説明を丁寧に書く: Claude はツールの description を読んで使うべきか判断します。日本語で明確に記述すると、より精度高くツールを活用してもらえます。

まとめ

MCP は Claude の可能性を大きく広げるエコシステムです。社内ツールとの連携、データベースのクエリ、外部サービスの操作など、あらゆる用途に応用できます。

Anthropic は MCP をオープン標準として公開しており、公式リポジトリ には多数のサンプルやコミュニティ製サーバーも公開されています。ぜひ自分のユースケースに合わせた MCP サーバーを作り、Claude との連携を深めてみてください。