Model Context Protocol

Let an agent operate your email — inside a key it can’t exceed.

Point a coding agent at the NoticeAPI MCP server. It discovers its tools over MCP, acts only where a scoped ntc_ key allows, and proves the whole flow against the simulator before a real domain is ever in play.

Hosted over Streamable HTTP or local over stdio. The same tools either way.
mcp config
{
  "mcpServers": {
    "noticeapi": {
      "type": "http",
      "url": "https://mcp.noticeapi.com/mcp",
      "headers": { "Authorization": "Bearer ntc_…" }
    }
  }
}

One connection block. The full setup — OAuth, headers, project scoping, and the tool list — lives in the MCP reference.

Bounded authority

It can only reach what the key already can.

A key carries a project, its domains, and a capability preset. Hand an agent a sending key and it can send, schedule, and read outcomes — nothing broader. If it mints another key, that key comes out equal or narrower, never broader than the one it holds. Authorization decides only what the agent may ask for; sender health, quotas, suppressions, unsubscribe state, and deliverability pauses still decide what happens.

Key presets
full
Every capability inside one project.
sending
Send, schedule, and read recipient outcomes — nothing beyond sending.
custom
Choose the capabilities and domains by hand.

A new key is always equal to or narrower than its parent.

Machine-readable

Enough structure to build, not just to send.

A single send call is easy to paste. Building the real path — templates, scheduling, recipient outcomes — needs structure the agent can read. NoticeAPI publishes it: the same tools over hosted and local MCP, one OpenAPI contract behind them, and stable error codes an agent can branch on instead of guessing.

  1. Hosted MCPmcp.noticeapi.com/mcp

    Streamable HTTP with OAuth sign-in or a bearer key.

  2. Local MCPnoticeapi-mcp

    A stdio server that keeps the key in your local process.

  3. OpenAPI 3.1/openapi.json

    The canonical contract every MCP tool maps back to.

  4. Stable errorsproject_required, …

    Documented codes, so a failure tells the agent what to fix.

Test first

Prove the flow before a real domain.

An agent should not learn your integration works by mailing real people. It sends from the sandbox to simulator recipients and gets deterministic outcomes back — plus the same signed events a production send would fire. Your sender reputation stays untouched until the code is right.

  1. Send from the sandbox[email protected]
  2. To a simulator recipient[email protected]
  3. Get a deterministic outcomedelivered · bounced · complained · suppressed
  4. Fire the same signed eventsx-noticeapi-* headers, exactly like production
  5. Agent reads the resultthen graduates to a verified domain

Give the agent a key. Keep the boundary.

Create a project-scoped key, connect the MCP server, and let the agent build against the simulator first.

Get API key Read the MCP reference