💻 Claude Code入門 📖 約18分で読めます

MCPサーバーでClaude Codeを拡張する ― 外部ツール連携ガイド

Model Context Protocolで無限の拡張性を手に入れる

クロガイド

クロガイド|Claude&Claude Codeを無料で学ぼう

AI基礎からプロンプト術、Claude Codeの使い方まで。知識レッスンとクイズ式トレーニングで、AIスキルを段階的にアップ。ユーザー登録不要、すべて無料で今すぐ始められます。

はじめに

MCP(Model Context Protocol)は、Claude Codeの機能を外部ツールやデータソースと接続して拡張するためのオープンプロトコルです。データベースへの直接クエリ、GitHub操作、Web検索など、Claude Code単体ではできない操作を可能にします。

この記事では、MCPの仕組みから、人気のMCPサーバーの設定方法、カスタムツールの作成、セキュリティ対策までを包括的に解説します。

MCPとは何か

Model Context Protocol(MCP)は、Anthropicが策定したオープンスタンダードで、AIアシスタントと外部ツール・データソースを接続するための通信規格です。

MCPの基本概念

  • オープンプロトコル:誰でもMCPサーバーを作成・共有できる
  • ツールの拡張:Claude Codeに新しいツール(機能)を追加できる
  • データ接続:外部のデータベースやAPIにAIが直接アクセスできる
  • 標準化:異なるAIアシスタント間で互換性のあるツール定義

MCPがない場合 vs ある場合

操作MCPなしMCPあり
データベース操作SQLファイルを書いて手動実行AIが直接クエリを実行
GitHub操作CLIコマンドを手動で実行AIがPR作成・レビューを直接実行
Web検索ブラウザで検索して結果を貼り付けAIが検索結果を直接取得
ファイルシステム基本的な読み書きのみ高度なファイル操作や監視
外部APIcurlコマンドを手動実行AIが直接APIを呼び出し

MCPの仕組み

MCPはクライアント-サーバーアーキテクチャで動作します。

MCPの動作フロー

  1. サーバー起動:MCPサーバープロセスが起動し、利用可能なツールを公開
  2. 接続確立:Claude Code(MCPクライアント)がサーバーに接続
  3. ツール一覧の取得:利用可能なツールの名前・引数・説明をClaude Codeが受け取る
  4. ユーザーの指示:ユーザーがタスクを指示
  5. ツール呼び出し:AIが適切なMCPツールを選択して呼び出す
  6. 結果の返却:MCPサーバーがツールの実行結果をAIに返す
  7. 応答の生成:AIが結果を踏まえてユーザーに応答

アーキテクチャ図

┌─────────────┐    JSON-RPC    ┌──────────────────┐
│  Claude Code │ ◄────────────► │  MCPサーバー      │
│ (MCPクライアント)│              │  (ツール提供側)    │
└─────────────┘               └──────────────────┘
                                       │
                                       ▼
                              ┌──────────────────┐
                              │  外部サービス      │
                              │  DB / API / FS    │
                              └──────────────────┘

MCPサーバーの設定方法

MCPサーバーの設定はclaude mcp addコマンドで行います。設定は.mcp.json(プロジェクト単位)または~/.claude.json(グローバル)に保存されます。

基本的な設定構文

{
  "mcpServers": {
    "サーバー名": {
      "command": "実行コマンド",
      "args": ["引数1", "引数2"],
      "env": {
        "環境変数名": "値"
      }
    }
  }
}

設定の要素

要素説明
commandMCPサーバーの実行コマンド"npx", "python", "node"
argsコマンドの引数["-m", "mcp-server-sqlite"]
env環境変数APIキー、DBパス等

設定の反映

# 設定ファイルを編集後、Claude Codeを再起動
# または、claude mcp コマンドで管理
claude mcp add サーバー名 -- コマンド 引数

# 例:SQLite MCPサーバーを追加
claude mcp add sqlite -- npx -y @anthropic/mcp-server-sqlite --db-path ./db/myapp.db

# 設定済みのMCPサーバーを確認
claude mcp list

# MCPサーバーを削除
claude mcp remove サーバー名

1. Filesystem(ファイルシステム)

用途:高度なファイル操作

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
    }
  }
}

