Claude Codeからn8nを会話で操作できるようになった──設定ファイルはどこに置くか問題で3時間かかった話

※この記事には広告(アフィリエイトリンク)が含まれています。

ブログのアクセスデータを分析したい──そう思い始めたけど、いちばん手っ取り早い方法はなんだろう・・・以前ネット記事でn8nがVScodeでCLAUDEを通じて自然言語でノード作成できたりいまあるオートメーションの編集もできるのをおぼえていて、 とりあえずやってみようと動きました。

GA4とSearch Consoleのデータをまとめて見て、「この記事、検索では上位なのにクリックされてない」とか「ここは直帰率が高すぎる」みたいなことを、VSCodeの画面から確認できたら最高じゃないですか。いまはもうVScodeでほとんどのことをしてるのでいろいろなアプリ開かなうて一本化できて結構効率的です。

その環境を作ろうとして調べていたら、n8n-mcp(エヌエヌ・エムシーピー)というnpmパッケージがつかえそうで、n8nをClaude Codeと繋いで、会話でワークフローを操作できるようにするやつです。

インストール自体は一瞬で終わったんですが、設定ファイルをどこに置くかでCLAUDE君に任せていたんですけど、結構設定につまづきました。

この記事では「正解の設定ファイルにたどり着くまでの詰まり記録」をそのまま書き残しておきます。同じところで引っかかる人を1人でも減らしたい((((;゚Д゚)))))))

スポンサーリンク

n8n MCPとは?そもそもMCPって何?

「MCP(エムシーピー)」はModel Context Protocolの略で、Claude Codeが外部のツールやサービスと繋がるための仕組みです。

たとえば、ObsidianのメモをClaude Codeから読み書きしたり、WordPressの記事をVSCode上の会話から投稿したりできるのも、このMCPが橋渡しをしてくれているからです。

このブログでも以前、Obsidian×WordPressとClaude Codeを繋いだ話を書きましたが、あれもMCPの仕組みを使っていました。

Claude CodeにMCPを設定してObsidianとWordPressを操作できるようにした話

そして今回設定した n8n-mcp は、その名の通り「n8nをClaude Codeから操作するためのMCPサーバー」です。

設定が終わると、こんなことが会話でできるようになります。

  • 「いまあるワークフローの一覧を見せて」
  • 「このワークフローの○○ノードを修正して」
  • 「新しいワークフローを作って」

んぅ〜〜〜これは便利すぎる!!

いままでn8nをブラウザで開いてぽちぽち1つずつノードを追加して、AIにこれでいいですか?いやだめです、ここをこうして〜と半日かかる作業が、全部会話で一瞬でできるようになります。

ちなみに自分はSynology NASのDocker上でn8nを動かしています。NASをお持ちでない場合でも、ConoHa VPSなどでn8nをホストしていれば同じ設定で使えますよ。

※本リンクはアフィリエイト広告です(PR)

🖥️ n8nをセルフホストするならSynology NASが選択肢になります

スーツマンもSynologyでn8nを動かしています。Dockerが動くモデルを選ぶのがポイントです。コスパ重視ならDS223、メモリ増設もしたいならDS225+が候補になります。なお本体のほかにHDD(別売り)が必要です。写真・動画の保存や外出先からのアクセスにも使えます。

▶ Synology DS223 をAmazonで見る(コスパ重視)

▶ Synology DS225+ をAmazonで見る(Docker安定動作重視)

※本リンクはアフィリエイト広告です(PR)

🤖 AIツールをVPSで動かしたい人へ

Claude CodeやDifyなどのAIツールを自前のサーバーで動かしたい場合、ConoHa VPSはスタートアップスクリプトが充実していて選択肢になると思います。セットアップをほぼ自動でやってくれるのは正直助かると思います。

インストール前にセキュリティチェックから始める

npmのパッケージをグローバルにインストールするのは、自分のMacに外部のソフトウェアを直接入れる行為です。以前「npmのパッケージが乗っ取られてマルウェアが混入した」という事件を知ってから、インストール前のセキュリティチェックは必ずするようにしています。

今回の n8n-mcp(バージョン2.57.3)のチェック結果です。

チェック項目結果
GitHubスター数17,976(2026年6月時点)
週間ダウンロード数約104,000
リリース日2026-06-11
Snyk(脆弱性チェック)既知の問題なし
X(旧Twitter)での騒ぎ報告なし

リリース日が2日前で、自分のルールでは「リリースから1週間以上経ったもの」を基本にしているんですが、ダウンロード数・スター数が充分あってXでも問題報告ゼロだったので、今回は例外的に前倒しでインストールしました。

インストールコマンドはこれだけです。

sudo npm install -g n8n-mcp

Macのログインパスワードを入力すると完了。/usr/local/bin/n8n-mcp にインストールされました。

