n8n & Make
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.
The whole integration, in three values
Section titled “The whole integration, in three values”| | |
|---|---|
| Endpoint | https://mcp.divinci.app/mcp |
| Transport | Streamable HTTP |
| Auth header | Authorization: Bearer divinci_… |
1. Mint an API key
Section titled “1. Mint an API key”-
In the Divinci app, go to WhiteLabel → Setup → Embed → API Keys → Create.
-
Leave every permission box unchecked and the IP whitelist empty.
-
Copy the key. It is 91 characters and starts with
divinci_, and it is shown once.
2a. n8n
Section titled “2a. n8n”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.
-
Add an AI Agent node to your workflow.
-
Attach an MCP Client Tool sub-node to it.
-
For the connection type choose HTTP Streamable, not SSE — the SSE option points at an endpoint that returns 410.
-
Set the endpoint to
https://mcp.divinci.app/mcp. -
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 namedAuthorizationwith the valueBearer divinci_….) -
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.
Calling one tool directly (no AI agent)
Section titled “Calling one tool directly (no AI agent)”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.
2b. Make
Section titled “2b. Make”Make's MCP Client app connects a scenario or a Make AI Agent to an external MCP server.
-
Add an MCP Client module, or attach one as a tool on a Make AI Agent.
-
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.
-
Set URL to
https://mcp.divinci.app/mcp. -
Put the
divinci_…key in API Key / Access Token. -
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.
3. Verify the endpoint independently
Section titled “3. Verify the endpoint independently”Two checks that need no client and no key, and that tell you whether a failure is yours or ours:
# 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# → 410https://mcp.divinci.app/info also answers unauthenticated, and reports the
endpoint the server considers current under protocols.mcp.streamableHttpEndpoint.
What you get
Section titled “What you get”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.
Troubleshooting
Section titled “Troubleshooting”| 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.
Which endpoint, and when
Section titled “Which endpoint, and when”| 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.