提供されるツール:ファイル検索、ディレクトリ一覧、ファイル移動、メタデータ取得など。Claude Codeの組み込みファイル操作よりも高度な操作が可能です。

2. GitHub

用途:GitHub操作の自動化

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

提供されるツール:リポジトリ操作、Issue作成・管理、Pull Request作成・レビュー、コミット履歴の取得など。

3. SQLite

用途:データベースの直接操作

{
  "mcpServers": {
    "sqlite": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-server-sqlite", "--db-path", "./db/myapp.db"]
    }
  }
}

提供されるツール:SQLクエリ実行、テーブル一覧、スキーマ確認、データ挿入・更新・削除。AIがSQLを生成して直接実行できます。

4. Brave Search

用途:Web検索

{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-brave-search"],
      "env": {
        "BRAVE_API_KEY": "your-api-key"
      }
    }
  }
}

提供されるツール:Web検索、ニュース検索。AIがリアルタイムの情報を検索して回答に反映できます。

5. Fetch(Webフェッチ)

用途:WebページやAPIの取得

{
  "mcpServers": {
    "fetch": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-server-fetch"]
    }
  }
}

提供されるツール:URLからのコンテンツ取得。APIドキュメントの取得、Webページの内容確認などに活用できます。

MCPサーバー比較表

サーバー主な機能APIキーおすすめ度
Filesystemファイル操作不要★★★
GitHubGitHub API必要★★★
SQLiteDB操作不要★★★
Brave SearchWeb検索必要★★☆
FetchWeb取得不要★★☆

カスタムMCPツールの作成

既存のMCPサーバーで足りない場合は、自分でカスタムMCPサーバーを作成できます。

Node.jsでの基本構造

// my-mcp-server.js
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new Server(
  { name: "my-custom-server", version: "1.0.0" },
  { capabilities: { tools: {} } }
);

// ツールの定義
server.setRequestHandler("tools/list", async () => ({
  tools: [
    {
      name: "check_website_status",
      description: "指定されたWebサイトのステータスコードを確認します",
      inputSchema: {
        type: "object",
        properties: {
          url: {
            type: "string",
            description: "確認するURL"
          }
        },
        required: ["url"]
      }
    }
  ]
}));

// ツールの実装
server.setRequestHandler("tools/call", async (request) => {
  if (request.params.name === "check_website_status") {
    const { url } = request.params.arguments;
    try {
      const response = await fetch(url);
      return {
        content: [{
          type: "text",
          text: `URL: ${url}\nStatus: ${response.status}\nOK: ${response.ok}`
        }]
      };
    } catch (error) {
      return {
        content: [{
          type: "text",
          text: `Error: ${error.message}`
        }],
        isError: true
      };
    }
  }
});

// サーバー起動
const transport = new StdioServerTransport();
await server.connect(transport);

カスタムサーバーの登録

# カスタムサーバーを登録
claude mcp add my-custom -- node /path/to/my-mcp-server.js

セキュリティの考慮事項

MCPサーバーは外部リソースにアクセスするため、セキュリティに十分注意する必要があります。

セキュリティチェックリスト

  1. 信頼できるソースのみ使用:公式または信頼できる開発者のMCPサーバーのみインストール
  2. 最小権限の原則:MCPサーバーに必要最小限の権限のみ付与
  3. APIキーの管理:環境変数やシークレット管理ツールを使用。設定ファイルにハードコードしない
  4. ネットワークアクセス制限:不要な外部通信を制限
  5. データベースは読み取り専用を検討:本番DBに接続する場合は読み取り専用ユーザーを使用
  6. 定期的なアップデート:MCPサーバーのセキュリティパッチを適用

APIキーの安全な管理

# 悪い例:設定ファイルにAPIキーを直接記述
{
  "env": {
    "API_KEY": "sk-xxxxxxxxxxxxx"  # 危険!
  }
}

# 良い例:環境変数を参照
{
  "env": {
    "API_KEY": "${MY_API_KEY}"  # 環境変数から取得
  }
}

# 環境変数の設定(.bashrc等)
export MY_API_KEY="sk-xxxxxxxxxxxxx"

実践的なユースケース

ケース1: データベース駆動の開発

SQLite MCPサーバーを使って、AIがデータベースの内容を確認しながらコードを書くワークフロー。

