Claude Code は、Anthropic社が提供するCLI型のAIコーディング支援ツールです。Claude Code に MCP(Model Context Protocol)サーバーを接続することで、ターミナル上の Claude Code から、ファイル操作・コード実行といった標準機能に加えて、データベース照会、外部APIの呼び出し、各種SaaSとの連携といった操作が可能になります。
本記事では、Claude Code に MCP サーバーを接続するための設定方法を、概念の整理から実際の接続手順まで解説します。題材として、公式から提供されている天気予報MCPサーバー(米国国立気象庁(National Weather Service)のAPIを呼び出すもの)を使用し、Claude Code のCLIから天気予報を問い合わせるところまで進めます。
なお、Claude Desktop に同じMCPサーバーを接続する方法は、当サイトの記事「WSL上のMCPサーバーをClaude Desktopから利用する方法」で扱っています。Claude Code とは設定方法が異なるため、本記事と読み比べることで両者の違いが確認できます。
目次
Claude Code における MCP の位置づけ
Claude Code に MCP サーバーを接続する手順を扱う前に、設定の全体像を整理します。
Claude Desktop とClaude Codeの設定ファイルの違い
MCP の概念は Claude Desktop と Claude Code で共通ですが、設定の仕組みは異なります。主な違いを以下の表にまとめます。
| 項目 | Claude Desktop | Claude Code |
|---|---|---|
| 設定方法 | 設定ファイル(JSON)を直接編集 | CLI コマンド claude mcp add を使う(直接編集も可能) |
| 設定ファイル名 | claude_desktop_config.json | .claude.json(ユーザー設定).mcp.json(プロジェクト設定) |
| 設定ファイルの場所 (Windows版) | %APPDATA%\Claude\ | %USERPROFILE%\.claude.json(ユーザーディレクトリ) ./.mcp.json(プロジェクトルート) |
| 設定ファイルの場所 (WSL/Linux版) | ー | ~/.claude.json(ユーザーディレクトリ) ./.mcp.json(プロジェクトルート) |
| スコープの概念 | なし(1ファイルに全部記述) | あり(local / project / user の3種類) |
| チーム共有 | 想定されていない | .mcp.json を Git にコミット可能 |
| 対話的な管理 | アプリ再起動が必要 | セッション内で /mcp コマンドが使える |
Claude Desktop ではJSONファイルを直接編集するのが基本ですが、Claude Code では claude mcp add という専用コマンドが用意されています。CLIコマンドを使用すると構文エラーが起きにくく、必要に応じてJSON直接編集もできる構成になっています。
Claude Code のユーザー設定は ~/.claude.json に保存されます。Claude Desktop の 設定ファイル(claude_desktop_config.json )を流用したり、同じファイルを参照したりはできません。両方使用する場合は別々に設定します。
また、Claude Code には .mcp.json というプロジェクト直下に置く設定ファイルがあります。これを Git にコミットすることで、プロジェクトをgit cloneしたチームメンバー全員が同じ MCP 構成を使用できるようになります。Claude Desktop には無い概念です。
WSLとWindowsネイティブの両方をインストールしている場合はそれぞれ設定ファイルの置き場が違うので注意が必要です。片側を変更してももう一方には設定は反映されません。
トランスポートの種類
MCPサーバーとClaude Codeの通信経路をトランスポートと呼びます。Claude Codeは次の3種類をサポートしています。
| トランスポート | 通信方法 | 主な用途 |
|---|---|---|
| stdio | ローカルプロセスで起動し、標準入出力で通信 | ローカルで動作させるMCPサーバー |
| HTTP | リモートサーバーにHTTPで接続 | クラウド上で提供されているMCPサービス |
| SSE | Server-Sent Eventsで通信 | 旧方式(非推奨) |
stdioは、Claude CodeがMCPサーバーを子プロセスとして起動し、その標準入出力を通じてJSON-RPCメッセージをやりとりします。手元で動作させるMCPサーバーは基本的にこの方式を使用します。
httpは、クラウド上で公開されているMCPサーバーに接続するのに使用します。OAuth認証が必要なサービスは、Claude Codeセッション内の/mcpコマンドからブラウザ経由で認証します。
SSEはServer-Sent Eventsベースの旧方式です。HTTPへの移行が進んでおり、新規に設定する場合は基本的にはHTTPを選びます。
設定ファイルの適用範囲(スコープ)
Claude CodeのMCP設定には、設定の保存場所と運用範囲を決めるスコープという概念があります。Claude Desktopにはない概念です。
| スコープ | 保存先 | 適用範囲 | チーム共有 |
|---|---|---|---|
| local (デフォルト) | ~/.claude.json(プロジェクト別エントリ) | 自分のみ、当該プロジェクトのみ | しない |
| project | プロジェクト直下.mcp.json | 全員、当該プロジェクトのみ | する(Gitコミット) |
| user | ~/.claude.json(共通エントリ) | 自分のみ、全プロジェクト | しない |
スコープは後述するclaude mcp addコマンドの--scopeオプションで指定すると、保存先に書かれたファイルに設定が書き込まれます。逆に、ファイルを直接編集した場合は、置いた場所でスコープが決まります。
localは、オプションを指定しない場合のデフォルトです。当該プロジェクトでのみ、自分専用に使用したいMCPサーバーを登録する場合に使用します。検証中の自作MCPサーバーや、個人のトークンで設定したサービス連携などが該当します。
projectは、MCPサーバーをプロジェクトで共有したい場合に使用します。プロジェクト直下に.mcp.jsonを置いてGitにコミットすることで、それをクローンした全員が同じMCP構成を使用できます。
userは、どのプロジェクトを開いても使用できる自分用の設定になります。
基本コマンドの確認
Claude CodeのMCP設定はclaude mcpを用いたコマンド群と、Claude Codeの対話モードで使用する/mcpスラッシュコマンドで管理します。
| コマンド | 役割 |
|---|---|
| claude mcp add | MCPサーバーを追加する |
| claude mcp add-json | JSON形式でMCPサーバーを追加する |
| claude mcp list | 登録済みのMCPサーバーを一覧表示する |
| claude mcp get <name> | 指定したMCPサーバーの詳細を表示する |
| claude mcp remove <name> | 指定したMCPサーバーを削除する |
MCPサーバーの追加
MCPサーバーを追加する基本コマンドです。書式は以下になります。
claude mcp add [オプション] <サーバー名> [-- <起動コマンド> <引数>...]代表的なオプションは以下の通りです。
| オプション | 説明 |
|---|---|
| --transport | トランスポートを指定する(stdio / http / sse) |
| --scope | スコープを指定する(local / project / user) |
| --env | 環境変数を指定する(KEY=VALUE の形式) |
| --header | HTTPトランスポートで使用するヘッダーを指定する |
stdio のサーバーを追加する場合、-- の後ろに起動コマンドを記述します。-- はオプションと起動コマンドの区切り記号で、これがないと後続の引数がオプションとして解釈されてしまうため必須です。
claude mcp add --transport stdio <サーバー名> -- <起動コマンド> <引数>登録済みのMCPサーバーの一覧表示
登録済みのMCPサーバーを一覧表示します。サーバー名、トランスポート、接続状態が確認できます。設定変更後の確認やトラブルシューティングで頻繁に使用します。
claude mcp listMCPサーバーの詳細設定の確認
指定したMCPサーバーの詳細設定を表示します。起動コマンド、環境変数、スコープなどを確認できます。
claude mcp get <サーバー名>MCPサーバーの削除
指定したMCPサーバーを削除します。同名のサーバーが複数のスコープに存在する場合は、--scope オプションでスコープ指定が必要になります。
claude mcp remove <サーバー名>対話モードでのMCPサーバーの操作
Claude Codeの対話モードで実行するコマンドです。Claude Codeを起動した状態で /mcp と入力すると、接続中のMCPサーバーの一覧と状態が表示されます。
/mcp/mcp から実行できる主な操作は以下になります。
- 接続中のMCPサーバーの状態確認
- サーバーが提供しているツールの一覧表示
- クラッシュしたサーバーの再起動
- OAuth認証が必要なサーバーへの対話的認証
天気予報MCPサーバーを接続する
実際にClaude Codeに天気予報MCPサーバーを接続します。題材として、米国国立気象庁(National Weather Service : NWS)のAPIを呼び出す公式サンプルのMCPサーバーを使用します。Pythonで記述されており、uvを用いて起動します。
サンプルコードの準備
サンプルコードはgithubで公開されています。
https://github.com/modelcontextprotocol/quickstart-resources
当サイトの「WSL上のMCPサーバーをClaude Desktopから利用する方法」と同じサンプルコードを使用するため、すでにクローン済みの場合はそのまま流用できます。
gitコマンドでサンプルプログラムをダウンロードします。本記事ではホームディレクトリ下に配置するものとします。
git clone --filter=blob:none https://github.com/modelcontextprotocol/quickstart-resources.git--filter=blob:noneは部分クローンのオプションで、ファイルの中身を遅延ダウンロードすることで初回クローンを高速化します。Windowsネイティブで実行する場合も同じコマンドで取得できます。
リポジトリにはrust、typescript、python、goなど複数の言語のサンプルが含まれています。本記事ではpython版を使用します。該当ディレクトリに移動します。
cd quickstart-resources/weather-server-python/Pythonの管理にはuvを使用します。uvをインストールしていない場合は、当サイトの「uvのインストールと使い方(pyenvよりも高速)- Python環境構築」を参照してください。次のコマンドで依存パッケージをインストールします。
uv syncこれでMCPサーバーの準備は完了です。サーバーは、get_alerts(米国の州コードから気象警報を取得)とget_forecast(緯度経度から天気予報を取得)の2つのツールを提供します。
サーバー単体の動作確認(任意)
MCPサーバー単体での動作確認を行う場合は、以下のコマンドで起動できます。
uv run weather.py正常に起動した場合、標準入出力を介してJSON-RPCメッセージを待ち受ける状態になります(入力待ちになるだけで何も表示されません)。確認後はCtrl+Cで終了させてください。
MCPサーバーの登録
claude mcp addコマンドでClaude CodeにMCPサーバーを登録します。WSLとWindowsネイティブで手順が異なります。
方法1:WSLの場合
WSLのUbuntu上で、weather-server-pythonディレクトリの絶対パスを確認します。
cd ~/quickstart-resources/weather-server-python/
pwd以下のような出力が得られます。
/home/<ユーザー名>/quickstart-resources/weather-server-pythonclaude mcp addコマンドでサーバーを登録します。
claude mcp add --transport stdio weather -- uv --directory /home/<ユーザー名>/quickstart-resources/weather-server-python run weather.pyオプションの意味は以下の通りです。
| 要素 | 意味 |
|---|---|
| --transport stdio | トランスポートとしてstdioを指定 |
| weather | 登録するサーバー名 |
| -- | オプションと起動コマンドの区切り |
| uv --directory ... run weather.py | 起動コマンド |
uvの--directoryオプションは、対象のプロジェクトディレクトリを明示する指定です。Claude CodeはMCPサーバーを子プロセスとして起動しますが、起動時のカレントディレクトリはClaude Codeを実行したディレクトリになるため、--directoryで明示することで、どのディレクトリからClaude Codeを起動しても正しく動作します。
スコープを指定しなかった場合のデフォルトはlocalです。当該プロジェクトでのみ、自分専用に使用する設定になります。
方法2:Windowsネイティブの場合
コマンドプロンプトまたはPowerShellで、weather-server-pythonディレクトリの絶対パスを確認します。
コマンドプロンプトの場合:
cd %USERPROFILE%\quickstart-resources\weather-server-python
echo %CD%
PowerShellの場合:
cd $env:USERPROFILE\quickstart-resources\weather-server-python
pwd以下のような出力が得られます。
C:\Users\<ユーザー名>\quickstart-resources\weather-server-pythonclaude mcp addコマンドでサーバーを登録します。
claude mcp add --transport stdio weather -- uv --directory C:\Users\<ユーザー名>\quickstart-resources\weather-server-python run weather.py環境によっては、uv や npx などのコマンドが Claude Code から直接見つからず、サーバーの起動に失敗するケースがあります。その場合は、起動コマンドの先頭に cmd /c を挟むと解決することがあります。
PowerShellで実行する場合、パスにバックスラッシュを含むため、必要に応じて引用符で囲みます。
claude mcp add --transport stdio weather -- uv --directory "C:\Users\<ユーザー名>\quickstart-resources\weather-server-python" run weather.py動作確認
登録が完了したら、サーバーが正しく認識されているかを確認します。以下の手順はWSLとWindowsネイティブで共通です。
方法1:CLIでの確認
登録内容を確認するために、MCPサーバーの一覧を表示します。
claude mcp list以下のようにweatherサーバーが表示されれば登録は成功しています。
weather: uv --directory ... run weather.py - ✓ Connected詳細を確認する場合は次のコマンドを使用します。
claude mcp get weather起動コマンド、スコープ、トランスポートなどが表示されます。
方法2:対話モードでの確認
プロジェクトディレクトリでClaude Codeを起動します。
claude対話モードで/mcpコマンドを実行します。
/mcp接続中のMCPサーバーの一覧と、提供されているツールが表示されます。weatherサーバーがconnected状態になっており、get_alertsとget_forecastの2つのツールが認識されていれば、接続は成功です。
方法3:プロンプトからの動作確認
実際にツールを呼び出して動作を確認します。たとえば、以下のように尋ねてみます。
カリフォルニア州の現在の気象警報を教えてくださいClaude Codeがget_alertsツールを呼び出し、実行許可を求めるプロンプトを表示します。許可すると、APIから取得した警報情報が返ります。

緯度経度を指定した予報を取得する場合は以下のように尋ねます。
緯度37.77、経度-122.42の地点の天気予報を教えてくださいget_forecastツールが呼び出され、予報が返ります。

まとめ
本記事では、Claude CodeにMCPサーバーを接続する手順を、概念の整理から実際の接続まで解説しました。要点は以下の通りです。
- Claude CodeのMCP設定は、
claude mcp addというCLIコマンドで管理します。 - 通信方式(トランスポート)にはstdio / HTTP / SSEの3種類があり、ローカルで動作させるサーバーはstdioを使用します。
- 設定の適用範囲(スコープ)にはlocal / project / userの3種類があり、用途に応じて使い分けます。
- 天気予報MCPサーバーは、
claude mcp add --transport stdioコマンドで登録し、claude mcp listおよび/mcpで接続状態を確認できます。 - Windowsネイティブで
uvやnpxなどのコマンドが Claude Code から見つからず起動に失敗する場合は、起動コマンドの先頭にcmd /cを挟むと解決することがあります。