SIMPLE

/ log

Claude CodeとN8Nを連携させた話

VPS上でClaude CodeとワークフローツールのN8NをMCP経由で連携させた構築記録です。Dockerセットアップ・APIキー発行・n8n-mcp登録・ハマりポイントまでまとめています。

自分のVPS(CentOS Stream 9)でClaude Codeを使いながら、ワークフロー自動化ツールのn8nをDockerで動かし、さらにClaude CodeからMCP(Model Context Protocol)経由でn8nを操作できる環境を構築しました。作業のほとんどはClaude Codeと会話しながら進めました。

構成の概要

Claude Code (CLI)
    │
    │ MCP (stdio)
    ▼
n8n-mcp (npx n8n-mcp)
    │
    │ REST API
    ▼
n8n (Docker コンテナ)
    └─ 127.0.0.1:5678
  • Claude Code — ターミナルで動くAI。コマンドを実行したりファイルを編集したりできる
  • n8n — セルフホスト型のワークフロー自動化ツール(ZapierのOSS版みたいなもの)
  • n8n-mcp — Claude CodeからMCP経由でn8nを操作するためのブリッジ

手順

1. n8nをDockerで起動する

最初はバインドマウント(~/n8n-data)で動かしていたが、Dockerのnamed volumen8n_data)に移行した。こちらのほうがDockerの流儀に合っている。

docker run -d \
  --name n8n \
  --restart unless-stopped \
  -p 127.0.0.1:5678:5678 \
  -v n8n_data:/home/node/.n8n \
  -e N8N_PORT=5678 \
  -e N8N_PROTOCOL=http \
  -e N8N_MCP_ENABLED=true \
  docker.n8n.io/n8nio/n8n

ポイント:

  • -p 127.0.0.1:5678:5678 — ローカルホストのみにバインド。インターネットには公開しない
  • N8N_MCP_ENABLED=true — n8n側のMCPサポートを有効化
  • --restart unless-stopped — 再起動時に自動起動

2. n8nのUIにアクセスする

n8nはlocalhostにしかバインドしていないので、ブラウザからアクセスするにはSSHトンネルが必要。

ssh -L 127.0.0.1:5678:127.0.0.1:5678 user@your-vps-ip

~/.ssh/config に以下を書いておくと毎回自動でトンネルが張られる:

Host myvps
    HostName your-vps-ip
    User your-user
    LocalForward 127.0.0.1:5678 127.0.0.1:5678

3. n8nのAPIキーを発行する

n8n UI → Settings → API → Create an API Key でAPIキーを発行する。このキーは後でMCPの設定に使う。

4. n8n-mcpをClaude CodeのMCPサーバーとして登録する

claude mcp add コマンドで登録するが、JWTトークンにドット(.)が含まれるため引数パーサーが誤動作する問題があった。そのため claude mcp add-json でJSON形式で直接指定する。

claude mcp add-json n8n-mcp '{
  "type": "stdio",
  "command": "npx",
  "args": ["n8n-mcp"],
  "env": {
    "N8N_API_KEY": "your-api-key-here",
    "N8N_API_URL": "http://127.0.0.1:5678",
    "MCP_MODE": "stdio",
    "LOG_LEVEL": "error"
  }
}'

設定は ~/.claude.json に保存される。次のセッション起動時から有効になる。

5. 動作確認

新しいセッションを起動すると、Claude Codeのシステムリマインダーに以下のMCPツールが表示される:

mcp__n8n-mcp__n8n_create_workflow
mcp__n8n-mcp__n8n_list_workflows
mcp__n8n-mcp__n8n_manage_credentials
mcp__n8n-mcp__n8n_generate_workflow
... など

これでClaude Codeと会話するだけでn8nのワークフローを作成・管理できる。

ハマったこと

claude mcp add でJWT APIキーが通らない問題

JWTトークンのドット(.)がCLIの引数パーサーに誤認識される。claude mcp add-json でJSON文字列として渡すことで回避できるようです。この辺りはトライアルアンドエラーが多く、カオスな状態だったので記憶が曖昧です。

MCPツールは新セッションから有効

claude mcp add-json でMCPを追加しても、現在のセッションには反映されない/exit して claude で新しいセッションを起動する必要がありました。

テストワークフロー:メール送信

Claude Codeから直接ワークフローを作成した例:

Manual TriggerSend Email (SMTP)

n8n UIでGmailのSMTP認証情報(Gmailアドレス + Googleアプリパスワード)を設定し、ワークフローに紐づけることでメール送信が動く。Googleアカウントは2段階認証を有効にしておく必要がありました。

まとめ

項目

内容

n8n バージョン

2.14.2

イメージ

docker.n8n.io/n8nio/n8n

データ永続化

Docker named volume n8n_data

ポート

127.0.0.1:5678(外部非公開)

MCP サーバー

czlonkowski/n8n-mcp(stdio)

MCP 設定ファイル

~/.claude.json

Claude Codeと話しながらインフラを構築していくのは、コマンドをひとつひとつ調べて打つより格段に速かったです。特にMCPの仕組みを使うと、AIがツールを直接操作できるので「コマンドを教えてもらって自分で実行する」ではなく「AIが直接やってくれる」といった感覚でした。

Takaaki Yoneda

環境保全、グラフィックデザイン、マーケティングなどプログラミング以外にも幅広い興味を持ったソフトウェアエンジニアです。 最近の趣味は、ボードゲームと登山