notiflowsDocs
AI

MCP Server

Connect the hosted Notiflows MCP server to Claude Code, Cursor, or Claude Desktop and manage, publish, and trigger notiflows conversationally over the Model Context Protocol.

The Notiflows MCP server is a hosted Model Context Protocol server that exposes the Management API as MCP tools. It runs at https://api.notiflows.com/mcp, so any MCP-capable client — Claude Code, Cursor, Claude Desktop, and others — can list, inspect, create, validate, publish, and trigger notiflows by talking to an AI assistant.

It is a thin layer over the same Management API the CLI uses: same account token, same flat-steps notiflow shape, same server-side validation. Like every Notiflows AI surface, it runs inside your assistant on your model — the server only carries your API calls, never an LLM.

Authenticate

The server authenticates with a Notiflows account token (prefix nf_at_), sent as a bearer token: Authorization: Bearer nf_at_…. Create one in the dashboard under Account → Account tokens, and name it after the assistant using it (e.g. claude-mcp) so its actions stay auditable.

The token is account-scoped, so a single connection can manage every project in the account. You pick the target project per call — see Multiple projects.

The account token carries full read/write access through the Management API. There are no per-project tokens or fine-grained scopes today — treat it as a privileged credential, store it in a secret manager, and revoke it if it leaks. See Account tokens.

Connect

Editors speak MCP over stdio, so they reach the hosted HTTP endpoint through mcp-remote — a small npx package that bridges the editor's stdio transport to a remote MCP server and forwards the Authorization header. Node.js 18+ is required (for npx).

Claude Code

claude mcp add notiflows -- npx -y mcp-remote https://api.notiflows.com/mcp --header "Authorization: Bearer nf_at_YOUR_TOKEN"

Cursor / Claude Desktop

Add the server to your client's MCP config — .cursor/mcp.json (Cursor) or claude_desktop_config.json (Claude Desktop):

{
  "mcpServers": {
    "notiflows": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://api.notiflows.com/mcp", "--header", "Authorization: Bearer nf_at_YOUR_TOKEN"]
    }
  }
}

Replace nf_at_YOUR_TOKEN with your account token. Restart the editor (or reload its MCP servers) and the Notiflows tools become available to the assistant.

Multiple projects

Because the account token reaches every project, one connection manages all of them. Project-scoped tools take an optional project argument — a project slug. There is no implicit default on the hosted server: omit project and the tool returns an error asking you to supply one.

Call list_projects to discover the slugs your token can access, then pass one explicitly:

list_notiflows {"project": "marketing"}

In practice the assistant carries the project across a conversation once you've named it, so you usually set it once ("work in the marketing project") and let the model thread it through.

Tools

The server exposes 17 tools. Each maps to a verified Management API endpoint.

Identity

  • whoami — verify the token and return the authenticated account.
  • list_projects — list the projects the account token can access, with their slugs.

Notiflows

  • list_notiflows — list notiflows in the project (summaries, no steps).
  • get_notiflow — fetch a notiflow by handle, including its current and published version steps.
  • upsert_notiflow — create or update a notiflow (creates a new draft version). Send the full flat steps array, including the terminal trigger and end steps; handles are lowercase letters, digits, and hyphens only.
  • validate_notiflow — validate the current draft on the server.
  • publish_notiflow — publish the current draft so it becomes live for execution.
  • activate_notiflow — toggle whether the notiflow can be triggered (the active flag).
  • rollback_notiflow — discard the unpublished draft and revert to the published version.
  • run_notiflow — trigger a run. Requires either recipients or a topic. Runs the published version by default; pass draft: true to test-run the current unpublished draft. Attributed to the account token (auditable). Returns notiflow_run_id.

Versions

  • list_versions — list a notiflow's version history.
  • get_version — fetch a specific version (with steps).

Templates

  • get_template — read a channel step's template.
  • upsert_template — create or update a channel step's template (body must be non-empty).

Channels (read-only — configured in the dashboard)

  • list_channels — list the project's delivery channels.
  • get_channel — fetch a channel by handle.

Docs

  • search_docs — search the Notiflows documentation.

Safe by design. There are no delete or archive tools, and channels are read-only. rollback_notiflow (which discards an unpublished draft) is the only semi-destructive operation, so an assistant can create and ship freely without risking data loss.

What you can ask

With the server connected, you describe the outcome and let the assistant drive the tools:

  • "List the projects I have access to, then list the notiflows in marketing."
  • "Create a welcome email notiflow in acme that sends an email, waits a day, then sends a follow-up."
  • "Publish the order-shipped notiflow."
  • "Run welcome-series for user_123 with first_name set to Ada."
  • "Show me the version history of order-shipped and roll back the draft."

On this page