MCP toggle "Available in MCP" does not save — workflow never appears in MCP list (v2.8.3)

I'm running n8n v2.8.3 (self-hosted). I have Instance-level MCP enabled (Settings → Instance-level MCP → toggle ON). OAuth connection to Claude.ai is working.

Problem:
When I try to enable MCP access for a workflow, the toggle does not persist:

1. Method 1 — From workflow editor: I open the workflow → menu "..." → Settings → toggle "Available in MCP" ON → Save. When I reload the page, the toggle is OFF again.

2. Method 2 — From MCP settings page: I go to Settings → Instance-level MCP → click "Enable workflows" → select the workflow → click Enable. The workflow never appears in the enabled workflows list.

3. No errors are shown in the UI.

4. In the browser DevTools Network tab, no API request is sent when I toggle "Available in MCP" and click Save — the save action doesn't seem to include the MCP setting.

What I've tried:
- Multiple workflows (complex workflow with Chat Trigger + simple test workflow with only Chat Trigger)
- All workflows are published and active
- My account is Owner role
- Toggling MCP off/on at instance level
- Disconnecting and reconnecting the OAuth client (Claude.ai)
- Restarting n8n
- Creating a brand new workflow from scratch (not imported)

Expected behavior:
The workflow should appear in the MCP workflows list and be accessible by connected MCP clients.

Environment:
- n8n version: 2.8.3
- Hosting: self-hosted
- MCP client: Claude.ai (Anthropic)

Hi @Simone_V

It looks like you’re hitting a bug or limitation.

  • Your setup matches the documented requirements for exposing workflows to MCP.

  • The behavior you see is strongly suggests a UI/API bug in 2.8.3.

  • The most reliable path forward is to:

    • Capture logs + network payloads,
    • Report it on the forum as a reproducible bug,
    • Plan to upgrade once a fix is confirmed.

fastest workaround you could test is bypassing the ui and writing it straight to your database. just update the workflow_entity table and inject "availableInMCP": true into the settings json for that specific workflow id.

once it’s in the database, the backend reads it right away and claude will see the tool instantly. otherwise you just have to wait for the next patch or roll back to a 2.7 release.

1 Like

I ran into the same issue and found a few additional workarounds beyond the SQL approach:

Workaround 1: Direct SQLite fix (self-hosted)

If you’re self-hosted with SQLite, you can fix it directly:

UPDATE workflow_entity
SET settings = JSON_SET(settings, '$.availableInMCP', 1)
WHERE id = 'your-workflow-id';

Make sure n8n is stopped before editing the DB, then restart.

Workaround 2: n8n REST API

You can patch the workflow settings via the API without touching the DB:

curl -X PATCH https://your-n8n-instance/api/v1/workflows/YOUR_WORKFLOW_ID \
  -H "X-N8N-API-KEY: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{"settings": {"availableInMCP": true}}'

This bypasses the UI toggle entirely.

Workaround 3: Upgrade to 2.9.x

The bug appears fixed in the 2.9.x beta branch. If you’re on Docker:

docker pull n8nio/n8n:beta

Or pin to 2.9.1 if it’s available as a stable tag in your registry.

Root cause: The UI toggle fires a PATCH request but the availableInMCP field isn’t being persisted correctly in the workflow_entity.settings JSON column in v2.8.3. The backend reads it on startup, so even a manual DB edit + restart should make the workflow appear in the MCP list immediately.

Hope this helps until an official patch lands!