n8n MCP Server
Allows interaction with n8n's REST API, providing tools for managing workflows (list, create, delete, activate, publish), executing workflows, retrieving execution history, and listing credentials.
Enables querying local or cloud models via Ollama, allowing AI-powered responses through the Ollama API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@n8n MCP Servercheck n8n and Ollama status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
n8n MCP Server
n8n の REST API とローカルの Ollama を、MCP (Model Context Protocol) ツールとして 公開する Python サーバーです。VS Code などの MCP クライアントから ワークフローの作成・実行・監視を自然言語で指示できます。
特徴
自然言語で n8n のワークフロー作成、削除、復元、有効化、公開、実行、一覧取得、詳細取得
実行履歴の一覧取得と詳細取得
登録済み Credentials の一覧取得
Ollama 経由でのローカル / クラウドモデルへの問い合わせ
n8n と Ollama の稼働状態をまとめて確認するヘルスチェック
すべての操作は非同期 (httpx.AsyncClient) で実装
Self-hosted n8n / Cloud n8n 両対応
N8N_URL/N8N_API_KEYの差し替えで切替えすることが可能
Related MCP server: n8n MCP Server
必要環境
macOS または Linux
Python 3.14.7 以上
起動済みの n8n (デフォルト
http://127.0.0.1:5678)起動済みの Ollama (デフォルト
http://127.0.0.1:11434)
構築手順
1. リポジトリを取得
git clone <このリポジトリのURL> ~/.n8n-mcp-server
cd ~/.n8n-mcp-serverstart.sh と stop.sh はホームディレクトリの ~/.n8n-mcp-server 配下を
前提にしているため、必ずこのパスに配置してください。
2. 仮想環境を作成して有効化
python -m venv venv
source venv/bin/activate3. 依存パッケージをインストール
pip install -r requirements.txtrequirements.txt には以下が含まれます。
mcp[cli]>=1.0.0— MCP サーバーフレームワークhttpx>=0.27.0— 非同期 HTTP クライアント
4. n8n の API キーを発行
n8n の Web UI (
http://127.0.0.1:5678) を開く左メニューの
Settings→APIを開くCreate an API keyをクリックしてキーを生成生成されたキーを後述の環境変数
N8N_API_KEYに設定
5. 環境変数を設定
n8n REST API へのリクエストには
X-N8N-API-KEYヘッダが自動で付与されます。
シェルの rc ファイル (~/.zshrc など) に追記します。
export N8N_HOST=127.0.0.1
export N8N_PORT=5678
export N8N_URL="http://${N8N_HOST}:${N8N_PORT}"
export N8N_USER_FOLDER="${HOME}/.n8n"
export MCP_SERVER_DIR="${HOME}/.n8n-mcp-server"
export N8N_BASIC_AUTH_ACTIVE=false
export N8N_USER_MANAGEMENT_DISABLED=trueOLLAMA_MODEL はクラウドモデル minimax-m3:cloud なども指定可能です。
反映するには source ~/.zshrc を実行してください。
起動と停止
起動
./start.sh実行内容:
ホームの
~/.n8n-mcp-serverに移動venvを有効化python server.pyをバックグラウンド (nohup) で起動ログを
logs/mcp.logに出力プロセス ID を
tmp/mcp.pidに保存
起動後、エラーがあった場合のログは tail -f logs/mcp.log で確認できます。
停止
./stop.shtmp/mcp.pid のプロセスに kill を送って停止し、PID ファイルを削除します。
Mac で VS Code からの接続
macOS の場合は setup_mcp_mac.py を実行することで、ウィンドウからの設定が可能です。
カレントディレクトリに移動
cd ~/.n8n-mcp-server/scriptsセットアップを実行
./setup_mcp_mac.pyLinux で VS Code からの接続
Linux 環境の場合は setup_mcp_linux.py を実行することで、ウィンドウからの設定が可能です。
カレントディレクトリに移動
cd ~/.n8n-mcp-server/scriptsセットアップを実行
./setup_mcp_linux.py提供されるツール
すべて server.py の @mcp.tool() デコレータで定義されています。
ツール名と引数は MCP クライアント (VS Code Copilot Chat など) に表示されます。
システム状態確認
check_n8n_status n8n のヘルスチェック(
GET /healthz)、登録済みワークフロー数(GET /api/v1/workflows)、 Ollama のモデル一覧(GET /api/tags)、API キーの設定有無をまとめて JSON で返します。 レスポンス形式:{"ok", "n8n_url", "n8n_health", "workflow_count", "ollama_host", "ollama_models", "api_key_configured"}。 引数なし。ask_ollama(prompt, model="") Ollama 経由でモデルに問い合わせます。
modelを空文字列にすると環境変数OLLAMA_MODEL、それも未設定ならminimax-m3:cloudを使用します。 エンドポイントはPOST {OLLAMA_HOST}/api/generate、リクエストは{"model", "prompt", "stream": false}。ollama listで利用可能なモデル名を確認できます。
n8n ワークフロー操作
list_n8n_workflows() すべてのワークフローの一覧を JSON 文字列で返します。
get_n8n_workflow(workflow_id) 指定 ID のワークフロー詳細 (ノードや接続を含む) を取得します。
create_n8n_workflow(name, nodes_json, connections_json="{}") 新規ワークフローを作成します。
nodes_jsonはノード配列の JSON 文字列、connections_jsonは接続オブジェクトの JSON 文字列(既定"{}")です。 リクエストにはsettings: {"executionOrder": "v1"}が自動付与されます。nodes_json/connections_jsonが JSON として不正な場合は{"ok": false, "error": "invalid_json"}を返します。 成功時は作成されたワークフローの JSON を返します。delete_n8n_workflow(workflow_id) 指定 ID のワークフローを削除します。
activate_n8n_workflow(workflow_id, active=True)
PATCH /api/v1/workflows/{id}に{"active": active}を送ります。 公開済みバージョンが必要です。deactivate_n8n_workflow(workflow_id) ワークフローを無効化します (
active=false)。公開済みバージョンは不要です。publish_n8n_workflow(workflow_id)
GET /api/v1/workflows/{id}で現在のversionIdを取得versionIdをactiveVersionIdに設定し、PATCH /api/v1/workflows/{id}に{"activeVersionId": versionId, "active": true}を送るversionIdが無い場合は{"ok": false, "error": "versionId_not_found"}を返します。 API 制限により失敗することがあるため、UI での公開を推奨します。
実行 (Execution)
execute_workflow_now(workflow_id)
POST /api/v1/workflows/{id}/runで実行します。タイムアウトは 60 秒です。get_n8n_executions(workflow_id="", limit=20)
GET /api/v1/executions?limit=...&workflowId=...で実行履歴を取得します。workflow_idを空にするとworkflowIdパラメータを送らず全件対象になります。get_n8n_execution(execution_id, include_data=True)
GET /api/v1/executions/{id}?includeData=true|falseで特定の実行履歴の詳細を取得します。include_data=Falseの場合はincludeDataパラメータを送りません。
Credentials
list_n8n_credentials()
GET /api/v1/credentialsの生レスポンス(JSON 文字列)を返します。 各エントリにはid/name/typeなどが含まれます。
使用例
稼働状態を一括確認する
Copilot Chat で次のように呼び出します。
check_n8n_status を使って n8n と Ollama の状態を確認してワークフローの一覧と詳細を見る
list_n8n_workflows を実行して、ID が 123 のものを get_n8n_workflow で詳細を見せてワークフローを新規作成する
nodes_json には n8n のノード定義配列を JSON 文字列で渡します。
例として、毎日 9 時に HTTP リクエストを送るだけの最小ワークフロー:
create_n8n_workflow を次の内容で実行して:
name: "Daily Ping"
nodes_json: '[{
"parameters": {
"url": "https://example.com",
"method": "GET"
},
"id": "abc123",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [240, 300]
}, {
"parameters": {
"rule": {"hour": 9}
},
"id": "def456",
"name": "Schedule",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1,
"position": [460, 300]
}]'
connections_json: '{}'成功すると作成されたワークフローの JSON が返るので、その ID を使って 実行や有効化を行います。
execute_workflow_now を ID 123 で実行
activate_n8n_workflow を ID 123 で active=true に実行履歴を調査する
get_n8n_executions を workflow_id=123, limit=5 で取得して
失敗しているものがあれば get_n8n_execution で詳細を見せてOllama に問い合わせる
ask_ollama を使って「Python の非同期処理とは?」を教えてモデル名を明示する場合は次のとおりです。
ask_ollama(prompt="俳句を一つ作って", model="minimax-m3:cloud")環境変数まとめ
N8N_URL— n8n のベース URL。省略時はhttp://127.0.0.1:5678N8N_API_KEY— n8n の API キー。未設定だとserver.pyは起動時に exit 1 で停止 しますOLLAMA_HOST— Ollama のベース URL。空文字だと起動時に exit 1。省略時はhttp://127.0.0.1:11434OLLAMA_MODEL—ask_ollamaで既定で使うモデル名。省略時はminimax-m3:cloud
起動時の環境変数検証
server.py は __main__ ブロック先頭で _validate_env() を呼び、以下の環境変数のうち
空文字のものをエラーにします。両方欠落の場合は両方がカンマ区切りで表示されます。
[FATAL] 必須環境変数が未設定です: N8N_API_KEY, OLLAMA_HOST
シェル(rc ファイル) または MCP 設定 (settings.json / mcp.json) を確認してください。トラブルシューティング
model 'xxx' not foundと返るollama listを実行し、表示されたモデル名をmodel引数に渡してください。 未インストールならollama pull <モデル名>で取得します。n8n API が 401 / 403 を返す 環境変数
N8N_API_KEYが正しいか、n8n restart後にキーが無効化されていないか確認します。接続エラーが返る(
{"ok": false, "error": "ConnectError", ...})ask_ollamaなどでhttpx.ConnectErrorが発生した場合、server.pyの_err()が 例外クラス名(ConnectError等)をerrorフィールドに入れて返します。N8N_URLとOLLAMA_HOSTのホスト名・ポートで各サービスが起動しているか確認します。curl http://127.0.0.1:5678/healthzやcurl http://127.0.0.1:11434/api/tagsで疎通確認ができます。起動はしたが VS Code でツールが出てこない
settings.jsonのmcp.serversまたはmcp.jsonのservers設定を見直して、VS Code を再読み込みします。 サーバーが標準出力に JSON-RPC を流しているかtail -f logs/mcp.logで確認してください。[FATAL] 必須環境変数が未設定ですで起動に失敗する 必須環境変数 (N8N_API_KEY,OLLAMA_HOST) のいずれかが空のまま起動しています。 検証ロジックとエラーメッセージのフォーマットは「起動時の環境変数検証」を確認の上で修正してください。VS Code からの接続 / 手動で構成したい スクリプト実行しても VS Code でツールが見つからない場合、
settings.jsonまたはmcp.jsonのいずれかに以下を手動で追加します。
VS Code 1.101+ では
mcp.jsonのserversキーを使用します。 それ未満のバージョンではsettings.jsonのmcp.serversキーを使用します。
settings.json 用(VS Code 1.100 以前):
{
"mcp.servers": {
"n8n-mcp-server": {
"command": "python",
"args": ["~/.n8n-mcp-server/server.py"],
"env": {
"N8N_URL": "http://127.0.0.1:5678",
"N8N_API_KEY": "APIキー",
"OLLAMA_HOST": "http://127.0.0.1:11434",
"OLLAMA_MODEL": "minimax-m3:cloud"
}
}
}
}mcp.json 用(VS Code 1.101+):トップレベルを servers に変更します。
{
"servers": {
"n8n-mcp-server": {
"command": "python",
"args": ["~/.n8n-mcp-server/server.py"],
"env": {
"N8N_URL": "http://127.0.0.1:5678",
"N8N_API_KEY": "APIキー",
"OLLAMA_HOST": "http://127.0.0.1:11434",
"OLLAMA_MODEL": "minimax-m3:cloud"
}
}
}
}VS Code を再起動すると、Copilot Chat からツールとして呼び出せるようになります。
ファイルが実行できなかった 起動するファイルに実行権限の付与をしてください。
chmod +x <ファイル名>ファイル構成
server.py— MCP サーバーの本体。各ツールの実装tests/— pytest ユニットテスト (httpx.MockTransport で外部 HTTP を差し替え)pytest.ini— pytest 設定 (asyncio_mode = auto,testpaths = tests).gitignore—__pycache__/,.pytest_cache/,venv/,.DS_Store等を除外requirements.txt— 依存パッケージ一覧start.sh— バックグラウンド起動スクリプトstop.sh— 停止スクリプトlogs/— 実行ログの出力先tmp/mcp.pid— 起動中のプロセス IDvenv/— Python 仮想環境
テスト
全 13 ツールの正常系・異常系と、起動時の環境変数検証をカバーした 24 件の テストが用意されています。
pip install pytest pytest-asyncio
pytest tests/ -vMCP Tool Annotations
すべてのツールに OpenAI Directory 互換の以下のヒントを宣言しています。
Hint | 意味 |
| ツールが状態を変更せずに「見るだけ」なのかを示す |
| 元に戻せない変更の可能性を事前告知する |
| 同じ引数で複数回呼んだ時の副作用の有無を示す |
| インターネット経由の外部サービスとの通信の有無を示す |
エラーハンドリング
すべてのツールは try/except でラップされ、構造化エラー
({"ok": false, "error": ..., "message": ...}) を返します。
This server cannot be deployed
Maintenance
Related MCP Connectors
n8n MCP — query your own n8n instance (BYO).
Open-source Zapier/n8n alternative as an MCP server: agents build, run and debug your workflows.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenance🪄 MCP server for programmatic creation and management of n8n workflows. Enables AI assistants to build, modify, and manage workflows without direct user intervention through a comprehensive set of tools and resources for interacting with n8n's REST API.1023 npm86MIT
- -licenseNot gradedqualityNot gradedmaintenanceProvides seamless integration between MCP-compatible AI assistants and n8n workflow automation, enabling intelligent management and automation of n8n workflows through natural language.5-
- AlicenseNot gradedqualityDmaintenanceEnables management of n8n workflows directly within LLMs through the Model Context Protocol, including listing, executing, and monitoring workflows.56 npm18ISC
- AlicenseAqualityDmaintenanceWraps the n8n self-hosted REST API to let Claude and MCP-compatible LLMs manage workflows, executions, credentials, and more via natural language.3954 npmMIT