# n8n: run Attensira on a schedule with nobody at the keyboard

> For the complete documentation index, see [llms.txt](https://attensira.com/llms.txt).
> Every page on this site is also served as Markdown: append `.md` to any URL, or send `Accept: text/markdown`.

> Wire Attensira into an n8n AI Agent workflow with the MCP Client Tool node and a static key, and check AI visibility and the crew's work on a schedule.

- Canonical page: https://attensira.com/integrations/n8n
- Family: integrations
- Last updated: 2026-10-04
- Author: Karl-Gustav Kallasmaa (https://x.com/kallasmaa)
- Claims as data: https://attensira.com/claims.json?slug=n8n

**In short:** In n8n, add the MCP Client Tool node to an AI Agent workflow, point it at https://mcp.attensira.com/mcp over HTTP Streamable, and store a workspace API key as a Bearer credential. The workflow can then read your AI visibility, check that the crew is working and post the result wherever you want, at 3am with nobody there to sign in.

## What it showed on attensira.com (read 2026-10-04)

Asked in n8n: "Is the crew working, and is anything blocked?"

Call: `get_loop_health days=7`

Working. Answers were read and work was produced every day, and the work is waiting on us.

| Row | Value | Note |
| --- | --- | --- |
| Answers read on 3 October | 122 | ChatGPT 61, Perplexity 61, none failed |
| Work produced, 3 and 4 October | 2 pieces |  |
| Waiting for approval | 10 pieces |  |
| Pull requests opened | 0 | GitHub is not connected on this workspace |

_A health check a scheduled workflow can run before anyone is awake._

## What can a scheduled n8n workflow check?

- Run a morning check with nobody present, such as loop health, the week's mention rate or what waits for approval, and send it to Slack, email or a sheet.
- Keep the credential out of the workflow definition, so the workflow can be exported, reviewed or committed safely.
- Bound what an unattended agent may reach by restricting the node's tool list, rather than trusting the instruction alone.
- Call the REST API from an ordinary HTTP node instead, with the same key, when you want a fixed request rather than an agent.

## How do I connect n8n?

1. **Mint a key for this workflow** Under Settings → Your assistant, mint a workspace API key, read-only if the workflow only reads. Name it after the workflow so revoking it later breaks nothing else. The key is shown once; only a hash is stored.
2. **Add the MCP Client Tool node** Inside an AI Agent workflow, add the MCP Client Tool node. Set the endpoint to https://mcp.attensira.com/mcp and the transport to HTTP Streamable. Not SSE, which the server does not offer.
3. **Store the key as a credential** Choose the Bearer or header-auth credential type and put the key there, not in the node. n8n credentials are encrypted at rest and not written into the workflow JSON, so an exported workflow carries no secret.
4. **Restrict the tool list** The node exposes Attensira's tools to the agent. Restrict the list so an unattended run cannot reach credit-spending tools such as run_automation or destructive ones such as remove_prompt.

## What are the limits of an unattended workflow?

- n8n cannot sign in with OAuth here, because nobody is there to approve a browser prompt. A static key never expires until revoked, so one key per workflow is what lets you switch one off.
- The server speaks Streamable HTTP only. A node set to SSE will not connect, whatever the credential.
- Restricting tools bounds what the agent can call, not what the instruction asks for. An agent asked for something its tools cannot do reports a failure rather than finding another way.

### What did the health check show on our own workspace?

Our own workspace reported itself as working, and the one gap it named was real: no pull requests had been opened, because GitHub is not connected there. A morning message that says that in four lines is more use than a dashboard nobody opens.

### Which workflows are worth scheduling?

- **Morning health check.** `get_loop_health` for the last seven days, posted to

a channel. It says working, idle or blocked, and why.

- **Monday numbers.** `get_analytics area=visibility days=7`, with an instruction

to report only changes marked `real: true`. Most weeks contain none, and a report that says so is doing its job.

- **Approval nudge.** `list_inbox view=triage`, sent to whoever approves, when

anything has waited more than a few days.

Each is a read, and reads are free however often they run. Restrict the node's tool list to exactly these: an unattended agent with every tool can spend credits or delete a prompt because an instruction was ambiguous.

### When is the REST API the better node?

When you know exactly which call you want, such as the same visibility read every Monday, an ordinary HTTP Request node against `https://api.attensira.com/v1` is simpler to debug. Every REST endpoint has an MCP tool with the same payload, and both take the same key, so a workflow can move between them without a new credential.

## FAQ

### Why use a key instead of OAuth in n8n?

Because a scheduled workflow runs with nobody there to approve a browser sign-in. That is the case API keys exist for, and they are fully supported.

### Does the key end up in my exported workflow?

No. Stored as an n8n credential, it is encrypted at rest and not written into the workflow JSON.

### Which transport should the node use?

HTTP Streamable. The Attensira server does not offer SSE.

### Should the key be read-only?

If the workflow only reads, yes. A read-only key gets a 403 on any write tool, and a key's scope cannot be widened after minting; mint a new one if the workflow changes.

### How does work from n8n show up in Attensira?

Marked "via n8n", which Attensira counts as API use rather than an assistant. A REST call can name itself with the X-Attensira-Client header.

### Does a scheduled read cost credits?

No. Reads are free however often they run. A workflow that calls ask, run_automation or add_prompts spends credits each time.

## Sources

Each entry below is one claim on this page. `retrieved` is the date the exporter or a human last saw the source say this, and nothing more: it is not a publication date and not a promise of re-verification. `cite` is the anchor on the canonical page where this claim is rendered.

### n8n-http-streamable-not-sse

Attensira's connect documentation instructs n8n users to set the transport to HTTP Streamable and states that the server does not offer SSE.

- source: https://docs.attensira.com/mcp/connect (docs.attensira.com)
- retrieved: 2026-10-04
- cite: https://attensira.com/integrations/n8n#claim-n8n-http-streamable-not-sse

> Set the endpoint to `https://mcp.attensira.com/mcp` and the transport to HTTP Streamable — not SSE, which the server does not offer.
### n8n-credentials-not-in-json

Attensira's connect documentation states that n8n credentials are encrypted at rest and are not written into the workflow JSON, so an exported or version-controlled workflow does not carry the key.

- source: https://docs.attensira.com/mcp/connect (docs.attensira.com)
- retrieved: 2026-10-04
- cite: https://attensira.com/integrations/n8n#claim-n8n-credentials-not-in-json

> n8n credentials are encrypted at rest and are not written into the workflow JSON, so an exported or version-controlled workflow does not carry the key.
### n8n-is-the-oauth-gap

Attensira's connect documentation describes n8n as the case OAuth cannot serve, a workflow firing overnight with nobody to approve a browser prompt.

- source: https://docs.attensira.com/mcp/connect (docs.attensira.com)
- retrieved: 2026-10-04
- cite: https://attensira.com/integrations/n8n#claim-n8n-is-the-oauth-gap

> This is exactly the case OAuth cannot serve: a workflow fires at 3am with nobody to approve a browser prompt.
