MCP サーバー

Model Context Protocol で Claude Code の機能を拡張し、外部ツールやサービスに接続

MCP サーバー

MCP(Model Context Protocol)は、Anthropic が提供するオープンスタンダードで、Claude Code を外部ツール、データベース、API、サービスに接続できます。MCP を使用することで、Claude Code の機能を大幅に拡張できます。

MCP とは?

基本概念

MCP は AI アシスタントと外部システム間の通信標準を定義するオープンプロトコルです。3 つのコアコンポーネントで構成されています:

コンポーネント 説明
Tools(ツール) 実行可能なアクション データベースクエリ、リクエスト送信、ファイル操作
Resources(リソース) 読み取り可能なデータ ファイル内容、API レスポンス、データベースレコード
Prompts(プロンプト) 事前定義されたタスクテンプレート コードレビューテンプレート、レポート生成テンプレート

なぜ MCP が必要?

  • 機能拡張:Claude が本来アクセスできないシステムにアクセス可能に

  • リアルタイムデータ:最新のドキュメント、データベース内容、API データを取得

  • 自動化:デプロイの実行、通知の送信、リソースの管理

  • プライバシー:データはローカルで処理、クラウドへのアップロード不要

クイックスタート

MCP ステータスを確認

> /mcp

現在設定されている MCP サーバーのステータスを表示します。

MCP サーバーを追加

claude mcp add コマンドを使用:

# ファイルシステムサーバーを追加
claude mcp add filesystem npx -y @modelcontextprotocol/server-filesystem /path/to/directory

# SQLite データベースサーバーを追加
claude mcp add sqlite npx -y mcp-server-sqlite ./database.db

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

設定ファイル方式

プロジェクトルートに .mcp.json ファイルを作成することもできます:

{
  "filesystem": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-filesystem", "/allowed/path"]
  },
  "database": {
    "command": "npx",
    "args": ["-y", "mcp-server-sqlite", "./data.db"]
  }
}

人気の MCP サーバー

ファイルシステム

ローカルファイルシステムにアクセス:

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

機能:指定ディレクトリ内のファイルの読み取り、書き込み、検索。

SQLite データベース

SQLite データベースに接続:

{
  "sqlite": {
    "command": "npx",
    "args": ["-y", "mcp-server-sqlite", "./database.db"]
  }
}

機能:SQL クエリの実行、データベーススキーマの管理。

GitHub

GitHub リポジトリに接続:

{
  "github": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-github"],
    "env": {
      "GITHUB_TOKEN": "${GITHUB_TOKEN}"
    }
  }
}

機能:Issues、PR、リポジトリ操作の管理。

Context7(ドキュメント検索)

最新のライブラリドキュメントを取得:

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

機能:任意のライブラリの最新ドキュメントとコード例を取得。

Supabase

Supabase バックエンドに接続:

{
  "supabase": {
    "command": "npx",
    "args": ["-y", "@supabase/mcp-server"],
    "env": {
      "SUPABASE_URL": "${SUPABASE_URL}",
      "SUPABASE_KEY": "${SUPABASE_KEY}"
    }
  }
}

機能:データベース操作、認証、ストレージ管理。

Docker

コンテナ管理:

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

機能:コンテナ、イメージ、ネットワークの管理。

サーバータイプ

stdio(ローカルプロセス)

最も一般的なタイプで、ローカルサブプロセスとして実行:

{
  "my-server": {
    "command": "node",
    "args": ["./server.js"],
    "env": {
      "API_KEY": "${API_KEY}"
    }
  }
}

特徴

  • ローカルで実行、データはマシン内に留まる

  • Claude Code がプロセスのライフサイクルを管理

  • ファイルシステム、ローカルデータベースに最適

SSE(Server-Sent Events)

リモートホストされた MCP サーバーに接続:

{
  "remote-server": {
    "type": "sse",
    "url": "https://mcp.example.com/sse"
  }
}

特徴

  • クラウドサービスに適している

  • OAuth 認証をサポート

  • ローカルインストール不要

HTTP

RESTful API 方式:

{
  "api-server": {
    "type": "http",
    "url": "https://api.example.com/mcp",
    "headers": {
      "Authorization": "Bearer ${API_TOKEN}"
    }
  }
}

環境変数

MCP 設定は環境変数の置換をサポート:

{
  "my-server": {
    "command": "node",
    "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],
    "env": {
      "DATABASE_URL": "${DATABASE_URL}",
      "API_KEY": "${API_KEY}",
      "DEFAULT_NAMESPACE": "${K8S_NAMESPACE:-default}"
    }
  }
}

構文

  • ${VAR} - 環境変数の値で置換

  • ${VAR:-default} - 変数が未設定の場合はデフォルト値を使用

実践例

例 1:データベースクエリアシスタント

{
  "postgres": {
    "command": "npx",
    "args": ["-y", "mcp-server-postgres"],
    "env": {
      "DATABASE_URL": "postgresql://user:pass@localhost/mydb"
    }
  }
}

使用例:

> 過去 7 日間の注文総額をクエリして
> 購入回数が最も多いユーザートップ 10 を見つけて

例 2:Kubernetes 運用

{
  "kubernetes": {
    "command": "node",
    "args": ["./k8s-mcp-server.js"],
    "env": {
      "KUBECONFIG": "${KUBECONFIG}",
      "K8S_NAMESPACE": "${K8S_NAMESPACE:-default}"
    }
  }
}

使用例:

> すべての Pod のステータスをリストして
> api-server デプロイメントを再起動して
> 最近のエラーログを表示して

例 3:マルチサーバー設定

{
  "filesystem": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-filesystem", "./src"]
  },
  "database": {
    "command": "npx",
    "args": ["-y", "mcp-server-sqlite", "./data.db"]
  },
  "github": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-github"],
    "env": {
      "GITHUB_TOKEN": "${GITHUB_TOKEN}"
    }
  }
}

トラブルシューティング

サーバーが起動しない

  1. コマンドが正しくインストールされているか確認: bash npx -y @modelcontextprotocol/server-filesystem --help

  2. 環境変数が設定されているか確認: bash echo $GITHUB_TOKEN

  3. Claude Code のログでエラーメッセージを確認

ツールが使用できない

  1. /mcp でサーバーステータスを確認

  2. 設定ファイルの形式が正しいか確認(JSON 構文)

  3. Claude Code を再起動して設定を再読み込み

権限の問題

  • ファイルパスに読み取り/書き込み権限があることを確認

  • データベース接続文字列が正しいことを確認

  • API トークンが有効で十分な権限があることを確認

セキュリティ推奨事項

  1. 最小権限の原則:必要なアクセスのみを付与

  2. 機密情報の保護:トークンとパスワードには環境変数を使用

  3. パスアクセスの制限:ファイルシステムサーバーは必要なディレクトリのみを公開

  4. キーの定期的なローテーション:API トークンを定期的に更新

次のステップ

🚀
QCode を始めよう — AI プログラミングアシスタント
Claude Code 公式リレー、高速・安定・すぐに使える
料金プランを見る → アカウント登録