# Claude Codeでの会話例
> newsテーブルの構造を確認して、最新5件のニュースを
> 表示するPHP関数を書いてください

# AIが内部的にMCPツールを使って:
# 1. テーブルのスキーマを確認
# 2. 実際のデータを確認
# 3. データに合った適切なコードを生成

ケース2: GitHubワークフロー自動化

GitHub MCPサーバーを使って、Issue管理からPR作成までをAIが一貫して行うワークフロー。

# Claude Codeでの会話例
> Issue #42のバグを修正して、修正内容のPRを作成してください

# AIが内部的に:
# 1. GitHub MCPでIssue #42の内容を取得
# 2. バグの原因を調査・修正
# 3. コミットを作成
# 4. GitHub MCPでPRを作成(Issue #42への参照を含む)

ケース3: リアルタイム情報を使った開発

Fetch MCPサーバーを使って、最新のAPIドキュメントを参照しながら連携コードを書くワークフロー。

# Claude Codeでの会話例
> Stripe APIの最新ドキュメントを確認して、
> 決済処理の実装を更新してください

# AIが内部的に:
# 1. Fetch MCPでStripeのAPIドキュメントを取得
# 2. 最新の仕様を確認
# 3. 既存コードを最新仕様に合わせて更新

まとめ

MCPサーバーによるClaude Code拡張のポイント:

  • MCPの本質:AIと外部ツール・データを接続するオープンプロトコル
  • 設定方法:settings.jsonまたはclaude mcp addコマンドで登録
  • 人気サーバー:Filesystem、GitHub、SQLite、Brave Search、Fetch
  • カスタム作成:Node.jsやPythonでMCP SDKを使って独自サーバーを構築可能
  • セキュリティ:信頼できるソースのみ使用、最小権限、APIキーの安全な管理
  • 実践活用:DB駆動開発、GitHub自動化、リアルタイム情報参照などで開発効率を向上

まずはSQLite MCPサーバーなど、APIキー不要のサーバーから試してみましょう。MCPの威力を実感したら、プロジェクトに合ったカスタムサーバーの作成にも挑戦してみてください。

Claude Code入門の他のガイド

