Skip to content

n8n & Make

Copy page

Divinci runs a hosted MCP server at mcp.divinci.app. Both n8n and Make can act as MCP clients, so connecting them is configuration, not code: point the client at one URL, give it an API key, and an AI agent in your workflow can call Divinci's tools — chat, RAG, transcripts, releases, connectors and more — with no HTTP nodes to wire by hand.

| | | |---|---| | Endpoint | https://mcp.divinci.app/mcp | | Transport | Streamable HTTP | | Auth header | Authorization: Bearer divinci_… |

  1. In the Divinci app, go to WhiteLabel → Setup → Embed → API Keys → Create.

  2. Leave every permission box unchecked and the IP whitelist empty.

  3. Copy the key. It is 91 characters and starts with divinci_, and it is shown once.

n8n's MCP Client Tool node (n8n-nodes-langchain.toolmcp) is a sub-node: it attaches to an AI Agent node and hands that agent the server's tools.

  1. Add an AI Agent node to your workflow.

  2. Attach an MCP Client Tool sub-node to it.

  3. For the connection type choose HTTP Streamable, not SSE — the SSE option points at an endpoint that returns 410.

  4. Set the endpoint to https://mcp.divinci.app/mcp.

  5. Create a credential with Bearer authentication and paste the divinci_… key as the token. (If your n8n version only offers header auth, add a header named Authorization with the value Bearer divinci_….)

  6. Optionally restrict which tools the agent may call. The server exposes around 200; handing an agent all of them makes its tool-selection worse, not better.

The MCP Client node (@n8n/n8n-nodes-langchain.mcpClient) is a regular node rather than an agent sub-node, so it can sit anywhere in a pipeline and call a single named tool. This is the smallest thing that proves the connection works. The parameters below are a working configuration, executed against mcp.divinci.app on 2026-08-28:

{
"serverTransport": "httpStreamable",
"endpointUrl": "https://mcp.divinci.app/mcp",
"authentication": "bearerAuth",
"tool": { "__rl": true, "mode": "id", "value": "search_tools" },
"inputMode": "json",
"jsonInput": "{ \"query\": \"rag\" }"
}

The credential is n8n's built-in Bearer Auth type (httpBearerAuth) with the divinci_… key as the token. The node emits one item whose content is the MCP tool result:

{ "content": [ { "type": "text", "text": "Found 5 tools matching \"rag\": …" } ] }

search_tools is a good first call because it needs no scopes and no data in the workspace — if it returns and a tool you want does not, the difference is your key's scopes, not the connection.

Make's MCP Client app connects a scenario or a Make AI Agent to an external MCP server.

  1. Add an MCP Client module, or attach one as a tool on a Make AI Agent.

  2. Create a connection. For MCP Server, choose + new MCP server — Divinci is not in Make's verified-server dropdown, so the URL is not prefilled.

  3. Set URL to https://mcp.divinci.app/mcp.

  4. Put the divinci_… key in API Key / Access Token.

  5. Use Call a Tool / Request to invoke one tool directly — it is the fastest way to confirm the connection before wiring an agent around it.

Two checks that need no client and no key, and that tell you whether a failure is yours or ours:

Terminal window
# Reachable, and correctly refusing an unauthenticated caller:
curl -i -X POST https://mcp.divinci.app/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{
"protocolVersion":"2025-06-18","capabilities":{},
"clientInfo":{"name":"curl","version":"0"}}}'
# → HTTP 401 with a WWW-Authenticate: Bearer header. This is the healthy answer.
# The retired transport, so you can recognise it:
curl -o /dev/null -w '%{http_code}\n' https://mcp.divinci.app/sse
# → 410

https://mcp.divinci.app/info also answers unauthenticated, and reports the endpoint the server considers current under protocols.mcp.streamableHttpEndpoint.

Around 200 tools across 40 modules. The ones most workflows reach for:

| Area | Tools | |---|---| | Chat | chat_create, chat_send_message, chat_get_history, chat_list | | RAG | rag_search, rag_list_files, rag_upload_prepare, rag_upload_finalize, rag_get_file_status | | Connectors | connector_list, connector_sync, connector_sync_status, connector_stats | | Releases | release_list, release_get, release_publish | | Identity | whoami — the cheapest possible connection test |

The full list is in the Tool Catalog.

| Symptom | Cause | |---|---| | 410 Gone | The client reached /sse or /message. Use /mcp and the Streamable HTTP transport. | | 401 with WWW-Authenticate: Bearer | No key, or the header is not Authorization: Bearer divinci_…. The MCP server does not read X-API-Key — that header works on the REST API (/api/v1/*), not here. | | 401 with a key you believe is valid | The key was revoked, expired, or has an IP whitelist that excludes your client's egress. n8n Cloud and Make call from their own IPs, not yours. | | 404 MCP is not enabled for this whitelabel | You used the whitelabel-scoped URL /{whitelabelId}/mcp for a workspace with no MCP-enabled release. The root /mcp resolves the workspace from the key itself and is the right URL for an API key. | | Every tool denied, including whoami | Almost certainly a key scoped with transcript:*, whitelabel:*, analytics:read or byok:* — none of which MCP recognises as scopes. Re-mint with no boxes checked. | | One tool missing or denied | The release curates its exposed tools, or the key lacks that tool's scope. Retest with an empty-permissions key to tell the two apart. |

The other direction: let Divinci push into your workflow

Section titled “The other direction: let Divinci push into your workflow”

Everything above is your workflow calling Divinci. For Divinci to call you — a webhook into an n8n Webhook node or a Make custom webhook — you need a delivery channel pointing at that URL and a trigger that routes events into it.

Configure both with the MCP tools you are already connected to. The REST API cannot do it: /api/v1 exposes notifications read-only (GET /notifications, GET /notifications/counts, PATCH /notifications/{id}/read), and delivery-channel and trigger CRUD live only on the JWT-authenticated /white-label/* router, which an API key cannot reach. The MCP surface has no such gap:

| Tool | | |---|---| | notification_channel_create | Point a channel at your n8n/Make webhook URL, with an HMAC secret | | notification_channel_test | Send a test delivery before wiring anything to it | | notification_channel_verify | Required for email channels | | notification_trigger_create | Route matching events into the channel | | notification_channel_logs | The last 100 delivery attempts — start here when nothing arrives |

These need notification:read / notification:write, which an empty-permissions key resolves to. (See the scope caution above — this is another reason to mint the key with no boxes checked.)

Then handle the delivery correctly on your side: verify the HMAC, respect the ±300s replay window, and treat X-Divinci-Event-ID as an idempotency key, because a slow-but-successful handler will be retried with the same event. The full receiving contract, with verification code, is in Notifications, Analytics & Metrics.

| URL | Use it for | |---|---| | https://mcp.divinci.app/mcp | API keys. The workspace is resolved from the key. This is the n8n/Make path. | | https://mcp.divinci.app/{whitelabelId}/mcp | Multi-tenant OAuth clients acting for a specific workspace. Requires MCP enabled on that whitelabel, and 404s otherwise. |

Staging and dev run the same server at mcp.stage.divinci.app and mcp.dev.divinci.app — useful for testing a workflow without spending against production.