はじめに
Model Context Protocol(MCP)は、AnthropicがオープンソースでリリースしたAIと外部システムを接続するためのプロトコルです。MCPサーバーを設定することで、Claude DesktopやClaude Codeから外部ツール(GitHub、ファイルシステム、データベースなど)に直接アクセスできるようになります。
この記事では、Windows環境でのClaude DesktopとClaude Code両方のMCP設定方法を、試行錯誤した経験をもとに解説します。
目次
MCPとは
MCP(Model Context Protocol)は、AIアシスタントが外部のデータソースやツールと安全に通信するための標準プロトコルです。MCPサーバーを介して、例として以下のようなことが可能になります。
- ローカルファイルシステムへのアクセス
- GitHubリポジトリの操作
- データベースへのクエリ実行
- ブラウザ操作の自動化
- その他カスタムツールの統合
サーバーと言っても、インストールや設定するのは基本的にはローカルPC上です。GithubリモートMCPのようにリモートで設定できるものもありますが、現時点であまり理解できておらず、ここでお話するのはローカル限定です。
https://dev.classmethod.jp/articles/github-remote-mcp-ga/
Claude DesktopのMCP設定
設定ファイルの場所
Claude Desktopの設定ファイルは以下の場所にあります。
Windows:
%APPDATA%\Claude\claude_desktop_config.json
(通常は C:\Users\[ユーザー名]\AppData\Roaming\Claude\)
基本的な設定構造
{
"mcpServers": {
"サーバー名1": {
"command": "実行コマンド",
"args": ["引数1", "引数2"],
"env": {
"環境変数名": "値"
}
},
"サーバー名2": {
"command": "実行コマンド",
"args": ["引数1", "引数2"],
"env": {
"環境変数名": "値"
}
}・・・(複数あれば,でつなげて記述)
}
}
使いたいMCPの種類ごとにcommandやargsを記述します。
同じサービス(github、ファイルシステムなど)でも、複数のMCPが公開されています。公式のMCPであったり、どこか誰かの有志が公開しているものだったりです。
インターネットやAIで使いたいMCPについて調べて設定することになります。
説明しているサイトでは「"command": "npx"・・・」のように書いているところが多いですが、Windowsの場合それではうまく起動できないものがあります。
うまく行かない場合は以下のように読み替えて記述します。
{
"mcpServers": {
"サーバー名": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
引数1,
・・・
],
"env": {
"環境変数名": "値"
}
}
}
}
ポイントは"command"に"npx"ではなく、"cmd"と記述し、"args"に"/c","npx","-y",・・・と記述する点です。
Windowsではnpxで起動するMCPはコマンドプロンプト経由で起動するようにしないとうまく行かないようです。pythonなどで書かれたMCPは大丈夫みたいです。
("command": "python"や"command": "uvx")
また、パスを記述する際の区切り文字は「\\」です。「\」1個だけだと正常に動作しません。
以下は私の設定例です。
設定例:
1. ファイルシステムサーバー
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"C:\\Temp",
"C:\\Users\\username"
]
}
}
}
2. GitHubサーバー
{
"mcpServers": {
"github": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-github"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
}
}
}
}
3. Playwrightサーバー(ブラウザ自動化)
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"-y",
"@playwright/mcp@latest",
"--vision"
]
}
}
}
Windowsでの注意点:npxの問題
上記の例は起動するたびにインターネットで最新のバージョンを確認して起動します。事前にMCPサーバーをインストールする必要はありません。
しかし、一部のMCPでうまく動作しないものがありました。
その場合は、以下のように node.exeとインストールされているMCPのフルパスを指定する方法が確実です。
{
"mcpServers": {
"filesystem": {
"command": "C:\\Program Files\\nodejs\\node.exe",
"args": [
"C:\\Users\\username\\AppData\\Roaming\\npm\\node_modules\\@modelcontextprotocol\\server-filesystem\\dist\\index.js",
"C:\\Temp",
"C:\\Users\\username"
]
}
}
}
MCPサーバーのインストール方法
上記のフルパスを記述する方法の前提として、該当のMCPを先に別途インストールしておく必要があります。
手動でインストールする場合は以下のようにコマンドを使用します。詳しいことは各MCPの公式サイトやネットから情報を調べてください。
# 例:ファイルシステムサーバーをグローバルインストール
npm install -g @modelcontextprotocol/server-filesystem
Claude CodeのMCP設定
Claude Code(CLI版)の設定は、Claude Desktopとは異なる場所・形式で管理されます。
Windows:
プロジェクト\.mcp.json
Claude Codeが起動する際、起動場所(プロジェクトのルートディレクトリ)直下にある.mcp.jsonを読んでMCPを起動します。
ローカルPC全体のグローバル設定もできますが、私はプロジェクト単位のルートディレクトリごとに.mcp.jsonを置いてます。プロジェクトによっては使わないMCPがあるので、その定義だけ消します。ファイルをコピーするだけなので手間ではありません。
また、ファイル名を明示的に指定してClaude Codeを起動することもできます。
claude --mcp-config C:\path\to\your\custom-mcp.json
.mcp.jsonの配置場所(スコープ)
Claude Codeには3つのスコープがあります。
| スコープ | 保存場所 | 用途 | 追加コマンド |
|---|---|---|---|
| local | プロジェクト内ユーザー設定 | 個人用、機密情報含む | claude mcp add |
| project | プロジェクト/.mcp.json |
チーム共有用(git管理) | claude mcp add --scope project |
| user | ユーザー設定内 | 全プロジェクト共通 | claude mcp add --scope user |
スコープの優先順位:
local > project > user
.mcp.jsonの記述方法
Claude Desktopの定義ファイルと同じです。
ファイル名が違うだけです。
MacOS、LinuxではClaude Desktopの定義ファイルの定義ファイルからインポートするコマンドが用意されていますが、Windowsでは使えません。ただ定義ファイルをコピーしてリネームするだけなのでなくても大丈夫です。
MCPサーバーの追加コマンド
MCPの定義はコマンドで追加することもできます。追加先のスコープに応じて定義ファイルに記述が追加されます。(私はわかりにくいので使ったことがないです)
# プロジェクトスコープで追加(チーム共有用)
claude mcp add github --scope project -- npx -y @modelcontextprotocol/server-github
# ユーザースコープで追加(全プロジェクト共通)
claude mcp add github --scope user -- npx -y @modelcontextprotocol/server-github
# 環境変数を指定して追加
claude mcp add github --scope user \
--env GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxxx \
-- npx -y @modelcontextprotocol/server-github
Windowsでのコマンド例
先に記述した、Windowsでnpxを使う際の cmd /cの件は以下のようになります。
claude mcp add github --scope user -- cmd /c npx -y @modelcontextprotocol/server-github
補足 Claude Code設定ファイルでのMCP有効・無効設定
Claude Codeには設定ファイル(settings.json、settings.local.json)が存在し、Claude Codeに実行させるコマンドの許可・不許可を設定できます。その設定ファイルの中でMCPの有効・無効も設定できます。設定ファイルにも複数のスコープで管理できます。
| スコープ | ファイルパス | 用途 |
|---|---|---|
| ユーザー | ~/.claude/settings.json |
全プロジェクト共通の設定 |
| プロジェクト共有 | プロジェクト/.claude/settings.json |
チーム共有用(git管理対象) |
| プロジェクトローカル | プロジェクト/.claude/settings.local.json |
個人用(gitignore対象) |
「ユーザー」というのが名前からイメージしづらかったですが、PC上に存在しているプロジェクト全体の設定になります。
MCPサーバーを有効化する設定
上記の設定ファイル内でMCPサーバー有効・無効の設定が定義できます。
{
"permissions": {
"allow": [],
"deny": [],
"ask": []
},
"enabledMcpjsonServers": ["memory", "github"], ←ここから下
"disabledMcpjsonServers": ["filesystem"],
"enableAllProjectMcpServers": true
}
| 設定 | 説明 |
|---|---|
enabledMcpjsonServers |
個別に有効化するサーバーのリスト |
disabledMcpjsonServers |
無効化するサーバーのリスト |
enableAllProjectMcpServers |
trueで .mcp.jsonの全MCPサーバーを自動有効化 |
.mcp.jsonとの組み合わせで使用できるMCPが決定されるので管理が複雑になります。
使用する可能性のある定義を全て記述した.mcp.jsonを置いて、この定義で調整するという使い方になるのではないかと思います。
私はこの定義ファイルを使用せず、プロジェクトごとに.mcp.jsonの中を書き換えてます。
※本来、.mcp.jsonだけあればMCPサーバーは起動しますが、あるプロジェクトでは起動しないことがありました。settings.jsonを用意して「"enableAllProjectMcpServers": true」とすることで起動しました。その後、環境を作り直したり試行錯誤でいつの間にかSetting.jsonがなくても起動しました。原因はいまだにわかりません。
※Claude Codeは「.mcp.json」というファイル名を自動的に読み込みますが、違うファイル名で明示的に指定したい場合は以下のオプションを付けます。
claude --mcp-config C:\path\to\your\custom-mcp.json
設定ファイルの違いと注意点
Claude Desktop vs Claude Code
| 項目 | Claude Desktop | Claude Code |
|---|---|---|
| 設定ファイル | claude_desktop_config.json |
.mcp.json |
| 場所 | %APPDATA%\Claude\ |
プロジェクトルート or ~\.claude\
|
| 有効化設定 | 不要(自動有効) |
settings.jsonで有効・無効化が調整可能 |
| スコープ | なし(グローバル) | local/project/user |
トラブルシューティング
MCPサーバーが認識されない場合
Claude Desktop
- Claude Desktopを完全に終了して再起動(タスクマネージャーでプロセス終了が確実)
- 設定ファイルのJSON構文をチェック(カンマの過不足など)
- パスの区切り文字が
\\でエスケープされているか確認
Claude Code
- Claude Codeを終了して再起動
-
claude mcp listで登録済みサーバーを確認 - Claude Codeを起動して
/mcpコマンドでMCPの状態を確認 -
.claude/settings.jsonまたはsettings.local.jsonが存在していないか確認 - 上記ファイルが存在する場合、
enableAllProjectMcpServers、enabledMcpjsonServers、disabledMcpjsonServersが設定されているか確認
Claude CodeのMCP関連コマンド
# MCPサーバーの一覧表示
claude mcp list
# MCPサーバーの追加
claude mcp add サーバー名 --scope user -- コマンド
# MCPサーバーの削除
claude mcp remove サーバー名
# MCPサーバーの詳細確認
claude mcp get サーバー名
# プロジェクトの承認選択をリセット
claude mcp reset-project-choices
まとめ
MCPサーバーの設定は、Claude DesktopとClaude Codeで異なる点が多く、最初は混乱しやすいです。ポイントをまとめると:
-
Claude Desktop:
claude_desktop_config.jsonにMCPサーバーを定義 -
Claude Code:
.mcp.jsonでMCPサーバーを定義 (+αとしてsettings.jsonまたはsettings.local.jsonで有効・無効を設定) -
Windowsではパスのエスケープや
cmd /cラッパーに注意 - 両方で使いたい場合は別々に設定が必要
設定がうまくいけば、ClaudeからGitHub操作やファイル操作、データベースクエリなど、強力な機能を直接利用できるようになります。ぜひ活用してみてください!