Claude Codeはファイル操作やコマンド実行だけでなく、GitHub、データベース、Slack、Sentryなど外部のツールやサービスとも連携できることをご存知ですか?
それを実現するのが「MCP(Model Context Protocol)」です。MCPサーバーを接続するだけで、Claudeが外部ツールをまるで自分の手足のように使えるようになります。
今日はMCPサーバーについて解説するよ! …って、MCPってなんの略?
Model Context Protocolの略です。Anthropicが策定したオープンな標準規格で、AIモデルと外部ツールを安全に接続するためのプロトコルです。
う〜ん、もうちょっと簡単に言うと…?
USBのようなものです。USBは「パソコンにどんな機器でも接続できる共通規格」ですが、MCPは「AIにどんなツールでも接続できる共通規格」です。
あ、それ分かりやすい! GitHubとかデータベースとかを「USBで挿す」みたいに繋げるんだね!
そしてClaude Codeだけでなく、ChatGPT、Gemini、Cursor、Windsurf等もMCPに対応しています。一度MCPサーバーを作れば、どのAIクライアントからでも使えます。
MCPの仕組み
MCPの基本構造はシンプルです。「MCPクライアント」(Claude Code)が「MCPサーバー」(各種ツール)に接続し、サーバーが提供する「ツール」をClaudeが呼び出します。
┌─────────────┐ MCP Protocol ┌─────────────┐
│ Claude Code │ ◄──────────────────► │ MCPサーバー │
│ (クライアント) │ │ (GitHub等) │
└─────────────┘ └──────┬──────┘
│
┌──────▼──────┐
│ 外部サービス │
│ (API/DB等) │
└─────────────┘
MCPサーバーは3つの機能を提供できます。
- ツール(Tools): Claudeが呼び出せるアクション。例:GitHub PRの作成、データベースクエリの実行
- リソース(Resources):
@mentionsで参照できるデータ。例:GitHubイシュー、DBスキーマ - プロンプト(Prompts): 事前定義されたコマンド。
/mcp__サーバー名__コマンド名で実行
MCPの通信方式は3種類:
HTTP(推奨): クラウドAPI・SaaS向け。GitHubやSentryなどリモートサーバーに最適。
Stdio(ローカル向け): ローカルツール・npmパッケージ向け。プロセス間通信で高速。
SSE(非推奨): Server-Sent Events方式。2026年に非推奨化。新規利用は避けてください。
MCPサーバーの追加方法
MCPサーバーの追加はCLIコマンド一発です。
HTTPサーバーの追加(クラウドサービス向け)
# GitHub MCPサーバーを追加
claude mcp add --transport http github https://api.githubcopilot.com/mcp/
# Sentry(エラー監視)を追加
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
# 認証ヘッダー付きで追加
claude mcp add --transport http stripe https://mcp.stripe.com/mcp \
--header "Authorization: Bearer $STRIPE_API_KEY"
えっ、コマンド一行で追加できるの? もっと大変かと思った!
認証はOAuth対応のサーバーなら/mcpコマンドからブラウザ経由で認証できます。APIキーが必要な場合は--headerで渡します。
Stdioサーバーの追加(ローカルツール向け)
# PostgreSQLデータベース接続
claude mcp add --transport stdio db \
--env DATABASE_URL="postgresql://user:pass@localhost/mydb" \
-- npx -y @bytebase/dbhub
# Puppeteer(ブラウザ自動操作)
claude mcp add --transport stdio browser \
-- npx -y @modelcontextprotocol/server-puppeteer
# カスタムPythonサーバー
claude mcp add --transport stdio custom \
-- python /path/to/my-server.py
npx -yで直接パッケージを実行してるんだね。データベースにも繋がるの、すごいなぁ。
CLIフラグの注意点:
全てのフラグ(--transport, --env, --scope, --header)はサーバー名の前に書く必要があります。--(ダブルダッシュ)の後にコマンドを記述します。
Windows環境ではnpxの前にcmd /cが必要な場合があります: -- cmd /c npx -y @some/package
設定ファイルに直接記述する方法
CLIの代わりに、設定ファイルに直接JSONを記述することもできます。
// .mcp.json(プロジェクトルートに配置、チームで共有可能)
{
"mcpServers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/"
},
"database": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@bytebase/dbhub"],
"env": {
"DATABASE_URL": "${DB_URL}"
}
}
}
}
${DB_URL}って書いてあるけど、これ環境変数が展開されるの?
よく気づきました。${VAR}で環境変数を展開できます。${VAR:-default}でデフォルト値も指定できます。APIキーやパスワードをファイルに直書きせず、環境変数経由で安全に渡せる仕組みです。
設定ファイルの場所と優先順位
MCP設定は4つのレベルで管理されます。
# マネージド設定(企業管理、最高優先度)
/etc/claude-code/managed-mcp.json # Linux
C:\Program Files\ClaudeCode\managed-mcp.json # Windows
# プロジェクト設定(チーム共有、gitコミット可能)
.mcp.json
# ユーザー設定(個人用、全プロジェクト共通)
~/.claude.json
# ローカル設定(個人用、プロジェクト固有)
~/.claude.json 内のプロジェクト別セクション
4つもあるの? フックの時も3つあったし…どれに書くのがいいんだろう?
判断基準は明確です。チームで共有するなら.mcp.json。自分だけが使うサーバーは~/.claude.json。プロジェクト固有で個人的なものはローカル設定。企業ポリシーは管理者が設定します。
設定スコープの使い分け:
プロジェクト(.mcp.json): チーム全員が使うサーバー。初回実行時にユーザー承認が必要。
ユーザー(~/.claude.json): どのプロジェクトでも使いたいサーバー。自動実行。
スコープ指定: claude mcp add --scope user または --scope project でCLIから指定可能。
人気のMCPサーバー
2026年4月現在、5,000を超えるコミュニティMCPサーバーが公開されています。ここでは特に有用なサーバーを紹介します。
開発ツール系
# GitHub — PR、イシュー、コードレビュー
claude mcp add --transport http github \
https://api.githubcopilot.com/mcp/
# Sentry — エラー監視、スタックトレース分析
claude mcp add --transport http sentry \
https://mcp.sentry.dev/mcp
GitHubのMCPサーバーを入れたら、「PR #123をレビューして」って言うだけでClaudeがコードレビューしてくれるの?
はい。PRの差分取得、コメント投稿、イシュー作成まで自然言語で指示できます。ghコマンドの代わりに、より直感的なインターフェースとして使えます。
データベース系
# PostgreSQL / MySQL — データベースクエリ、スキーマ確認
claude mcp add --transport stdio db \
--env DATABASE_URL="postgresql://user:pass@localhost/mydb" \
-- npx -y @bytebase/dbhub
データベースMCPサーバーを使えば、「先月の売上トップ10の商品を教えて」といった自然言語でSQLクエリを実行できます。読み取り専用のアカウントで接続すれば安全です。
ブラウザ自動操作
# Puppeteer — ブラウザ操作、スクリーンショット
claude mcp add --transport stdio browser \
-- npx -y @modelcontextprotocol/server-puppeteer
コミュニケーション系
# Notion — データベース、ページ管理
claude mcp add --transport http notion https://mcp.notion.com/mcp
# Slack — チャンネル参照、メッセージ送信
# (Slackの公式MCPエンドポイントは問い合わせが必要)
5,000以上もサーバーがあるの!? もうほとんどの外部サービスと繋がれるじゃん!
MCPサーバーの一覧は公式リポジトリで確認できます。自作も可能です。
MCPサーバーの管理
MCPサーバーの日常的な管理に使うコマンドを紹介します。
# サーバー一覧の確認
claude mcp list
# 特定サーバーの詳細
claude mcp get github
# サーバーの削除
claude mcp remove github
# Claude Desktopから設定をインポート
claude mcp add-from-claude-desktop
# JSON形式で直接追加
claude mcp add-json myserver '{"type":"http","url":"https://api.example.com/mcp"}'
# プロジェクトのMCP承認をリセット
claude mcp reset-project-choices
/mcp コマンド
Claude Codeのセッション内で/mcpと入力すると、接続中のMCPサーバーの管理画面が開きます。
# Claude Codeのプロンプトで
> /mcp
ここから以下の操作ができます。
- 接続中のサーバー一覧の確認
- OAuth認証の実行(ブラウザが開く)
- 認証トークンのクリア
- 利用可能なツールの確認
/mcpで全部管理できるんだ! CLIコマンドを覚えなくても、ここからポチポチ操作できるね。
MCPツールサーチ — コンテキストの節約術
MCPサーバーを複数接続すると、全てのツール定義がClaudeのコンテキストを消費します。50以上のツールで約77,000トークンにもなることがあります。
この問題を解決するのが「ツールサーチ」です。2026年からデフォルトで有効になっています。
ツールサーチって何するの?
セッション開始時に全ツールを読み込む代わりに、Claudeが必要なツールだけをその場で検索・読み込みます。77,000トークン→約8,700トークンまで削減。コンテキストの95%を節約します。
95%削減!? それはすごい…! MCPサーバーたくさん入れても安心だね。
ツールサーチの制御:
デフォルト有効。無効にするには環境変数ENABLE_TOOL_SEARCH=falseを設定。
settings.jsonでも設定可能: {"env": {"ENABLE_TOOL_SEARCH": "false"}}
注意: Sonnet 4以上またはOpus 4以上のモデルが必要。Haikuは非対応。
セキュリティの注意点
MCPサーバーは外部との通信を行うため、セキュリティは特に重要です。
外部と通信するってことは、セキュリティリスクもあるよね? どんなことに気をつければいいの?
過去にはMCPの設定ファイル(.mcp.json)を悪用した脆弱性も報告されています。信頼できるサーバーのみを使用し、以下のルールを守ってください。
守るべきルール
- 信頼できるサーバーのみ追加: 公式リポジトリや著名な開発者のサーバーを選ぶ
- APIキーをファイルに直書きしない:
${VAR}で環境変数を参照する - .mcp.jsonをレビューしてから実行: gitからpullした他人の
.mcp.jsonは中身を確認する - データベースは読み取り専用で接続: 書き込み権限のあるアカウントは避ける
- 不要なサーバーは削除:
claude mcp removeで定期的に整理する
パーミッションによるアクセス制御
settings.jsonでMCPツールの使用を許可・拒否できます。
// .claude/settings.json
{
"permissions": {
"allow": [
"MCP(github *)",
"MCP(sentry *)"
],
"deny": [
"MCP(curl *)",
"MCP(fetch external-api.com)"
]
}
}
allowで許可したツールは自動実行されます。denyで拒否したツールはClaudeから呼び出せなくなります。ホワイトリスト方式で必要最小限のアクセス権を与えるのが理想です。
MCP・Hooks・Skillsの使い分け
Claude Codeには拡張機能が3つあります。それぞれの役割を整理しましょう。
MCP、Hooks、Skills…3つもあると混乱しそう。どう使い分ければいいの?
一言で表すなら: MCPは「外部接続」、Hooksは「自動処理」、Skillsは「専門知識」です。
3つの拡張機能の比較:
MCP: 外部サービスとの接続。GitHub、DB、Slack等を操作。設定は.mcp.json。
Hooks: イベント駆動の自動処理。ファイル保存後のlint、危険コマンドのブロック等。設定はsettings.json。
Skills: 再利用可能な専門知識。デプロイ手順、コーディング規約等。SKILL.mdに記述。
これらは排他的ではなく、組み合わせて使うことで最大の効果を発揮します。
なるほど! たとえばMCPでGitHubと繋いで、Hooksでコミット前にテストを走らせて、Skillsにレビューのルールを書いておく…みたいな組み合わせ!
…完璧な例です。3つを適切に組み合わせることで、Claude Codeは単なるコーディング支援から、開発ワークフロー全体の自動化エンジンへと進化します。
ふふん、今日は冴えてるでしょ?
…MCPの綴りを「Model Control Protocol」と3回言い間違えていた件は不問にしましょう。
ContextだよContextっ! ちゃんと覚えてたもん!
まとめ
MCPサーバーは、Claude Codeを「閉じたコーディングツール」から「あらゆるサービスと連携する自動化ハブ」へと変える強力な仕組みです。
- USBのような共通規格: GitHubからデータベースまで、MCPで統一的に接続
- コマンド一発で追加:
claude mcp addで簡単セットアップ - 5,000以上のサーバー: 開発ツール、DB、コミュニケーション、監視など豊富なエコシステム
- ツールサーチで95%節約: 大量のツールを接続してもコンテキストを圧迫しない
- Hooks・Skillsと組み合わせ: 3つの拡張機能で開発ワークフロー全体を自動化
まずはclaude mcp add --transport http github https://api.githubcopilot.com/mcp/でGitHub MCPを試してみてください。「こんなことまでClaude Codeでできるのか」という新しい体験が待っています。
今日はここまで! MCPで外部サービスと繋がれるようになると、もう手作業に戻れなくなるかも…!
お疲れさまでした。MCPは日々進化しています。新しいサーバーが追加されるたびに、Claude Codeの可能性が広がります。定期的にエコシステムをチェックすることを推奨します。
それじゃ、また次の記事で会おうね! ばいばい〜!