n8n
Visual workflow automation platform.
Overview
n8n provides low-code workflow automation with 400+ integrations. n8n workflows can be exposed as MCP tools for AI agents via Bifrost integration.
| Property | Value |
|---|---|
| Image | n8nio/n8n:latest |
| Container | n8n |
| URL | n8n.ravenhelm.dev |
| Port | 5678 (internal) |
| Data | ~/ravenhelm/data/n8n/ |
Bifrost MCP Integration
n8n workflows can be automatically discovered and exposed as MCP tools for AI agents through Bifrost.
How It Works
- Create an n8n workflow with a Webhook trigger
- Mark it for discovery using one of:
- Name prefix:
[MCP] My Tool Name - Tag:
tool:enabled
- Name prefix:
- Optionally add metadata in the workflow Notes field (YAML front matter)
- Call the Bifrost sync API to register the tool
- AI agents can now execute the workflow via MCP
Discovery Methods
| Method | Example | Use Case |
|---|---|---|
| [MCP] Prefix | [MCP] Send Slack Alert | Quick setup, visible in workflow list |
| tool:enabled Tag | Add tag in n8n UI | Cleaner names, tag-based filtering |
Workflow Metadata (Optional)
Add YAML front matter to the workflow Notes field for custom tool configuration:
---
mcp_tool:
enabled: true
name: send_slack_alert
description: Send an alert message to a Slack channel
domain: notifications
timeout_ms: 30000
input_schema:
type: object
required:
- channel
- message
properties:
channel:
type: string
description: Slack channel name or ID
message:
type: string
description: Alert message content
severity:
type: string
enum: [info, warning, critical]
description: Alert severity level
---
Human-readable notes can go below the YAML block.
Bifrost Sync API
# Get Bifrost API key
BIFROST_KEY="TGqO5sE1MS3q1bTe9aA0W5BvXZXsbd8l"
# Preview discoverable workflows
curl -s "http://localhost:8000/api/v1/n8n/discover" \
-H "X-API-Key: $BIFROST_KEY"
# Sync workflows to tool registry
curl -s -X POST "http://localhost:8000/api/v1/n8n/sync" \
-H "X-API-Key: $BIFROST_KEY" \
-H "Content-Type: application/json" \
-d '{"connection_name": "default"}'
# View sync history
curl -s "http://localhost:8000/api/v1/n8n/sync/history" \
-H "X-API-Key: $BIFROST_KEY"
MCP Tool Endpoints
| Endpoint | Method | Purpose |
|---|---|---|
/api/v1/n8n/connections | GET | List n8n connections |
/api/v1/n8n/discover | GET | Preview discoverable workflows |
/api/v1/n8n/sync | POST | Sync workflows to tool registry |
/api/v1/n8n/sync/history | GET | View sync history |
/mcp/tools/list | POST | List available MCP tools |
/mcp/tools/call | POST | Execute an MCP tool |
Example: Echo Tool
A minimal example workflow that echoes a message:
Workflow Structure:
- Webhook node (path:
bifrost-echo, POST, responseNode mode) - Set node (build response JSON)
- Respond to Webhook node (return JSON response)
Response format expected by Bifrost:
{
"success": true,
"result": {
"echo": "Your message here",
"received_at": "2026-01-03T12:00:00.000Z"
}
}
Current MCP-Enabled Workflows
| Workflow | Tool Name | Domain | Description |
|---|---|---|---|
| [MCP] Bifrost Echo Tool | bifrost_echo_tool | system | Test echo for integration validation |
Active Workflows
| Workflow ID | Name | Schedule |
|---|---|---|
L1s3t1GzIuMx8JfM | Ravenhelm Git Monitor | Hourly |
HCXMES3zzfg0R4On | Todoist Bidirectional Sync | Webhook |
o4BfG9OQYc917H9L | PostgreSQL to Notion Sync | Every 15 min |
t0FdWxW5hVbvdDgl | Slack PM Bot - The Norns | Daily/Weekly |
IpgMUE7ju3gqRxu5 | Todoist OAuth Callback | On demand |
| Claude Config Sync | Sync across machines | On file change |
3Qe1MAyATJ6B9JPR | [MCP] Bifrost Echo Tool | MCP tool |
Key Workflows
Ravenhelm Git Monitor
Monitors the ravenhelm monorepo for uncommitted changes and sends Slack notifications.
Triggers alert when:
- More than 10 files with uncommitted changes
- Changes sitting uncommitted for over 24 hours
Features:
- Groups changes by service directory
- Shows time since last commit
- Posts alerts to #notifications channel
- Runs every hour
Configuration:
- Workflow: L1s3t1GzIuMx8JfM
- Schedule: Every 1 hour
- Notification: #notifications Slack channel
- Volume mount:
/ravenhelm(read-only)
Workflow Flow:
Schedule (hourly)
↓
Execute Command (git status + git log)
↓
Parse (extract file count, group by service)
↓
Check (>10 files OR >24h since commit?)
↓
Format Message → Slack #notifications
Quick Commands
# View logs
docker logs -f n8n
# Restart
docker restart n8n
# Export workflows
docker exec n8n n8n export:workflow --all --output=/tmp/workflows.json
# Test git access from container
docker exec n8n sh -c 'cd /ravenhelm && git status --porcelain | wc -l'
API Access
# Get API key from 1Password
op item get "n8n API Key" --vault ravenmask --fields credential --reveal
# List workflows
curl -H "X-N8N-API-KEY: <key>" https://n8n.ravenhelm.dev/api/v1/workflows
# Activate workflow
curl -X POST -H "X-N8N-API-KEY: <key>" \
https://n8n.ravenhelm.dev/api/v1/workflows/<id>/activate
# Check recent executions
curl -H "X-N8N-API-KEY: <key>" \
"https://n8n.ravenhelm.dev/api/v1/executions?workflowId=<id>&limit=5"
Credentials
| Credential | Purpose |
|---|---|
| PostgreSQL | Database access |
| Todoist | Task management |
| Notion | Documentation sync |
| Slack - The Norns | Notifications |
| Google Calendar | Calendar access |
Volume Mounts
| Host Path | Container Path | Mode |
|---|---|---|
~/ravenhelm/data/n8n | /home/node/.n8n | rw |
~/ravenhelm | /ravenhelm | ro |
The /ravenhelm mount provides read-only access to the monorepo for git status checks.
Webhook URLs
| Webhook | URL |
|---|---|
| Todoist | https://n8n.ravenhelm.dev/webhook/todoist-webhook |
| Claude Config | https://n8n.ravenhelm.dev/webhook/claude-config-sync |
| Bifrost Echo | https://n8n.ravenhelm.dev/webhook/bifrost-echo |
Docker Networking
From n8n container, reach odin host via:
host.docker.internal- For local services- Container names - For Docker services
Troubleshooting
Issue: Workflow Not Triggering
Symptoms: Webhook or scheduled workflow doesn't run
Diagnosis:
# Check n8n logs
docker logs n8n | grep -i error
# Verify workflow is active
curl -H "X-N8N-API-KEY: <key>" \
https://n8n.ravenhelm.dev/api/v1/workflows/<id>
Solutions:
- Verify workflow is activated
- Check webhook URL is accessible
- Review execution history for errors
Issue: Git Monitor Can't Access Repo
Symptoms: Git Monitor workflow fails with path error
Diagnosis:
# Verify mount exists
docker exec n8n ls /ravenhelm
# Test git command
docker exec n8n sh -c 'cd /ravenhelm && git status'
Solutions:
- Check docker-compose has the volume mount
- Restart n8n:
docker compose up -d - Verify host path exists
Issue: MCP Tool Not Discovered
Symptoms: Workflow doesn't appear in Bifrost discover endpoint
Diagnosis:
# Check workflow is active
curl -H "X-N8N-API-KEY: <key>" \
https://n8n.ravenhelm.dev/api/v1/workflows | jq '.data[] | {id, name, active}'
# Verify naming/tagging
# Workflow must have [MCP] prefix OR tool:enabled tag
Solutions:
- Ensure workflow is active (not just saved)
- Verify
[MCP]prefix is at the start of the name - Check webhook node has a valid path
- Verify n8n API key is configured in Bifrost