Skip to main content

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.

PropertyValue
Imagen8nio/n8n:latest
Containern8n
URLn8n.ravenhelm.dev
Port5678 (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

  1. Create an n8n workflow with a Webhook trigger
  2. Mark it for discovery using one of:
    • Name prefix: [MCP] My Tool Name
    • Tag: tool:enabled
  3. Optionally add metadata in the workflow Notes field (YAML front matter)
  4. Call the Bifrost sync API to register the tool
  5. AI agents can now execute the workflow via MCP

Discovery Methods

MethodExampleUse Case
[MCP] Prefix[MCP] Send Slack AlertQuick setup, visible in workflow list
tool:enabled TagAdd tag in n8n UICleaner 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

EndpointMethodPurpose
/api/v1/n8n/connectionsGETList n8n connections
/api/v1/n8n/discoverGETPreview discoverable workflows
/api/v1/n8n/syncPOSTSync workflows to tool registry
/api/v1/n8n/sync/historyGETView sync history
/mcp/tools/listPOSTList available MCP tools
/mcp/tools/callPOSTExecute an MCP tool

Example: Echo Tool

A minimal example workflow that echoes a message:

Workflow Structure:

  1. Webhook node (path: bifrost-echo, POST, responseNode mode)
  2. Set node (build response JSON)
  3. 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

WorkflowTool NameDomainDescription
[MCP] Bifrost Echo Toolbifrost_echo_toolsystemTest echo for integration validation

Active Workflows

Workflow IDNameSchedule
L1s3t1GzIuMx8JfMRavenhelm Git MonitorHourly
HCXMES3zzfg0R4OnTodoist Bidirectional SyncWebhook
o4BfG9OQYc917H9LPostgreSQL to Notion SyncEvery 15 min
t0FdWxW5hVbvdDglSlack PM Bot - The NornsDaily/Weekly
IpgMUE7ju3gqRxu5Todoist OAuth CallbackOn demand
Claude Config SyncSync across machinesOn file change
3Qe1MAyATJ6B9JPR[MCP] Bifrost Echo ToolMCP 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

CredentialPurpose
PostgreSQLDatabase access
TodoistTask management
NotionDocumentation sync
Slack - The NornsNotifications
Google CalendarCalendar access

Volume Mounts

Host PathContainer PathMode
~/ravenhelm/data/n8n/home/node/.n8nrw
~/ravenhelm/ravenhelmro

The /ravenhelm mount provides read-only access to the monorepo for git status checks.


Webhook URLs

WebhookURL
Todoisthttps://n8n.ravenhelm.dev/webhook/todoist-webhook
Claude Confighttps://n8n.ravenhelm.dev/webhook/claude-config-sync
Bifrost Echohttps://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:

  1. Verify workflow is activated
  2. Check webhook URL is accessible
  3. 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:

  1. Check docker-compose has the volume mount
  2. Restart n8n: docker compose up -d
  3. 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:

  1. Ensure workflow is active (not just saved)
  2. Verify [MCP] prefix is at the start of the name
  3. Check webhook node has a valid path
  4. Verify n8n API key is configured in Bifrost