Claude Code導入ガイド ― Windows/Mac完全対応
Claude Codeのインストールから初回起動まで、OS別に完全対応 ・ 約30分
Claude Codeの主要スラッシュコマンドと活用法
16個のスラッシュコマンドを完全網羅。使い方・実行例・組み合わせテクニックまで ・ 約15分
Claude Codeの権限設定(パーミッション)完全ガイド
セキュリティと利便性を両立する権限管理の全知識 ・ 約18分
Claude Codeのモデル切り替え活用術 ― Opus・Sonnet・Haikuの使い分け
タスクに応じた最適なモデル選択でコストと品質を両立する方法 ・ 約15分
Claude Codeのセッション管理術 ― 効率的な作業の進め方
セッションの開始・継続・再開を使いこなして、長期プロジェクトを効率的に進める ・ 約12分
Claude Codeのコマンドラインオプション完全リファレンス
全CLIオプションを網羅。起動時に使える引数を徹底解説 ・ 約20分
Claude Codeのプロジェクト設定(.claude/)完全ガイド
.claudeディレクトリとCLAUDE.mdを使いこなしてチーム開発を効率化 ・ 約15分
Claude Codeの出力フォーマットとパイプ活用術
--printモードとパイプを使った自動化・スクリプト連携の実践テクニック ・ 約15分
Claude Codeのキーボードショートカットと操作効率化
知っておくべきショートカットキーと入力テクニックで作業速度を2倍に ・ 約12分
Claude Codeのアップデートとバージョン管理
最新版への更新方法からダウングレード、トラブル対処まで ・ 約10分
Claude Codeの/doctorコマンドとトラブル診断
問題発生時の診断フローとよくあるエラーの解決方法 ・ 約12分
CLAUDE.mdの書き方完全ガイド ― プロジェクト指示書のベストプラクティス
プロジェクトの文脈をAIに正確に伝える設定ファイルの書き方 ・ 約20分
Claude Codeのメモリ機能 ― 会話をまたいだ記憶の活用法
プロジェクト固有の知識を永続化して効率を最大化する ・ 約18分
.claude/settings.jsonの設定項目一覧と活用法
Claude Codeの動作を細かく制御する設定ファイルの全貌 ・ 約15分
プロジェクト別CLAUDE.mdテンプレート集 ― コピペで使える10パターン
React・Next.js・Python・PHP・WordPress等、主要技術スタック別テンプレート ・ 約25分
チーム開発でのCLAUDE.md運用術
チーム全員がAIを最大限活用するための共有設定と運用ルール ・ 約20分
Claude CodeでGitを使いこなす ― 基本操作編
自然な日本語でGitを操作する方法を基本から解説 ・ 約20分
Claude Codeでコミットメッセージを自動生成する
変更内容を分析して最適なコミットメッセージを提案してくれるAI活用術 ・ 約18分
Claude CodeでPR(プルリクエスト)を作成・レビューする
AI支援によるPR作成からコードレビューまでの実践的ワークフロー ・ 約20分
Claude Codeでブランチ戦略を実践する
Git Flow・GitHub Flow・トランクベースを理解し、AIで効率的にブランチを管理 ・ 約20分
Claude Codeでコンフリクト解決をAIに任せる
マージの衝突が起きても慌てない。AIによるコンフリクト解決の実践ガイド ・ 約18分
Claude Codeでgit logを分析して変更履歴を理解する
コミット履歴からバグの原因特定やプロジェクトの変遷を把握する ・ 約22分
Claude Codeでリリースノートを自動生成する
コミット履歴からユーザー向け・開発者向けリリースノートを作成する ・ 約20分
Claude Codeのコンテキスト節約術 ― トークンを無駄にしない10の方法
コンテキストウィンドウを理解し、トークン消費を最適化するテクニック集 ・ 約18分
/compactコマンド徹底解説 ― 会話を圧縮して作業を続ける
/compactの仕組み・使いどころ・カスタム指示を完全網羅 ・ 約15分
大規模プロジェクトでのClaude Code活用戦略
大規模コードベースでの効率的なAI活用パターンとベストプラクティス ・ 約20分
.gitignoreとClaude Code ― 読み込みファイルの最適制御
ファイル探索の仕組みを理解し、ノイズを減らして精度を上げる ・ 約14分
効率的なタスク分割術 ― 1セッションの最適な使い方
タスク境界の見極めとセッション計画で生産性を最大化 ・ 約16分
Claude CodeのSkills機能入門 ― カスタムコマンドで作業を効率化
組み込みスキルからカスタムワークフローまで完全ガイド ・ 約15分
Claude Codeのフック(Hooks)でワークフローを自動化する
PreToolUse・PostToolUseフックで品質と安全性を自動で担保 ・ 約18分
カスタムスラッシュコマンドの作り方 ― 自分だけのワークフローを構築
.claude/commands/ディレクトリで独自コマンドを定義する方法 ・ 約16分
Claude CodeとVS Code・JetBrainsの連携活用法
ターミナルAIとIDEを組み合わせた最強の開発環境構築 ・ 約15分
Claude Codeでウェブサイトを0から作る実践ガイド
プロジェクト作成からデプロイまでの完全チュートリアル ・ 約20分
Claude Codeでテストコードを書かせるテクニック
単体テストからE2Eテストまで、AIによるテスト自動生成 ・ 約22分
Claude Codeでリファクタリングを効率化する
安全なコード改善をAIと一緒に進める方法 ・ 約22分
Claude Codeでドキュメントを自動生成する
README・API文書・コードコメントを効率的に作成 ・ 約20分
Claude Codeでバグを素早く見つけて修正するテクニック
エラー解析からホットフィックスまでのデバッグワークフロー ・ 約20分
Claude CodeでREST APIを設計・実装する
要件定義からテストまでAPI開発の全工程をAIと進める ・ 約25分
Claude Codeでデータベース設計を相談・実装する
ER図からマイグレーションまでDB設計をAIに相談 ・ 約22分
Claude Codeで既存プロジェクトを分析・理解する
新しいコードベースのオンボーディングをAIで加速 ・ 約22分

Claude Code入門のレッスンも読む

読んだら、次はクイズで確認!

トレーニングで学んだ知識を定着させましょう。

Claude Code入門のトレーニングへ