ここまでは本当にあっという間。問題はここからでした。。。

詰まりポイント①:enabledMcpjsonServersに追加しても動かない

Claude CodeのMCPサーバーを追加する方法として、真っ先に思いついたのが ~/.claude/settings.jsonenabledMcpjsonServers に追加する方法でした。

以前ObsidianとWordPressのMCPを設定したとき、そこにサーバー名が並んでいるのを見ていたので「ここに n8n を追加すればいい」と思ったんです。

{
  "enabledMcpjsonServers": ["n8n", "obsidian", "wordpress-mcp"]
}

追加して、Claude Codeを再起動して、新しいチャットで「n8nのワークフロー一覧を見せて」と入力してみると…

n8n MCPがMCPツール一覧に表示されていないため、
現在のセッションでは直接アクセスできない状態です。

動いていない。(゚д゚)

後で調べてわかったんですが、enabledMcpjsonServers というのは「すでに設定済みのMCPサーバーを有効化するリスト」で、サーバーの設定自体を書く場所ではありませんでした。

……え、じゃあ設定はどこに書くの?

「有効化リストに追加すれば動く」と思っていたら、そもそも設定場所が別にあった

詰まりポイント②:claude_desktop_config.jsonが2種類あった

次に調べたのが claude_desktop_config.json です。

Claude Desktop Appの公式ドキュメントによると、MCPサーバーは ~/Library/Application Support/Claude/claude_desktop_config.json に書くとのこと。

開いてみると、ObsidianやWordPress用のMCPサーバー設定がずらっと書いてありました。ここだ!と思ってn8nの設定を追加。

再起動 → 新しいチャットで確認 → まだ動かない。

なんでぇ〜〜〜((((;゚Д゚)))))))

ここで気づいたのが、実は設定フォルダが2種類あるという事実です。

フォルダどのアプリが使う
~/Library/Application Support/Claude/Claude Desktop App(通常のアプリ版)
~/Library/Application Support/Claude-3p/Claude Code VSCode拡張

同じ claude_desktop_config.json という名前なのに、場所によって読まれるアプリが違う。。。

Claude-3p/claude_desktop_config.json を開いてみると、こんな内容でした。

{
  "enterpriseConfig": {},
  "_cfprefsMigrated": true
}

MCPサーバーの設定、ぜんぜん入ってない!

では ObsidianやWordPressのMCPはなぜ動いているのか……どうも enabledMcpjsonServers の仕組みが Claude/ フォルダの設定ファイルも参照していて、そちらにすでに書いてあったから動いていたっぽいです(断言はできませんが、そう理解しています)。

n8nは新たに追加したのでその恩恵を受けられていなかった、と。

じゃあ Claude-3p/claude_desktop_config.json にも書いてみるか!と試してみましたが、こちらも解決せず。

詰まりポイント③:別のチャットが作った設定ファイルにAPIキーが入っていなかった

「n8nのMCP設定をするためのn8n専用チャット」を別に開いていて、そちらにも相談していたんです。

そのチャットが ~/.claude/.mcp.json というファイルを作ってくれました。「このファイルにMCPサーバーの設定を書く」という情報を先に見つけてくれたんですが……

