Developer documentation

Build with GenieOS.

One typed surface for transactional, lifecycle, and AI-driven email — with native support for Cursor, Claude, and any client that speaks the Model Context Protocol. Five-minute quickstart, then ship.

Install the MCP

Pick your editor. Paste the config.

Mint a scoped mg_mcp_* key from app.genieos.pro → Developers → MCP, drop it into the snippet, restart your editor. Cursor, Claude Desktop, Continue, and Zed are supported on day one — anything else that speaks MCP works through the manual transport.

~/.cursor/mcp.json
{
  "mcpServers": {
    "genieos": {
      "url": "https://mcp.genieos.pro/v1",
      "headers": {
        "Authorization": "Bearer mg_mcp_..."
      }
    }
  }
}

Or use Settings → Tools & MCP → Add server. Restart Cursor; you’ll see genieos in Tools & MCP.

The surfaces

Seven places to integrate.

Each one mirrors the same domain model: workspaces, templates with a typed schema contract, sequences, transactional sends, events, and webhooks. Pick the surface that fits your runtime; the underlying primitives are the same.

i.
REST API

A small, typed surface for transactional sends, schema contracts, sequences, events and webhooks. Idempotent by default; bearer-auth; rate-limited per key and per workspace.

  • Bearer mg_live_*
  • Idempotency-Key header
  • Per-key + per-workspace limits
  • OpenAPI 3.1 source
Read the docs →
ii.
Connectors

Send through GenieOS Relay, a transactional ESP, SMTP, or lifecycle platforms like Iterable while keeping one GenieOS template and governance workflow.

  • Relay default
  • BYO ESPs
  • Provider webhooks
  • Suppression sync
Read the docs →
iii.
Node SDK

genieos — a typed TypeScript client with auto-idempotency, retries, and webhook signature verification. Works in Node 18+, Next.js, Cloud Functions, and any modern runtime that ships fetch.

  • mg.templates.send()
  • mg.sequences.enroll()
  • verifyWebhook()
  • ESM + CJS
Read the docs →
iv.
Python SDK

genieos (PyPI) — sync and async clients built on httpx + Pydantic. Mirrors the Node SDK 1:1 so anything you read here translates the other way without surprises.

  • GenieOS / AsyncGenieOS
  • Typed Pydantic responses
  • verify_webhook()
  • Python 3.10+
Read the docs →
v.
Genie MCP

A native Model Context Protocol surface so AI editors — Cursor, Claude, Continue, Zed — can read and write GenieOS safely on the user’s behalf. Stateless streamable HTTP transport, plus a stdio bridge for older clients.

  • mcp.genieos.pro/v1
  • Bearer auth, per-tool scopes
  • Cursor + Claude installers
  • Auditable tool calls
Read the docs →
vi.
Genie CLI

genie — terminal access to your workspace. Manage API keys, push templates, tail logs, send transactional mail, and bootstrap webhooks without leaving your editor.

  • genie login
  • genie templates push
  • genie events tail
  • genie webhooks add
Read the docs →
vii.
Webhooks

A single signed envelope for every state change in GenieOS — opens, clicks, bounces, schema-contract changes, sequence transitions. Verifiable in any language with a 5-line snippet.

  • HMAC-SHA256 signatures
  • 24h replay window
  • Exponential-backoff retries
  • Per-event filters
Read the docs →
Why GenieOS for developers

A platform that refuses to drift.

Templates ship with a versioned schema contract — the variables they expect, their types, fallbacks, and whether they\u2019re required. The API rejects sends that violate the contract, your CI catches drift before merge, and your editor gets autocomplete that matches reality.

  • Idempotent by design

    Every mutating endpoint accepts an Idempotency-Key. Replay safely from anywhere — Cloud Functions, Lambda, queues, retries.

  • Webhooks you can verify in 5 lines

    HMAC-SHA256 signatures, 24-hour replay window, exponential-backoff retries. SDKs ship verifiers; copy-paste examples for raw HTTP.

  • AI editors as first-class clients

    The MCP transport is the same surface as the REST API, with per-tool scopes. Cursor, Claude, Continue, Zed — one install, your team is in.