n8n-nodes-webo-mcp
v0.2.8
Published
n8n ↔ Webo MCP: WordPress as AI MCP backend (JSON-RPC). Plugin: github.com/mrphuong-webo/webo-mcp — webomcp.com
Downloads
69
Maintainers
Readme
n8n-nodes-webo-mcp
Custom n8n community node for WEBO MCP (WordPress plugin folder webo-mcp).
WEBO MCP — links & intro copy
- Product site: webomcp.com — Webo MCP turns WordPress into an AI-friendly platform (tools/abilities, automation with n8n and agents).
- WordPress plugin (source): github.com/mrphuong-webo/webo-mcp
- Short/long copy for npm & n8n Community: docs/n8n-community-intro.md
npm: use a single package — n8n-nodes-webo-mcp. The old package n8n-nodes-webo-wordpress-mcp is deprecated; uninstall it (npm uninstall n8n-nodes-webo-wordpress-mcp in ~/.n8n/nodes) and install n8n-nodes-webo-mcp.
Features
- Operations:
initialize,tools/list,tools/call - WEBO MCP (general operations) and WEBO MCP (AI Agent) (
usableAsToolfor the AI Agent — avoids duplicate “Tool” in the tool picker) - Auth via WordPress Application Password (Basic), optionally combined with
X-WEBO-API-KEYand/or HMAC (X-WEBO-TIMESTAMP,X-WEBO-SIGNATURE) - Proxy auth: send requests via WordPress mcp-proxy with
chat_token— HMAC is per-author (no need to store secrets in n8n).chat_tokenTTL 24h, sliding expiry on each proxy call. - sessionId from WordPress (firstEntryJson) for chat history: n8n Chat Trigger with Load Previous Session = From Memory, connected to a Memory node.
- Auto-initialize session when
tools/callhas nosession_id
Install (community node)
- Build the package:
npm installnpm run build
- Pack/publish or link into n8n community nodes path.
- In n8n, add credentials WEBO MCP API:
- Base URL:
https://your-site.com/wp-json/mcp/v1/router(can be left empty when using Auth = Proxy) - Auth: Proxy (per author) = node reads
site_urlandchat_tokenfrom input (metadata from chat widget); for direct router access use Basic or a combined mode such as Basic + API Key / Basic + HMAC if the plugin enabled secondary checks.
- Base URL:
Self-host deployment
The repo includes deploy.ps1: build → pack → scp to server → copy into container ~/.n8n/custom (n8n “Install private nodes” style) → remove old install (avoid duplicate node/credential) → restart n8n. For workflow details when chatting from WordPress, see docs/fix-workflow-when-chat-from-wordpress.md.
Security: Deploy/cleanup scripts do not contain keys or IPs in the repo. Set env before running: N8N_SSH_KEY, N8N_SERVER (see comments in deploy.ps1 and scripts/cleanup-webo-n8n-remote.ps1). Do not commit .env or SSH keys.
Check for duplicates on server: Run .\scripts\check-server.ps1 (requires SSH to server). It scans for webo/mcp and reports if an old copy remains in nodes/node_modules or if credential is missing Proxy.
401 on node “WEBO MCP” (Initialize / List tools): WEBO MCP plugin 2.0.27+ requires a real WordPress login first: Application Password (Basic) or a logged-in session. If the plugin also configured WEBO API Key and/or HMAC, those are checked after Basic auth. In this package, use Basic, Basic + API Key, Basic + HMAC, or Basic + API Key + HMAC for direct router access. Use API Key Only / HMAC Only only with older server behavior. With Proxy, put chat_token on the input (or use Proxy: Chat Token (fallback) on the node) and Domain or site_url so the request hits …/mcp-proxy.
Too many WEBO nodes in the palette? You should see two from this package: WEBO MCP and WEBO MCP (AI Agent). Extra entries such as WEBO WordPress MCP usually mean the deprecated package n8n-nodes-webo-wordpress-mcp is still installed alongside n8n-nodes-webo-mcp. Run npm uninstall n8n-nodes-webo-wordpress-mcp in ~/.n8n/nodes, remove any duplicate copy under ~/.n8n/custom, restart n8n, and refresh the UI.
This repository also includes a ready setup for n8n self-host:
- Docker Compose:
deploy/docker-compose.n8n-selfhost.yml - Env template:
deploy/.env.example - Install scripts:
scripts/install-node-in-docker.ps1scripts/install-node-in-docker.sh
A) Docker self-host
Build and pack the node package:
npm installnpm run buildnpm pack
Prepare deploy folder:
cd deploy- Copy
.env.exampleto.envand edit values - Create folder
custom
Copy the package tgz into deploy custom folder and rename:
../n8n-nodes-webo-mcp-0.2.8.tgz→deploy/custom/n8n-nodes-webo-mcp.tgz
Start n8n:
docker compose --env-file .env -f docker-compose.n8n-selfhost.yml up -d
Install the node into the running container:
- PowerShell:
../scripts/install-node-in-docker.ps1 -ContainerName n8n - Shell:
../scripts/install-node-in-docker.sh n8n
- PowerShell:
Open n8n UI and confirm nodes appear:
- WEBO MCP
- WEBO MCP (AI Agent)
B) Non-Docker self-host (PM2/systemd)
Build and pack:
npm installnpm run buildnpm pack
On the n8n server:
mkdir -p ~/.n8n/customcd ~/.n8n/customnpm install /path/to/n8n-nodes-webo-mcp-0.2.8.tgz
Set environment:
N8N_COMMUNITY_PACKAGES_ENABLED=true
Restart the n8n service.
Basic usage
- Add node WEBO MCP
- Choose operation:
tools/list,initialize, or a tool name fromtools/list - Credential WEBO MCP API:
- Proxy (per author): Auth = "Proxy (per author: chat_token)". Base URL can be empty. Input item must have
metadata.metadata.site_url(ormetadata.site_url) andmetadata.chat_token(e.g. from Chat Trigger). Each request uses the correct key per user; no need to store secrets in n8n. - Basic: Auth = "User + Application Password (Basic)".
- Basic + API Key / HMAC: use these combined modes if the plugin configured
webo_mcp_api_keyand/orwebo_mcp_hmac_secret.
- Proxy (per author): Auth = "Proxy (per author: chat_token)". Base URL can be empty. Input item must have
AI Agent tool usage
Use node WEBO MCP (AI Agent) as a tool for the n8n AI Agent. The node reads name and arguments from the input item (provided by the AI or the flow).
Required input fields
| Field | Required | Description |
|-------|----------|-------------|
| name or toolName | Yes | Tool name (must match tools/list). The AI selects the tool and n8n passes it when invoking the tool. |
| arguments or toolArguments | Yes | JSON object — tool parameters. The AI fills according to the tool schema. |
| session_id | No | If present, the node reuses the session; otherwise it calls initialize then the tool. |
| metadata (when Auth = Proxy) | Yes | Must contain metadata.site_url (or metadata.metadata.site_url) and metadata.chat_token so the node can call mcp-proxy per author. |
Example input item when the AI calls a tool (fixed HMAC):
{
"name": "webo/list-posts",
"arguments": { "per_page": 10, "post_type": "post" }
}When using Proxy: Items from the Chat Trigger already include metadata (site_url, chat_token, authorKey). Connect the Chat Trigger output (or a node that merges metadata) to WEBO MCP (AI Agent); the node reads site_url and chat_token to call mcp-proxy.
Flow setup: Add an AI Agent → add WEBO MCP (AI Agent) to Tools → select credential WEBO MCP API (Proxy or HMAC). The node reads name/arguments from input; with Proxy it reads site_url and chat_token from metadata.
The WEBO MCP (AI Agent) node is marked usableAsTool for agent tool-calling.
Pro package
The commercial Pro node is shipped separately as package n8n-nodes-webo-mcp-pro.
Example tools/call input item
Example item that the AI or flow passes into the node:
- name:
webo/list-posts - arguments:
{
"per_page": 10,
"post_type": "post"
}Notes
- For internal tools, the user/API key must have the right permissions and policy filters must allow it.
- With HMAC, the signature follows the plugin format:
sha256=HMAC_SHA256("{timestamp}.{raw_body}")and is sent inX-WEBO-SIGNATUREwithX-WEBO-TIMESTAMP.
Commercialization
For commercial rollout templates and operations docs, see: commercial/README.md.
