MCPの仕組みと設定方法を解説し、Claude CodeがMCP Server経由でデータベース・GitHub・Slackなどの外部システムに接続できるようにする。
Claude Codeがデフォルトでできることには限界がある。ローカルファイルの読み書き、ターミナルコマンドの実行、組み込みツールの呼び出し。しかし実際のプロジェクトでは、データベースの照会、Notionドキュメントの読み取り、Slackメッセージの検索、内部APIの呼び出しが必要になることが多い。
MCPはそのギャップを埋めるためのものだ。
MCP(Model Context Protocol)はAnthropicが提唱するオープンプロトコルで、AIモデルが外部ツールやデータソースとどのように通信するかを定義している。Claude Codeにプラグインをインストールするようなものだと考えるといい。各MCP Serverは独立したサービスで、一連のツールを公開し、Claudeがセッション中に直接呼び出せる。
Hooks(Claudeがアクションを実行したときにスクリプトをトリガーする)とは異なり、MCPはClaudeの能力の境界を積極的に拡張する:接続したものはすべてClaudeが操作できるようになる。
アーキテクチャはシンプルだ:
Claude Code(Client) ←→ MCP Server ←→ 外部システム
このプロセス全体はユーザーには透過的だ。あなたが見るのは「データベースを確認します」と言ったClaudeが結果を返してくるところで、裏側ではMCPがリクエストを転送している。
MCP Serverは3種類のものを公開できる:
Tools(ツール)
Claudeが能動的に呼び出せる関数——「ユーザーテーブルを検索する」「ドキュメントを検索する」「Slackメッセージを送信する」など。これが最もよく使われる。
Resources(リソース)
Claudeがコンテキストとして読み取れる構造化データ——データベースのschema、APIドキュメント、設定ファイルなど。
Prompts(プロンプトテンプレート)
ユーザーが直接参照できる定義済みプロンプトフラグメント。
実際の使用では90%のケースがToolsだ。
公式のFilesystem MCPを例にとると、このServerはClaudeが作業ディレクトリ外のファイルシステムにアクセスできるようにする。
インストール
npm install -g @modelcontextprotocol/server-filesystem
設定
~/.claude/settings.jsonを編集する:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/yourname/Documents"
]
}
}
}
確認
Claude Codeを再起動して試す:
/Users/yourname/Documents 以下のPDFファイルを一覧表示して
Claudeが「ファイルシステムにアクセスできません」と言う代わりに結果を返したら、MCPは機能している。
{
"mcpServers": {
"サービス名": {
"command": "起動コマンド",
"args": ["引数リスト"],
"env": {
"API_KEY": "xxx"
}
}
}
}
command + args:Claude CodeがMCP Serverプロセスを起動するためのコマンドenvはAPIキーなど機密性の高い設定を渡すために使う。コードにハードコードしないことMCP設定は優先度の低い順に3箇所に置ける:
| 場所 | ファイル | 使うケース |
|---|---|---|
| グローバル | ~/.claude/settings.json |
全プロジェクトで使いたいツール |
| プロジェクト | .claude/settings.json |
このプロジェクト専用 |
| ローカル上書き | .claude/settings.local.json |
個人設定、gitにはコミットしない |
データベース接続や内部APIなどプロジェクト固有のMCPは、プロジェクト設定に置いてコードと一緒にコミットする。チームメンバーがリポジトリをクローンすれば、同じMCP環境が手に入る。
Anthropicは公式Serverを一揃い提供している:
コミュニティにはNotion、Linear、Jira、各種データベースに対応したサードパーティ実装も豊富にある。
| Hooks | MCP | |
|---|---|---|
| トリガー方式 | Claudeが特定のアクションを実行したとき | Claudeが能動的に呼び出す |
| 用途 | 既存の動作を割り込んで拡張する | 新しい能力を追加する |
| 代表的な使い方 | 保存時のフォーマット、コミット前チェック | DBの照会、外部APIの呼び出し |
| 設定の複雑さ | 低 | 中 |
両者は補完関係にある。Hooksは「Claudeがどう仕事をするか」を制御し、MCPは「Claudeが何をできるか」を制御する。
この記事はMCPの概念入門だ。続く記事では以下をカバーする:
すでに接続したいシステムがあるなら、まずMCP Serverリストを確認してみよう。すでに誰かが作っている可能性が高い。