Claude MCP設定の手順|つながらない時の直し方
業務効率化支援を行う「Ai-Raku(アイラク)」代表。国立大学でAIの研究を行い、ITコンサル・ウェブコンサルを経て独立。官公庁向けの業務効率化や上場企業の支援等を経て、中小企業の現場に定着するAI活用を企画から運用まで一気通貫で支援している。

「MCPを設定すればClaudeが社内のファイルやサービスを直接扱えるようになる」。そこまでは分かったものの、設定ファイルをどこに置けばいいのかで止まってしまう——この段階でつまずく方が非常に多いです。
さらに厄介なのが、JSONを書いて保存したのに何も起きないパターンです。エラーメッセージも出ず、Claudeの画面にはサーバーが現れない。サーバー自体はコマンドから起動できるのに、Claudeからだけ見えない。原因の見当がつかないまま、半日溶かしてしまうことがあります。
この記事は、MCPの概念を説明する記事ではありません。設定ファイルの正確な置き場所、JSONの書式、コピーしてそのまま使える完成例、そしてつながらないときの症状別の切り分けという、手を動かす部分だけに絞ってまとめました。記載はすべて2026年8月時点のAnthropicおよびModel Context Protocol公式ドキュメントの原文に合わせています。
MCPそのものの考え方から知りたい方はMCPとは|AIと自社データをつなぐ仕組みを解説を、どのサーバーを選ぶかの判断基準はMCPサーバーとは|できることと導入手順を先にお読みください。
- Claude DesktopとClaude Codeで設定ファイルの場所が違うこと
- claude_desktop_config.jsonの正確なパス(Windows/Mac)
- コピーしてそのまま使えるJSONの完成例
- Windowsのパス表記でつまずかない書き方
- つながらないときの症状別の原因と対処の一覧
- ログの場所と、手動でサーバーを起動して切り分ける方法
- 社内で使わせてよいかを判断する基準と、管理者が縛る方法
- 設定から定着までのモデルケース(試算)
結論|設定は3ステップで終わる
先に結論を書きます。MCPの設定は、突き詰めると次の3ステップしかありません。
- 設定ファイルを、正しい場所に置く
- 決まった書式でサーバーを1つ書く
- アプリを完全に再起動して、接続状態を確認する
つまずきの大半は、この3つのどこかです。特に多いのが1と3で、「書式は合っているのに場所が違う」「保存はしたが再起動していない」というケースが目立ちます。順番に潰していけば、必ずどこかに当たります。
まず「どのClaude」かを決める
最初に決めるのは、どのアプリにMCPをつなぐかです。ここを取り違えると、正しいJSONを書いても永久に反映されません。名前が似ているため混同されがちですが、設定ファイルは完全に別物です。
| アプリ | どんなもの | 設定ファイル |
|---|---|---|
| Claude Desktop | チャット形式のデスクトップアプリ。非エンジニアが使うのはこちら | claude_desktop_config.json |
| Claude Code | ターミナルで動く開発向けのツール | .mcp.json または .claude.json |
| Claude(ブラウザ版) | claude.ai。設定画面からコネクタとして追加する | ファイル編集は不要 |
Claude Code公式ドキュメントも、Claude Desktopを「Claude Codeとは別のアプリ」として明確に区別しています(出典:Claude Code公式ドキュメント「Connect to MCP servers」)。事務職の方に使わせるならClaude Desktop、開発や自動化を回すならClaude Code、と考えて差し支えありません。
3ステップの全体像
アプリが決まったら、実作業は次の流れです。Claude Desktopの場合はファイルを直接編集し、Claude Codeの場合はコマンドで追加するのが基本になります。
- ステップ1|設定ファイルを開く(Claude Desktopは設定画面のボタンから開ける)
- ステップ2|mcpServersという決まったキーの下に、サーバーを1つ書く
- ステップ3|アプリを完全に終了して起動し直し、接続状態を確認する
最初の1つがつながれば、2つ目以降はカンマで区切って足すだけです。逆に言えば、いきなり3つ書かないこと。1つ目がつながらない状態で複数書くと、どれが原因か分からなくなります。
所要時間と必要なもの
公式が入門用に案内しているファイル操作のサーバーであれば、慣れていない方でも30分から1時間が目安です。前提として必要なものは次の2つだけです。
- Claude Desktop(最新版)|macOSとWindowsで提供されています。既に入れている場合はメニューから更新を確認してください
- Node.js|多くのMCPサーバーがNode.jsを必要とします。ターミナルまたはコマンドプロンプトで node –version と入力し、バージョンが表示されれば入っています
Node.jsが入っていない場合は、公式サイトから安定版(LTS)を導入するよう案内されています(出典:Model Context Protocol公式ドキュメント「Connect to local MCP servers」/Node.js公式ダウンロードページ)。会社支給のパソコンでソフトの導入に申請が必要な場合は、ここで先に手続きを済ませておくと待ち時間が減ります。
設定ファイルはどこにある
ここが最大のつまずきポイントです。パスを一字でも間違えると、Claudeはそのファイルを読みません。そしてエラーも出ません。以下は公式ドキュメントの記載そのままです。
Claude Desktopの場所
Claude Desktopの設定ファイルは claude_desktop_config.json という名前で、次の場所にあります。
| OS | 設定ファイルのパス |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
出典:Model Context Protocol公式ドキュメント「Connect to local MCP servers」
Windowsの %APPDATA% は環境変数で、実体は多くの場合 C:\Users\(ユーザー名)\AppData\Roaming です。エクスプローラーのアドレス欄に %APPDATA%\Claude と入力すれば、そのフォルダに直接飛べます。AppDataは既定では隠しフォルダなので、パスを打ち込んで開くほうが確実です。
このファイルは、最初は存在しないことがあります。ゼロから手で作るより、後述する設定画面の「Edit Config」ボタンから開くほうが安全です。ボタンを押すと、ファイルが無ければ新規作成され、あれば既存のものが開きます。
Claude Codeの場所
Claude Codeは、設定を書く範囲(スコープ)によって保存先が2種類に分かれます。
| スコープ | 保存先 | 使える範囲 |
|---|---|---|
| local(既定) | ~/.claude.json のうち、そのプロジェクトの項目 | 自分だけ・そのプロジェクトだけ |
| project | プロジェクトのルートに置く .mcp.json | そのプロジェクトを開く全員 |
| user | ~/.claude.json の最上位の mcpServers キー | 自分だけ・全プロジェクト |
出典:Claude Code公式ドキュメント「Connect Claude Code to tools via MCP」
Windowsでは ~/.claude.json は %USERPROFILE%\.claude.json、つまり C:\Users\(ユーザー名)\.claude.json になります。これも公式ドキュメントに明記されています。
存在しないパスに注意
ここは実務で本当に効く情報です。Claude Codeが読まないパスが、公式ドキュメントに名指しで列挙されています。
- ~/.claude/.mcp.json
- ~/.claude/config/mcp.json
- ~/.claude/mcp.json
- %APPDATA%\Claude\mcp.json
いずれも「それっぽい」場所ですが、Claude Codeは読み込みません(出典:Claude Code公式ドキュメント「Connect to MCP servers」)。加えて、プロジェクト用の .mcp.json は .claude フォルダの中ではなく、リポジトリのルートに置く必要があります。また settings.json に mcpServers キーを書いても読まれません。この2点も公式が明記しています(出典:Claude Code公式ドキュメント「Debug your configuration」)。
設定が反映されないとき、書式を疑う前にまず場所を疑ってください。実務では、書式の誤りよりも場所の誤りのほうが圧倒的に多いのが実感です。
Claude Desktopの設定手順
ここからは実作業です。公式の入門手順にあわせて、ファイル操作のサーバーをつなぐ流れで説明します。
設定画面からファイルを開く
ファイルをエクスプローラーやFinderから探す必要はありません。アプリの設定画面から開けます。
- OSのメニューバー(Windowsは左上のメニュー)から「Settings」を開く。Claudeのウィンドウ内にあるアカウント設定とは別画面です
- 左側の「Developer」タブを選ぶ
- 「Edit Config」ボタンを押す
この操作で、設定ファイルが無ければ作成され、あれば開きます(出典:Model Context Protocol公式ドキュメント「Connect to local MCP servers」)。ここが分かるだけで、パス探しの手間はほぼ消えます。
JSONを書き込む
開いたファイルの中身を、次の形に置き換えます。これはWindows用の完成例です。(ユーザー名)の部分を自分のアカウント名に書き換えるだけで動きます。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"C:\\Users\\username\\Desktop",
"C:\\Users\\username\\Downloads"
]
}
}
}
macOSの場合は同じ構造で、パスの書き方だけが変わります。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop",
"/Users/username/Downloads"
]
}
}
}
各項目の意味は次のとおりです。
- “filesystem”|Claude Desktop上に表示される名前。自分で決めてよい
- “command”: “npx”|Node.jsのnpxコマンドでサーバーを起動する指定
- “-y”|パッケージの導入確認を自動で通す指定
- “@modelcontextprotocol/server-filesystem”|起動するサーバーのパッケージ名
- 残りの引数|そのサーバーがアクセスしてよいフォルダ
ここで重要なのが最後の項目です。公式ドキュメントには「Claudeに読み書きさせて構わないフォルダだけを指定してください。サーバーはあなたのユーザー権限で動くため、あなたが手作業でできるファイル操作はすべて実行できます」という趣旨の注意が書かれています。最初はデスクトップや作業用フォルダなど、消えても困らない範囲から始めてください。
完全に終了して再起動
保存したら、Claude Desktopを完全に終了してから起動し直します。ここを飛ばして反映されないと悩む方が非常に多い部分です。
公式の解説にも「ウィンドウを閉じるだけでは不十分で、アプリを完全に終了して開き直す必要がある」という趣旨が明記されています(出典:Model Context Protocol公式ドキュメント「Debugging」)。Windowsではタスクトレイに常駐している場合があるので、そちらからも終了させてください。
接続できたかの確認
再起動したら、会話の入力欄の左下にある「Add files, connectors, and more」の表示をクリックします。「Connectors」にカーソルを合わせ、「Manage connectors」を選ぶと、接続済みのサーバーと、そのサーバーが提供しているツールの一覧が表示されます。
ここに設定した名前(例では filesystem)が出ていれば成功です。出ていなければ、後述の切り分け手順に進みます。
接続後、実際に「デスクトップにあるファイルの一覧を教えて」と聞いてみてください。Claudeは操作を実行する前に必ず承認を求めます。この承認画面が出ることが、権限が正しく効いている証拠でもあります。
設定ファイルの書き方
次は書式です。MCPの設定ファイルは、どのアプリでもほぼ同じ構造をしています。ここを理解しておくと、初めて見るサーバーの説明書きでも自分で書けるようになります。
mcpServersの基本形
いちばん外側に mcpServers という決まったキーがあり、その中にサーバーを名前ごとに並べます。サーバーの中身は、大きく2種類に分かれます。
| 種類 | 必要な項目 | どんなとき |
|---|---|---|
| stdio(手元で起動) | command と args | 自分のパソコン上でサーバーのプログラムを動かす |
| http(リモート接続) | type と url | 提供元が運用しているサーバーにつなぐ |
Claude Codeの公式ドキュメントには、この2種類を1つのファイルに書いた例がそのまま載っています。
{
"mcpServers": {
"claude-code-docs": {
"type": "http",
"url": "https://code.claude.com/docs/mcp"
},
"playwright": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
}
}
}
出典:Claude Code公式ドキュメント「Connect to MCP servers」
ここで見落としやすい仕様が1つあります。url を書いたのに type を書き忘れると、設定エラーになります。Claude Codeは type の無い項目をstdioサーバーとして読むため、そのサーバーを飛ばし、type を追加するよう警告を出します。リモートサーバーを書くときは、type と url をセットで書いてください。
なお type には streamable-http という表記も使えます。MCPの仕様書ではこの名前が使われているため、提供元のドキュメントからコピーした設定がそのまま動くように、http の別名として受け付ける仕様です。
Windowsのパスの書き方
Windowsで最も事故が多いのがここです。JSONの中では、バックスラッシュを2つ重ねて書きます。
- 正しい:“C:\\Users\\username\\Desktop”
- 誤り:“C:\Users\username\Desktop”
これはJSONの仕様で、バックスラッシュが特別な意味を持つ文字だからです。公式のWindows向け設定例も、すべて2つ重ねた表記になっています。エクスプローラーからコピーしたパスをそのまま貼ると1つのままなので、貼った後に必ず置換してください。
もう1つ、公式が繰り返し警告しているのが相対パスの禁止です。MCPクライアントがサーバーを起動するとき、作業ディレクトリが未定義になることがある(macOSではルートになる場合がある)ため、./data のような書き方は動作が安定しません。設定ファイルにも .env にも、必ず絶対パスを書いてください(出典:Model Context Protocol公式ドキュメント「Debugging」)。
Claude Codeでも同じ注意があり、command や args に相対パスを書くと、.mcp.json のある場所ではなくClaude Codeを起動したディレクトリを基準に解決されるため、起動する場所によって失敗します。npx や uvx のようにPATHが通っている実行ファイルはそのままで問題ありません。
環境変数とAPIキー
APIキーが必要なサーバーでは、env という項目で環境変数を渡します。公式ドキュメントによると、stdioで起動されたMCPサーバーは環境変数の一部しか自動で引き継がないため、必要なものは明示的に書く必要があります。
{
"mcpServers": {
"myserver": {
"command": "mcp-server-myapp",
"env": {
"MYAPP_API_KEY": "some_key"
}
}
}
}
出典:Model Context Protocol公式ドキュメント「Debugging」
ただし、チームで共有するファイルにキーを直接書くのは避けてください。Claude Codeの .mcp.json では環境変数の展開に対応しており、次の2つの書き方が使えます。
- ${VAR}|環境変数VARの値に置き換える
- ${VAR:-default}|VARがあればその値、無ければdefaultを使う
展開できる場所は command、args、env、url、headers です。参照した環境変数が設定されておらず既定値も無い場合、設定自体は読み込まれますが、claude mcp list の出力に警告が出て、${VAR} という文字がそのまま使われます(出典:Claude Code公式ドキュメント「Connect Claude Code to tools via MCP」)。
記法ミスの早見表
JSONは1文字違うだけで全体が読めなくなります。実務でよく見る記法ミスを、症状とセットでまとめました。
| ミス | 症状 | 直し方 |
|---|---|---|
| 最後の項目の後にカンマが残っている | サーバーが1つも出てこない | 閉じ括弧の直前のカンマを削除する |
| サーバー間のカンマが抜けている | 同上 | サーバーの区切りにカンマを入れる |
| 引用符が全角になっている | 同上 | 半角の二重引用符に直す |
| バックスラッシュが1つ | パスが解釈されず起動に失敗 | 2つ重ねる |
| url があるのに type が無い | そのサーバーだけ読み飛ばされる | “type”: “http” を追加する |
| トークンの末尾に改行や空白が混入 | 認証に失敗する | claude mcp list の警告を見て前後の空白を削除 |
最後の項目は見た目では分かりません。Claude Codeはcommand、url、args、env、headers の値やキー名に前後の空白があると警告を出す仕様になっています。トークンを貼り付けたときに末尾の改行が入るのが典型例で、値そのものは表示せず、どの項目に空白があるかだけを教えてくれます。空白は自動では取り除かれないので、自分で直す必要があります。
Claude Codeでの設定手順
Claude Codeでは、JSONを手で書かずにコマンドで追加するのが基本です。Claude Codeそのものの導入はClaude Codeの始め方、何ができるかはClaude Codeでできることで扱っています。
コマンドで追加する
リモートサーバーとローカルサーバーで書き方が変わります。以下は公式ドキュメントの例です。
- claude mcp add –transport http (名前) (URL)|リモートサーバーを追加する
- claude mcp add (名前) — npx -y (パッケージ名)|手元で動くサーバーを追加する
- claude mcp add-json (名前) ‘(JSON)’|JSONをそのまま渡して追加する
ローカルサーバーで重要なのが —(ハイフン2つ)です。これはClaude Code自身のオプションと、サーバーを起動するコマンドを区切る記号で、これより後ろはすべてそのままサーバーに渡されます。この区切りを省くと、サーバー側のオプションをClaude Codeが自分のオプションとして解釈しようとして失敗します。
また、環境変数を渡す –env の直後にサーバー名を置くと、CLIがその名前を環境変数の指定として読んでしまいます。–env とサーバー名の間には、必ず別のオプションを挟んでください(出典:Claude Code公式ドキュメント「Connect Claude Code to tools via MCP」)。
スコープ3種類の使い分け
–scope オプションで保存先が変わります。ここは管理上いちばん重要な判断です。
- local(既定)|そのプロジェクトで自分だけ。試す段階や、個人の認証情報を含む場合
- project|.mcp.json に書かれ、バージョン管理を通じてチーム全員が同じ接続を使える
- user|自分の全プロジェクトで使える。自分専用の便利ツール向け
スコープは追加時に固定されます。後から変更するには、いったん削除して別のスコープで追加し直す必要があります。公式にもその手順が明記されています。
安全面の仕様として、.mcp.json に書かれたプロジェクトスコープのサーバーは、対話セッションで承認を求められます。誰かがリポジトリに追加した接続が、無断で全員に有効化されることはありません。承認の選択をやり直したい場合は claude mcp reset-project-choices を実行します。
.mcp.jsonを直接書く
チームで共有する設定は、コマンドではなくファイルを直接書いたほうが管理しやすい場面があります。ファイルはプロジェクトのルートに置き、次の形式で書きます。
{
"mcpServers": {
"api-server": {
"type": "http",
"url": "${API_BASE_URL:-https://api.example.com}/mcp",
"headers": {
"Authorization": "Bearer ${API_KEY}"
}
}
}
}
出典:Claude Code公式ドキュメント「Connect Claude Code to tools via MCP」
この書き方であれば、ファイルをバージョン管理に含めても、実際のキーは各自の環境変数から読み込まれます。チームで共有しつつ、認証情報だけは配布しない、という運用ができます。
保存した後は、セッションを開始し直してください。Claude Codeは .mcp.json をセッション開始時に読み込むため、起動中に編集しても反映されません。
接続状態の見方
追加したら状態を確認します。ターミナルからは claude mcp list、セッション内からは /mcp です。表示される状態は公式ドキュメントに一覧があります。
| 表示 | 意味 |
|---|---|
| Connected | 正常。使える状態 |
| Connected, tools fetch failed | 接続はできたが、ツール一覧を取得できなかった |
| Needs authentication | 到達できるが、ブラウザでのログインまたはトークンが必要 |
| Failed to connect | サーバーが応答しなかった |
| Connection error | 接続処理でエラーが発生した |
| Pending approval | プロジェクトスコープの承認がまだ |
出典:Claude Code公式ドキュメント「Connect to MCP servers」
ここで覚えておきたいのが、「追加できた」と「つながった」は別だということです。claude mcp add が成功を表示するのは設定が書き込まれたという意味であって、接続の成否ではありません。必ず一覧で状態を確認してください。
リモートサーバーの接続
提供元が運用しているサーバーにつなぐ場合、手元で何かを起動する必要がないため、中小企業ではこちらのほうが扱いやすい場面が多くあります。
HTTPで追加する
Claude Codeであれば1行です。
claude mcp add --transport http (サーバー名) https://(提供元のURL)/mcp
Claude Desktopやブラウザ版のClaudeでは、設定画面の「Connectors」から「カスタムコネクタを追加」を選び、提供元から案内されたURLを入力します。URLはhttps://から始まる完全な形で、パス部分まで含めて入力してください(出典:Model Context Protocol公式ドキュメント「Connect to remote MCP Servers」)。
ブラウザ認証を通す
多くのサービスはログインが必要です。追加した直後は「認証が必要」という状態になりますが、これは正常です。
Claude Codeでは、セッション内で /mcp を実行してサーバーを選び、認証を選択するとブラウザが開きます。ターミナルから直接 claude mcp login (名前) を実行することもできます。認証情報を消すときは claude mcp logout (名前) です。
ブラウザが自動で開かない場合は、表示されたURLを手動で開いてください。認証後のリダイレクトが失敗したときは、ブラウザのアドレス欄に表示されているURL全体をコピーして、Claude Code側の入力欄に貼り付けると続行できます。この回避策も公式に案内されています。
トークンを渡す場合
ブラウザ認証ではなく、固定のトークンを使うサービスもあります。その場合は追加時にヘッダーとして渡します。
claude mcp add --transport http (サーバー名) https://(URL)/mcp \ --header "Authorization: Bearer (トークン)"
注意点として、claude mcp add はトークンの正しさを検証しません。間違った値でも登録自体は成功し、後から接続に失敗します。追加後に必ず /mcp で状態を確認してください。認証情報が誤っている場合は失敗として表示され、サーバーが返したHTTPステータス(401など)も併せて表示されます。
つながらない時の切り分け
ここがこの記事の本題です。「設定は書いた。でも動かない」という状態から抜け出すための手順を、症状から逆引きできる形にまとめます。
最初に見る3か所
やみくもに設定を書き換えるのが、いちばん時間を溶かします。次の順番で見てください。
- 状態表示|Claude Codeなら claude mcp list または /mcp、Claude Desktopならコネクタの一覧。ここに出ているか、出ていないかで原因が半分に絞れます
- ログ|サーバーが起動に失敗した理由が書かれています
- 手動起動|設定に書いたコマンドを、そのままターミナルで実行してみる
この3つで、原因が「設定ファイル側」なのか「サーバー側」なのか「認証側」なのかが判別できます。
症状別の対処表
公式ドキュメントのトラブルシュート記載を、症状から引ける形に整理しました。上から順に、自分の症状に当てはまるものを探してください。
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| Claude Desktopの一覧にサーバーが出ない | 設定ファイルの場所が違う/JSONの記法エラー/再起動していない | アプリを完全に終了して再起動。JSONの記法を確認。パスが絶対パスかつ実在するか確認 |
| /mcp が「No MCP servers configured」 | 別のプロジェクトで追加した(localスコープはプロジェクトに紐づく)/読まれないパスに書いた | 今いるプロジェクトで追加し直す。または –scope user で追加する |
| Failed to connect と表示される | サーバーが起動しない/URLが応答しない/設定したトークンが拒否された | claude mcp get で失敗の詳細を見る。HTTPならcurlで到達確認、stdioならコマンドを手動実行 |
| Connection error と表示される | 接続処理そのものでエラー。詳細は表示されない | curlでの到達確認とコマンドの手動実行に進む |
| Needs authentication のまま変わらない | ブラウザ認証が完了していない | /mcp から認証をやり直す。claude mcp login でも可 |
| 起動時にタイムアウトする | 既定の30秒以内に起動が終わらなかった(初回のパッケージ取得など) | MCP_TIMEOUT を延ばして起動する |
| 接続はできたがツールが0件 | APIキーなど必須の環境変数が渡っていない | –env KEY=value または env フィールドで渡す。/mcp から再接続する |
| .mcp.jsonを直したのに反映されない | セッション開始時にしか読まれない/過去に承認を拒否した | セッションを開始し直す。claude mcp reset-project-choices で承認をやり直す |
| 承認待ちのまま止まっている | プロジェクトスコープの承認が未実施 | claude を対話的に起動して承認する |
| 404 Not Found が返る | URLのパスが提供元の案内と違う | claude mcp get でURLを確認し、削除して正しいURLで追加し直す |
| ログに ENOENT と ${APPDATA} が出る(Windows) | 環境変数が展開されていない | env に APPDATA の実際の値を追加して起動し直す |
| npx が失敗し続ける(Windows) | npmがグローバルに導入されていない | %APPDATA%\npm の有無を確認し、無ければ npm install -g npm を実行 |
| 特定のフォルダだけ読めない | 相対パスを書いた/許可したフォルダの外にある | 絶対パスに書き換える。許可フォルダの一覧に追加する |
| 正しいトークンなのに認証が通らない | 貼り付け時に前後の空白や改行が混入した | claude mcp list の警告で該当項目を特定し、空白を削除する |
| spawn claude ENOENT などのエラー | commandに指定した実行ファイルのパスが通っていない | 実行ファイルのフルパスを調べ、commandにそのまま書く |
出典:Claude Code公式ドキュメント「Connect to MCP servers」およびModel Context Protocol公式ドキュメント「Connect to local MCP servers」の各トラブルシュート項目をもとに整理
ログの場所と読み方
状態表示だけで原因が分からないときは、ログを見ます。Claude DesktopのMCP関連ログは次の場所に書かれます。
| OS | ログの場所 |
|---|---|
| macOS | ~/Library/Logs/Claude |
| Windows | %APPDATA%\Claude\logs |
出典:Model Context Protocol公式ドキュメント「Connect to local MCP servers」
このフォルダには2種類のファイルがあります。mcp.log にはMCP接続全般と接続失敗の記録が入ります。mcp-server-(サーバー名).log には、そのサーバーが標準エラー出力に書いた内容がそのまま入ります。stdioで動くサーバーは通常のログも標準エラー出力に書くため、このファイルはエラーだけとは限りません。
Windowsのコマンドプロンプトからまとめて見るなら、次の1行です。
type "%APPDATA%\Claude\logs\mcp*.log"
Claude Codeの場合は、ツールが0件のまま変わらないようなケースで claude –debug=mcp を使い、~/.claude/debug/(セッションID).txt に出力されるサーバーの標準エラー出力を読みます(出典:Claude Code公式ドキュメント「Debug your configuration」)。
手動でサーバーを起動
切り分けとして最も効くのがこれです。設定ファイルに書いたコマンドを、そのままターミナルで実行します。
npx -y @modelcontextprotocol/server-filesystem C:\Users\username\Desktop
結果の読み方は次のとおりです。
- コマンドが起動して入力待ちで止まる|サーバー自体は正常。原因は設定ファイル側にあります。claude mcp get で登録内容を確認し、書いたコマンドと一致しているか見てください
- エラーが出て終了する|サーバー側の問題です。エラーメッセージに、Node.jsが無い、ブラウザが無い、といった不足しているものが書かれています
Claude Codeでコマンドが一致しない場合、–(ハイフン2つ)の区切りを書き忘れている可能性が高いです。いったん削除して、区切りを入れて追加し直してください。
HTTPのリモートサーバーであれば、URLが自分のパソコンから届くかを確認します。
curl -I https://(サーバーのURL)/mcp
返ってきたコードで原因が分かります。404や405はサーバーが動いている証拠です。MCPのエンドポイントはPOSTしか受け付けないものが多いため、これらが返ってきても到達性は確認できています。401や403は認証が必要という意味で、何も返ってこない場合はURLかネットワークの問題です。なおPowerShellでは curl が別のコマンドの別名になっているため、curl.exe と入力してください(出典:Claude Code公式ドキュメント「Connect to MCP servers」)。
それでも直らないとき
ここまでで原因が特定できない場合、公式が用意している専用ツールを使います。MCP Inspector は、クライアントを介さずにサーバーへ直接つないで、ツールやリソースの呼び出しを試せる検証用の画面です。公式ドキュメントではデバッグの最初の一歩として案内されています(出典:Model Context Protocol公式ドキュメント「MCP Inspector」)。
サーバーを自作している場合に見落としがちなのが、ログを標準出力に書かないことです。公式ドキュメントは、手元で動くMCPサーバーが標準出力にメッセージを書くとプロトコルの通信そのものを壊すと明記しています。ログは標準エラー出力に書いてください。
Claude Codeの設定全体が疑わしいときは、claude –safe-mode ですべてのカスタマイズを無効にしたセッションを起動し、問題が消えるかを見る方法もあります。消えるなら、MCPを含む設定のどれかが原因だと分かります。
そのまま使える設定例
ここでは、業務で使う頻度が高い形をコピー用にまとめます。(ユーザー名)や(トークン)の部分だけを書き換えてください。
例1|ファイル操作を許す
Claude Desktopで、指定した2つのフォルダだけをClaudeに扱わせる設定です。Windows用です。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"C:\\Users\\username\\Desktop",
"C:\\Users\\username\\Documents\\ai-sagyo"
]
}
}
}
2つ目のフォルダのように、AI作業用のフォルダを1つ作ってそこだけ許可するのが、社内展開では扱いやすい形です。共有サーバー全体を渡すより事故が起きにくく、何を見せているかを説明しやすくなります。
例2|チームで共有する
Claude Codeで、チーム全員が同じ接続を使うための .mcp.json です。プロジェクトのルートに置き、バージョン管理に含めます。
{
"mcpServers": {
"docs": {
"type": "http",
"url": "https://code.claude.com/docs/mcp"
},
"playwright": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
}
}
}
このファイルを追加した状態でメンバーがセッションを開始すると、承認を求める画面が出ます。これは仕様であり、クローンしたリポジトリが勝手にプログラムを起動しないための仕組みです。承認画面が出ることを事前に伝えておくと、問い合わせが減ります。
例3|APIキーを渡す
キーをファイルに直接書かず、各自の環境変数から読み込ませる形です。
{
"mcpServers": {
"shanai-api": {
"type": "http",
"url": "${SHANAI_API_BASE:-https://api.example.co.jp}/mcp",
"headers": {
"Authorization": "Bearer ${SHANAI_API_KEY}"
}
}
}
}
この形なら、設定ファイルを共有しても認証情報は配布されません。キーは各自が自分の環境変数に設定します。環境変数が未設定のときは警告が出るので、動かない理由もすぐ分かります。
例4|複数をまとめて書く
3つ以上つなぐ場合の形です。カンマの位置がずれると全体が読めなくなるため、追加するときは必ず1つずつ足して確認してください。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"C:\\Users\\username\\Documents\\ai-sagyo"
]
},
"shanai-db": {
"command": "npx",
"args": ["-y", "@bytebase/dbhub", "--dsn", "${DB_DSN}"]
},
"docs": {
"type": "http",
"url": "https://code.claude.com/docs/mcp"
}
}
}
データベースにつなぐ場合、接続文字列には読み取り専用のユーザーを指定してください。公式ドキュメントも、Claudeが実行するクエリでデータが変わらないようにするため、読み取り専用ユーザーの使用を明示的に推奨しています(出典:Claude Code公式ドキュメント「Connect Claude Code to tools via MCP」)。
当社では、MCPの接続設定から権限の設計、社内ルールへの反映までを支援しています。費用は初期0円、月額5万円です。「どのサーバーをつなぐべきか決められない」「設定はできたが社内に広げる判断がつかない」といった段階でも構いません。お問い合わせはこちらからご相談ください。
社内で使わせる判断基準
設定ができると、次に出てくるのが「これを社員に使わせてよいのか」という問いです。ここは技術の話ではなく、判断の話になります。
接続先は許可制にする
結論から言えば、接続してよいサーバーを会社が決め、それ以外は追加させない形が現実的です。理由は、提供元の審査状況にあります。
Anthropicは公式ドキュメントで、コネクタをディレクトリに掲載する前に掲載基準に照らして確認しているが、いかなるMCPサーバーについてもセキュリティ監査や管理は行っていないという趣旨を明記しています(出典:Claude Code公式ドキュメント「Security」)。つまり、接続先の安全性を判断する責任は利用する側にあります。
MCPの公式ドキュメントにも、攻撃手法と対策をまとめた「Security Best Practices」があり、認可の設計や代理権限の悪用といった具体的なリスクが整理されています(出典:Model Context Protocol公式ドキュメント「Security Best Practices」)。中小企業がこれを全部読み込む必要はありませんが、「知らないサーバーは足さない」というルール1行は決めておくべきです。
権限は読み取りから
最初から書き込みや削除を許す必要はありません。読み取りだけで始めて、業務が回ることを確認してから広げるのが安全です。
ここで「ここまでAI、ここから人」の線引きをはっきりさせておきます。当社が支援するときは、次の基準を最初に決めてもらっています。
| 操作 | 誰がやるか | 理由 |
|---|---|---|
| データの検索・参照・要約 | AIに任せてよい | 間違えても元のデータは変わらない |
| 下書きの作成 | AIに任せてよい | 人が必ず読む前提が成立する |
| データの更新・登録 | 人が承認してから実行 | 誤りが実データに残る |
| 社外への送信 | 人が実行 | 取り消せない |
| 削除 | 人が実行 | 復旧に費用と時間がかかる |
Claude Desktopは既定で、ファイル操作の実行前に必ず承認を求める作りになっています。この承認画面を「面倒だから毎回通す」運用にしないことが、線引きを守る最低条件です。
管理者が縛る仕組み
ルールだけでなく、技術的に縛る方法も用意されています。Claude Codeでは、管理者が配布する managed-mcp.json を置くと、そのファイルに定義されたサーバーだけが読み込まれ、利用者は他のサーバーを追加・変更・利用できなくなります。
| OS | managed-mcp.json の場所 |
|---|---|
| macOS | /Library/Application Support/ClaudeCode/managed-mcp.json |
| Linux・WSL | /etc/claude-code/managed-mcp.json |
| Windows | C:\Program Files\ClaudeCode\managed-mcp.json |
出典:Claude Code公式ドキュメント「Control MCP server access for your organization」
公式は、制御の強さに応じて複数のパターンを示しています。MCPを完全に無効化する(サーバーの定義を空にする)、全員に同じサーバーを配って追加を禁止する、許可リストを公開して利用者が選ぶ、問題のあるサーバーだけを拒否リストで塞ぐ、といった段階です。
ただし、この仕組みは端末管理ツール(JamfやIntuneなど)での配布を前提としています。10名規模の会社でいきなりここまで作り込む必要はありません。まずは「使ってよいサーバーの一覧」を社内ポータルに1枚置き、追加したいときは申請する、という運用から始めるほうが確実に回ります。
社内ルールへの追記例
既存の社内AIルールがあるなら、独立した規程を新設するより追記するほうが運用が続きます。追記する項目は次の4行で足ります。
- MCPで接続してよいサーバーは、会社が公開している一覧のものに限る
- 新しいサーバーを追加したいときは、接続先と目的を書いて申請する
- 権限は読み取りから始め、書き込みが必要な場合は個別に承認を得る
- APIキーやトークンは設定ファイルに直接書かず、環境変数で渡す
ルール文書そのものの作り方は社内AIルールの作り方で、AI利用で新しく増えるセキュリティ論点の全体像は中小企業のセキュリティ対策で扱っています。
モデルケース|設定から定着まで
設定作業がどれくらいの効果につながるのか、目安を示します。以下は実在の企業ではなく、当社が想定する典型的な状況にもとづく試算です。
前提条件
- 業種:建材の卸売業
- 従業員数:28名(内勤10名、営業12名、その他6名)
- 対象:内勤10名のうち、受発注と見積を担当する4名
- 試算の単価:時給2,500円・月20営業日で計算
- 使用アプリ:Claude Desktop(4名分)
- 接続したMCPサーバー:ファイル操作、社内データベース(読み取り専用)
導入前の状況
この会社では、在庫や仕入価格の確認が基幹システムの画面照会に依存していました。営業から「この商品の在庫と直近の仕入単価は」と電話が入るたび、内勤担当が画面を開いて調べ、口頭で返す。1件あたり3分から5分ですが、日に20件近く発生します。
見積書の作成も、過去の類似案件を共有フォルダから探すところから始まります。ファイル名の付け方が担当者ごとに違うため、探す時間のほうが書く時間より長いという状態でした。
担当者の実感としては「調べる時間と探す時間が、仕事の半分を占めている」。これはMCPが最も効く条件がそろっている状態です。人が画面を開いて探す作業を肩代わりさせるのがMCPの本質だからです。
設定した内容
作業自体は半日で終わりました。実施したのは次の4点です。
- 4名の端末にClaude Desktopを導入し、Node.jsを入れる
- AI作業用フォルダを1つ作り、そこと共有フォルダの見積フォルダだけを許可する
- 社内データベースに読み取り専用のユーザーを1つ作り、接続文字列は各自の環境変数に設定する
- 「更新・登録・削除は人がやる」という1行を社内ルールに追記する
この段階では、書き込み権限は一切渡していません。
削減時間の試算
4名合計の月間工数を試算すると、次のようになります。
| 業務 | 導入前(月) | 導入後(月) | 削減時間 | 月間削減額 |
|---|---|---|---|---|
| 在庫・仕入データの照会 | 24時間 | 6時間 | 18時間 | 45,000円 |
| 見積書の作成補助 | 20時間 | 9時間 | 11時間 | 27,500円 |
| 問い合わせメールの下書き | 16時間 | 7時間 | 9時間 | 22,500円 |
| 過去資料の検索 | 12時間 | 4時間 | 8時間 | 20,000円 |
| 合計 | 72時間 | 26時間 | 46時間 | 115,000円 |
当社の導入支援は初期0円、月額5万円です。上の試算に当てはめると、月額費用を差し引いても6.5万円分の工数が浮く計算になります。ただし、この数字は前提条件が変われば簡単に変わります。照会件数が日に5件しかない会社では、同じ設定をしてもここまでの差は出ません。
つまずいた3点
うまくいった話だけでは実態を伝えられないので、この規模の導入で実際に起きやすいつまずきを挙げます。
1つ目はWindowsのパス表記です。エクスプローラーからコピーしたパスをそのまま貼ると、バックスラッシュが1つのままになります。4名中3名が最初にここで止まりました。設定ファイルを配布する形にすれば防げます。
2つ目は再起動です。ウィンドウを閉じただけで「反映されない」と報告が上がりました。タスクトレイからの完全終了を手順書に明記して解決しています。
3つ目は期待値のズレです。MCPをつないでも、AIが自動的に賢くなるわけではありません。データにアクセスできるようになるだけです。「聞けば何でも答えてくれる」と期待した担当者が、最初の1週間で使わなくなりかけました。できること・できないことを最初に見せる30分の説明会が、定着の分かれ目になります。
設定でよくある失敗
ここまでの内容と重複しない範囲で、設定後に効いてくる失敗を挙げます。
失敗1|相対パスを書く
./data のような書き方は、動くときと動かないときがあります。MCPクライアントがサーバーを起動するときの作業ディレクトリは未定義になりうるためです。手元のターミナルで試すと動くのに、Claudeから呼ぶと動かない、という現象の典型的な原因です。設定ファイルにも .env にも、必ず絶対パスを書いてください。
失敗2|キーを直接書く
APIキーやトークンを設定ファイルに直書きすると、そのファイルを共有した瞬間に認証情報も配られます。環境変数で渡すのが基本です。すでに直書きしてしまった場合は、キーを再発行したうえで環境変数方式に切り替えてください。
失敗3|いきなり本番データ
最初の接続先を基幹システムの本番データにするのは避けてください。読み取り専用ユーザーを作る、参照できるテーブルを絞るという手当てを先にします。ここを飛ばすと、後から範囲を狭めるのが政治的に難しくなります。
失敗4|承認を形骸化させる
Claudeは操作の前に承認を求めますが、毎回反射的に許可するようになると、この仕組みは意味を失います。承認画面をよく読むことを、最初の説明会で必ず伝えてください。IPAの「情報セキュリティ10大脅威 2026」でも、AIの利用をめぐるサイバーリスクが初めて上位に選出されています(出典:IPA「情報セキュリティ10大脅威 2026」)。
失敗5|誰も棚卸ししない
接続は増える一方で、減ることがありません。月1回、接続先の一覧を見て、使っていないものを外すだけで、把握できない接続がたまるのを防げます。Claude Codeなら claude mcp list、Claude Desktopならコネクタの一覧を見るだけの作業です。使っていないサーバーを外すと、Claudeが扱う情報量にも余裕が生まれます。
国内企業の現状データ
社内を説得する材料として、公的な調査の数字を挙げておきます。
方針が決まっていない
総務省「令和7年版 情報通信白書」によると、日本で何らかの業務で生成AIを利用していると回答した割合は55.2%でした。一方、企業としての活用方針を定めている割合(「積極的に活用する方針」と「活用する領域を限定して利用する方針」の合計)は2024年度調査で49.7%で、2023年度調査の42.7%から増加したものの、調査対象の他国と比べると引き続き低い水準にとどまっています(出典:総務省「令和7年版 情報通信白書」)。
同白書では、企業規模別に見ると中小企業では「方針を明確に定めていない」との回答が約半数を占め、大企業と比べて方針の決定が立ち遅れている状況が示されています。
懸念の2位は情報漏えい
同じ白書によれば、生成AI導入に際しての懸念事項は、日本では「効果的な活用方法がわからない」が最も多く、次いで「社内情報の漏えい等のセキュリティリスク」が挙げられています。
MCPの設定は、この2つに同時に効きます。接続先を決める作業は「何に使うか」を具体化する作業そのものですし、権限を読み取りに絞れば「どこまで見えるか」が管理可能になります。逆に、権限設計を飛ばして設定だけ済ませると、2位の懸念をそのまま現実にします。
なお同白書では、生成AIの活用による自社への影響について、日本では「業務効率化や人員不足の解消につながる」が最も多く挙げられており、調査した4か国いずれもポジティブな面のほうに注目しているとされています。
よくある質問(FAQ)
Q. 設定ファイルはどこにある?
macOSでは ~/Library/Application Support/Claude/claude_desktop_config.json、Windowsでは %APPDATA%\Claude\claude_desktop_config.json です。ただし手で探すより、Claude Desktopの設定画面で「Developer」タブを開き、「Edit Config」ボタンを押すほうが確実です。ファイルが無ければ新規作成され、あれば既存のものが開きます。
Q. ファイルが見つからないときは?
まだ作られていない可能性が高いです。設定画面の「Edit Config」を押すと作成されます。Windowsでは AppData が隠しフォルダのため、エクスプローラーのアドレス欄に %APPDATA%\Claude と直接入力して開いてください。フォルダ自体が無い場合は、Claude Desktopを一度起動してから確認してください。
Q. JSONを書いたのに反映されません
確認する順番は、置き場所、記法、再起動の3つです。まずパスが公式のものと一致しているか、次に末尾の余分なカンマや全角の引用符が無いか、最後にアプリを完全に終了して起動し直したかを見てください。ウィンドウを閉じただけでは反映されません。それでも出ない場合はログを確認します。
Q. Windowsのパスの書き方は?
バックスラッシュを2つ重ねて書きます。”C:\\Users\\username\\Desktop” のような形です。JSONの仕様上、バックスラッシュが特別な意味を持つ文字であるためで、公式のWindows向け例もすべてこの表記です。エクスプローラーからコピーしたパスは1つのままなので、貼り付けた後に必ず置換してください。
Q. 動くのにClaudeから見えない
設定ファイル側の問題である可能性が高いです。設定に書いたコマンドをそのままターミナルで実行し、起動して入力待ちになるなら、サーバー自体は正常です。その場合は登録内容とコマンドが一致しているか確認してください。Claude Codeでは、区切りのハイフン2つを書き忘れているケースがよくあります。
Q. 接続はできたのにツールが0件です
APIキーなど、そのサーバーが必要とする環境変数が渡っていない場合に起きます。サーバーの説明書きで必要な変数を確認し、claude mcp add の –env オプションか、設定ファイルの env フィールドで渡してください。Claude Codeでは /mcp から再接続を試し、それでも0件なら claude –debug=mcp でサーバーの出力を確認します。
Q. 起動時にタイムアウトします
MCPサーバーの起動待ち時間は既定で30秒です。初回はパッケージの取得に時間がかかるため、超えることがあります。MCP_TIMEOUT という環境変数をミリ秒で指定して延ばしてください。PowerShellの場合は変数を設定してから同じ行でコマンドを実行する書き方になります。
Q. ログはどこを見ればいいですか?
Claude Desktopでは、macOSは ~/Library/Logs/Claude、Windowsは %APPDATA%\Claude\logs です。mcp.log に接続全般の記録が、mcp-server-(サーバー名).log に各サーバーの出力が入ります。Claude Codeでは claude –debug=mcp を使い、~/.claude/debug/(セッションID).txt を確認します。
Q. 設定は2つのアプリで共有できる?
Claude Code側に取り込む形であれば可能です。claude mcp add-from-claude-desktop を実行すると、取り込むサーバーを選ぶ画面が出ます。ただしこの機能はmacOSとWSLでのみ動作します。またサーバー名に英数字とハイフン、アンダースコア以外の文字が含まれていると取り込めず、その名前だけが報告されて他は取り込まれます。
Q. .mcp.jsonはどこに置く?
プロジェクトのルートです。.claude フォルダの中ではありません。また settings.json に mcpServers キーを書いても読み込まれません。ユーザー単位で使いたい場合は claude mcp add –scope user を実行してください。この場合は ~/.claude.json に書き込まれます。
Q. 社内の全員に同じ設定を配れますか?
Claude Codeであれば、管理者が managed-mcp.json を配布することで、そのファイルに定義したサーバーだけを読み込ませ、利用者による追加や変更を禁止できます。ただし端末管理ツールでの配布が前提です。数名規模であれば、設定ファイルの完成版を配って手順書を添えるほうが早く回ります。
Q. どのサーバーが効果的?
人が画面を開いて探している作業が多い業務です。在庫照会、過去資料の検索、問い合わせ内容の確認などが該当します。逆に、判断そのものが中心の業務や、月に数回しか発生しない作業では効果が出にくいです。選び方の詳しい基準はMCPサーバーとはで扱っています。
Q. 設定できたら次は何を?
まず1つの業務で1か月使い、時間が実際に減ったかを測ってください。減っていれば接続先か対象人数を広げ、減っていなければ業務の選び方を見直します。広告やマーケティング業務での具体的な使い方はAIマーケティングのMCP自動化やGoogle広告のMCP自動化で扱っています。
Q. エディタでも同じことができますか?
MCPに対応したエディタであれば、同様に外部ツールへ接続できます。設定ファイルの場所と書式はツールごとに異なるため、それぞれの公式ドキュメントを確認してください。エディタ側の使い方はCursorの使い方で扱っています。
まとめ|設定は再現できる
最後に、要点を整理します。
- 設定は「正しい場所に置く」「決まった書式で書く」「完全に再起動する」の3ステップ
- Claude Desktopは claude_desktop_config.json、Claude Codeは .mcp.json または .claude.json。両者は別物
- Windowsのパスはバックスラッシュを2つ重ねる。相対パスは使わない
- Claude Codeが読まないパスは公式に列挙されている。反映されないときは書式より場所を疑う
- 切り分けは「状態表示、ログ、手動起動」の順。この3つで原因の所在が分かる
- APIキーは設定ファイルに直書きせず、環境変数で渡す
- 接続先は許可制にし、権限は読み取りから始める。更新・送信・削除は人がやる
- Anthropicは、MCPサーバーのセキュリティ監査や管理は行っていないと明記している
MCPの設定は、一度手順が固まれば誰がやっても同じ結果になる作業です。難しいのは技術ではなく、「どこにファイルを置くか」「どこまで権限を渡すか」という、決めれば済むことを決めていない状態が続くことです。この記事の手順書と切り分け表を使って、まず1つのサーバーをつないでみてください。
当社は中小企業向けに、MCPの接続設定から、どの業務につなぐかの選定、権限設計、社内ルールへの反映までを支援しています。費用は初期0円、月額5万円です。「設定はできたが、次に何をつなげばいいか分からない」「社内に広げてよいか判断がつかない」という段階のご相談を多くいただいています。まずは自社のどの業務に効きそうかを一緒に洗い出すところからで構いません。お問い合わせはこちらからご連絡ください。