{
  "mcpServers": {
    "n8n": {
      "command": "n8n-mcp",
      "env": {
        "N8N_API_URL": "http://localhost:5678",
        "N8N_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

APIキーが YOUR_API_KEY_HERE というプレースホルダーのまま!! (;´Д`A

そりゃ動かない。

さらに command"n8n-mcp" という相対パスになっていて、フルパスじゃないとClaude Codeが見つけられない問題もありました。

このファイルを削除して、正しい内容で作り直すことにしました。

解決:正解は ~/.claude/.mcp.json だった

~/.claude/.mcp.json が正解のファイルでした。このファイルに正しい設定を書けば、Claude Code VSCode拡張がMCPサーバーとして認識してくれます。

設定の書き方はこんな感じです(URLとAPIキーは伏せています)。

{
  "mcpServers": {
    "n8n": {
      "command": "/usr/local/bin/n8n-mcp",
      "args": [],
      "env": {
        "N8N_API_URL": "(n8nのURL)",
        "N8N_API_KEY": "(APIキーをここに)",
        "MCP_MODE": "stdio",
        "LOG_LEVEL": "error",
        "DISABLE_CONSOLE_OUTPUT": "true"
      }
    }
  }
}

ポイントが1つあって、commandフルパスで書く 必要があります。

"n8n-mcp" だけ(相対パス)だとClaude Codeがバイナリを見つけられないことがあるので、which n8n-mcp で確認した /usr/local/bin/n8n-mcp をそのまま書きました。

n8nのAPIキーはn8nの管理画面(Settings → API Keys)から発行できます。

設定ファイルを保存したあと、Claude CodeのアプリをDockから完全に終了(右クリック → 終了)→ 再起動 → 新しいチャットを開くと……

ワークフロー一覧がずらーっと出てきた

よっしゃーーー!!♪( ´▽`)

APIキーをGitに入れないための安全設計

ここ、地味に重要な部分です。

~/.claude/ フォルダは自分の場合GiteaというプライベートGitサーバーで管理しています。設定ファイルをバックアップ&バージョン管理している感じです。

で、APIキーが入ったファイルをうっかりGitにpushすると大変なので、ちゃんと保護が必要です。

.gitignoreに追加する

~/.claude/.gitignore.mcp.json を追記します。

.mcp.json

これだけで、.mcp.json がGitの管理対象から外れます。

Claudeが読めないようにdenyリストに追加する

セキュリティ上の追加対策として、Claude自身が .mcp.json を読めないようにしました。~/.claude/settings.local.json(こちらもgitignore済み)に追記します。

{
  "permissions": {
    "deny": [
      "Read(/Users/あなたのユーザー名/.claude/.mcp.json)"
    ]
  }
}

gitignoreで「Gitに入れない」+denyリストで「Claudeに読ませない」の二重保護

APIキーはTailscaleのネットワーク内のn8nに繋がるものなので、仮にキーが漏れてもTailscaleに入っていないネットワークからはアクセスできない、という防御もあります。でも漏れないに越したことはないのでちゃんと設定しておきます。

実際に動いた!できることを試してみた

接続が成功してから、試しにいくつか話しかけてみました。

「n8nのワークフロー一覧を見せて」と言うと、登録してあるワークフローの名前・ID・有効/無効の状態がずらっと出てきます。

「このワークフローの詳細を見せて」で中身のノード構成も確認できました。

今後は「このノードの設定を変更して」「テスト実行して結果を教えて」みたいなことが会話でできるようになります。n8nのブラウザ画面を開かなくてもVSCodeの中で完結できる、というのがすごく大きい。

GA4 × Search Consoleの分析環境を作るとき、n8nのワークフロー設計から設定まで、全部Claude Codeと会話しながらできる予定です。♪( ´θ`)ノ

まとめ:設定ファイルの場所が全部だった

n8n MCPのセットアップで詰まった原因を一言で言うと、「どのファイルをどのアプリが読んでいるか」がわかっていなかったことでした。

整理するとこんな感じです。

設定ファイルどのアプリが読む用途
~/Library/Application Support/Claude/claude_desktop_config.jsonClaude Desktop AppMCPサーバー設定
~/Library/Application Support/Claude-3p/claude_desktop_config.jsonClaude Code VSCode拡張基本設定(MCPサーバー追加には使わない)
~/.claude/.mcp.jsonClaude Code VSCode拡張MCPサーバー追加用(★これが正解)
  • command はフルパスで書く(which n8n-mcp で確認)
  • APIキーを含むファイルは .gitignore に入れる
  • 設定変更後はClaude Codeを完全に終了→再起動する

同じところで詰まっている方の参考になれば幸いです。

n8n-mcp、接続してみるとかなり機能豊富で、ワークフローの作成・修正・テスト・バリデーションまで会話でできます。設定の手間はありましたが、それに見合う価値はあると思いますよ♪( ´θ`)ノ


今日覚えた英語表現(B2〜C1レベル)

技術系のブログを書いていると英語のドキュメントを読む機会が多いので、今日のトピックに関連した表現をまとめておきます。一応英検1級を目指しているので……(;´Д`A

① configureconfiguration

The MCP server needs to be properly configured before it can communicate with external services.

「設定する・構成する」の意味で、setting より一段技術的・正式なニュアンスです。ソフトウェアの設定まわりで頻出します。

② credentials

Never store API credentials in files that are committed to version control.

APIキー・パスワード・トークンなど「認証に使う情報」をまとめてこう呼びます。「クレデンシャル」とカタカナでも使います。

③ expose

This configuration could unintentionally expose your API key to version control.

セキュリティの文脈で「情報を不用意に外に出してしまう・露出させる」という意味で頻出します。「APIキーをexposeしてしまった」みたいに使います。


SynologyのDockerにn8nを入れたら権限エラーで詰まりまくった話【PART1:起動まで】
Claude CodeにMCPを設定してObsidianとWordPressを操作できるようにした話
SynologyのDockerにn8nを入れたら権限エラーで詰まりまくった話【PART1:起動まで】
n8nでWordPress接続・RSS収集フローを作ったら、またDockerの権限で詰まった話【PART2】
SynologyとObsidianの同期が競合してRSSが消えた話と、RSSをAI分類するフローに進化させた話【n8n PART3】

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です