n8n Chatbot MCP Server
Turn any n8n Chat Trigger webhook into an MCP tool. Just provide the webhook URL — the server auto-discovers the chatbot name, description, welcome message, and required headers from the n8n Chat Trigger page.
Features
- Zero Config — Only the webhook URL is required, everything else is auto-discovered
- Auto-Discovery — Extracts name, description, welcome message, and
X-Instance-Idfrom the chat UI - Multi-Turn — Session ID support for contextual conversations
- Multiple Bots — Register as many n8n chatbots as you want, each as a separate MCP server
- Additive Description — Auto-discovered subtitle + optional extra context via env var
- Structured Output — Answers come back as typed JSON (
answer,session_id), not loose text - Config Resource —
n8n://configexposes what auto-discovery found, for inspection and debugging
Quick Start
Claude Code
claude mcp add my-chatbot \
-e N8N_CHATBOT_URL="https://n8n.example.com/webhook/my-bot/chat" \
-- uvx n8n-chatbot-mcp
Claude Desktop
Add to your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"my-chatbot": {
"command": "uvx",
"args": ["n8n-chatbot-mcp"],
"env": {
"N8N_CHATBOT_URL": "https://n8n.example.com/webhook/my-bot/chat"
}
}
}
}
Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"my-chatbot": {
"command": "uvx",
"args": ["n8n-chatbot-mcp"],
"env": {
"N8N_CHATBOT_URL": "https://n8n.example.com/webhook/my-bot/chat"
}
}
}
}
Windsurf
Add to Windsurf MCP config:
{
"mcpServers": {
"my-chatbot": {
"command": "uvx",
"args": ["n8n-chatbot-mcp"],
"env": {
"N8N_CHATBOT_URL": "https://n8n.example.com/webhook/my-bot/chat"
}
}
}
}
VS Code
Add to your VS Code settings (JSON):
"mcp": {
"servers": {
"my-chatbot": {
"type": "stdio",
"command": "uvx",
"args": ["n8n-chatbot-mcp"],
"env": {
"N8N_CHATBOT_URL": "https://n8n.example.com/webhook/my-bot/chat"
}
}
}
}
Gemini CLI
Add to ~/.gemini/settings.json:
{
"mcpServers": {
"my-chatbot": {
"command": "uvx",
"args": ["n8n-chatbot-mcp"],
"env": {
"N8N_CHATBOT_URL": "https://n8n.example.com/webhook/my-bot/chat"
}
}
}
}
GitHub Copilot
Add to ~/.copilot/mcp-config.json:
{
"mcpServers": {
"my-chatbot": {
"command": "uvx",
"args": ["n8n-chatbot-mcp"],
"env": {
"N8N_CHATBOT_URL": "https://n8n.example.com/webhook/my-bot/chat"
}
}
}
}
OpenAI Codex
Add to ~/.codex/config.toml:
[mcp_servers.my-chatbot]
command = "uvx"
args = ["n8n-chatbot-mcp"]
[mcp_servers.my-chatbot.env]
N8N_CHATBOT_URL = "https://n8n.example.com/webhook/my-bot/chat"
Install from Source
cd n8n-chatbot-mcp
pip install -e .
Configuration
| Environment Variable | Required | Default | Description |
|---|---|---|---|
N8N_CHATBOT_URL |
Yes | — | Full n8n Chat Trigger webhook URL |
N8N_CHATBOT_DESCRIPTION |
No | — | Extra context appended to auto-discovered description |
N8N_CHATBOT_TIMEOUT |
No | 120 |
Request timeout in seconds |
N8N_CHATBOT_VERIFY_TLS |
No | true |
Set to false only for an n8n behind a self-signed certificate |
TLS certificate verification is on by default. If your n8n uses a self-signed
certificate the tool fails with an error naming N8N_CHATBOT_VERIFY_TLS; set it to false
only when you also trust the network between you and that host.
Auto-Discovery
At startup the server makes a single GET request to the webhook URL and parses the n8n Chat Trigger HTML to extract:
- Chatbot name (from
i18n.title) — used as the MCP server name - Chatbot description (from
i18n.subtitle) — used in the tool description - Welcome message (from
initialMessages) — included in tool context - X-Instance-Id header — sent with every POST request
N8N_CHATBOT_DESCRIPTION is additive: the auto-discovered subtitle is always included, and the env var value is appended after it.
Multiple Chatbots
Register as many n8n chatbots as you need — each one is a separate MCP server entry:
{
"mcpServers": {
"hr-bot": {
"command": "uvx",
"args": ["n8n-chatbot-mcp"],
"env": {
"N8N_CHATBOT_URL": "https://n8n.example.com/webhook/hr-bot/chat"
}
},
"it-bot": {
"command": "uvx",
"args": ["n8n-chatbot-mcp"],
"env": {
"N8N_CHATBOT_URL": "https://n8n.example.com/webhook/it-bot/chat",
"N8N_CHATBOT_DESCRIPTION": "Also helps with VPN and system access issues"
}
}
}
}
Tool
ask_chatbot — Send a question to the chatbot
Sends a question to the n8n chatbot and returns the response.
| Parameter | Type | Required | Description |
|---|---|---|---|
question |
string | Yes | The question to ask |
session_id |
string | No | Session ID for multi-turn conversations (auto-generated if omitted) |
Returns structured output:
| Field | Type | Description |
|---|---|---|
answer |
string | The chatbot's answer |
session_id |
string | Session this answer belongs to — pass it back to continue the conversation |
Resource
n8n://config — Auto-discovered chatbot configuration
JSON document with the webhook URL, discovered name and description, welcome messages, the names of the request headers being sent, and the configured timeout. Useful when auto-discovery does not pick up what you expected.
Requirements
Python 3.10+ and MCP SDK 2.x (mcp>=2.2,<3). The server speaks the 2026-07-28 protocol
revision and still serves older MCP clients from the same process.
License
MIT
Metadata
Release files for n8n-chatbot-mcp 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| n8n_chatbot_mcp-2.0.0.tar.gz | 12.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| n8n_chatbot_mcp-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.4 kB
Release files / n8n_chatbot_mcp-2.0.0.tar.gz
| Download URL | n8n_chatbot_mcp-2.0.0.tar.gz |
|---|---|
| Size | 12.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fb7a990534162410caabc1184375924bd205cf13db51cb33721996a0460ad0bc
|
|
BLAKE2b-256 checksum How to use checksums |
39dcacbd938d64bd346729c1526be8eebb6b2ee6f30f3979f322f18d156da7a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.11
|
Release files / n8n_chatbot_mcp-2.0.0-py3-none-any.whl
| Download URL | n8n_chatbot_mcp-2.0.0-py3-none-any.whl |
|---|---|
| Size | 9.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
47e99ce34ac64f979b4065e730ca64b7808769fb3568f5bdfe8f76cf8086f33f
|
|
BLAKE2b-256 checksum How to use checksums |
285bcfbc0f0377502581204e5e9a3c9751ab82c469337778dccbcd1f60d5f1b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.11
|
Security for n8n-chatbot-mcp 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.