Skip to main content

n8n Chatbot MCP Server

Python MCP License: MIT PyPI

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-Id from 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://config exposes 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)

Source distribution for n8n-chatbot-mcp 2.0.0
File Size Uploaded Provenance
n8n_chatbot_mcp-2.0.0.tar.gz 12.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for n8n-chatbot-mcp 2.0.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page