MCP server · Email, calendar and chat

Knock MCP server

Knock in any MCP client, through Memtro: Knock does not publish this server. Memtro's Knock connector reads Knock through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.

What the model can do

Knock notification infrastructure: messages sent by workflow, channel, tenant and status with their engagement and delivery events, workflow runs per recipient with errors, users (by id), tenants, schedules and audience members; when you ask, can trigger a workflow (sending real notifications), cancel one, schedule a workflow, delete schedules, identify, merge or delete users, set or delete tenants, add or remove audience members and object subscriptions, and mark messages read, seen or archived.

Reads

  • knock_list_messagesKnock messages (one notification on one channel to one recipient): status (queued, sent, delivered, delivery_attempted, undelivered, not_sent…
  • knock_get_messageOne Knock message with its event history (queued, sent, delivered, read and so on, with times).
  • knock_list_workflow_runsKnock workflow runs, one per recipient: workflow, status (queued, processing, paused, completed, cancelled), error count, recipient id, tenant…
  • knock_list_usersKnock users (the people notifications go to), oldest first unless asked: id, created and updated dates, and whether a name, email and phone are held.
  • knock_get_userOne Knock user by id: dates and whether a name, email and phone are held, plus their most recent messages' statuses.
  • knock_list_tenantsKnock tenants (the customer's own accounts or workspaces that notifications are scoped to): id and name.
  • knock_list_schedulesKnock schedules for a workflow: id, recipient id, repeat rule, next and last run, tenant.
  • knock_list_audience_membersMembers of a Knock audience: user id, tenant, when added.

Acts, when you ask

These change something in Knock. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.

  • knock_trigger_workflowTriggers a Knock workflow for the user ids given, which sends them real notifications through every channel the workflow uses (email, SMS, push…
  • knock_cancel_workflowCancels Knock workflow runs that are still queued or waiting (a delay or batch step) for a workflow and cancellation key…
  • knock_create_scheduleSchedules a Knock workflow for the user ids given, once at scheduled_at or repeating by the rule given until ending_at…
  • knock_delete_schedulesPermanently deletes Knock schedules by id, so they send nothing more.
  • knock_identify_userCreates a Knock user, or updates one, merging only the fields given (name, email, phone, timezone, locale).
  • knock_merge_usersMerges the Knock user from_user_id into user_id: the second keeps the first's data and messages and the first is gone.
  • knock_delete_userPermanently deletes a Knock user and all their data (messages, preferences, channel data).
  • knock_set_tenantCreates a Knock tenant or renames one (an upsert that merges).
  • knock_delete_tenantPermanently deletes a Knock tenant and all its data; it cannot be undone.
  • knock_add_audience_membersAdds Knock users to an audience, which can bring them into workflows that send to that audience.
  • knock_remove_audience_membersRemoves Knock users from an audience, so workflows sent to it no longer reach them.
  • knock_add_subscriptionsSubscribes Knock users to an object (a project, channel or anything in a collection), so workflows sent to that object notify them.
  • knock_remove_subscriptionsUnsubscribes Knock users from an object, so its workflows stop notifying them.
  • knock_set_message_statusMarks a Knock message read, unread, seen, unseen, archived or unarchived…

Connect it

First connect Knock on Dashboard → Connections, then add Memtro to your client once. The Knock tools appear alongside the tools of everything else you have connected; nothing is configured per connector.

Claude Code

The Memtro plugin registers the server and a skill for when to use it; the tools are then available in every session.

claude plugin marketplace add memtro-org/claude-memtro
claude plugin install memtro@memtro --config api_key=sk-memtro-...

Cursor

Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.

{
  "mcpServers": {
    "memtro": {
      "url": "https://platform.memtro.com/api/mcp",
      "headers": {
        "Authorization": "Bearer sk-memtro-..."
      }
    }
  }
}

Claude Desktop

Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…

OpenCode

A remote server in opencode.json.

{
  "mcp": {
    "memtro": {
      "type": "remote",
      "url": "https://platform.memtro.com/api/mcp",
      "headers": {
        "Authorization": "Bearer sk-memtro-..."
      }
    }
  }
}

Pi

One command: pi mcp add memtro --url https://platform.memtro.com/api/mcp --bearer-token-env-var MEMTRO_API_KEY. Tools arrive as mcp__memtro__*. The pi-memtro extension registers it for you, alongside Memtro as the model.

Any other client

Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.

Who may use it

The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared Knock connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.

Ask it like this

  • › Which password reset emails bounced today?
  • › Which workflow runs had errors this week?
  • › Show the delivery history of this message.
  • › What schedules are set up for the weekly digest workflow?
  • › Who is in the beta testers audience?

Questions

Is this an official Knock MCP server?
No. It is Memtro's MCP server with Memtro's Knock connector behind it: the connector reads Knock through its API with the credentials you connect on Dashboard → Connections, and Knock publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
What does it cost?
Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
Can it change anything in Knock?
Only when you ask, and only what it has been granted: trigger a workflow for named users (sends real notifications); cancel a triggered workflow by its cancellation key; schedule a workflow for named users (sends at the scheduled times); delete schedules; create or update a user; merge one user into another; delete a user; create or update a tenant; delete a tenant; add users to an audience; remove users from an audience; subscribe users to an object; unsubscribe users from an object; mark a message read, unread, seen, unseen, archived or unarchived. Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
Which clients work?
Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.

Other MCP servers · Email, calendar and chat

Where agents remember your company

Sign in, add a provider key, create an API key and point your tools at Memtro. It takes about five minutes.

7-day free trial · card on file, nothing charged until it ends · cancel any time