{
  "name": "SendForAI",
  "description": "Transactional and broadcast email for AI agents, at cost. An agent can sign up, test and send without a dashboard or API key.",
  "homepage": "https://sendforai.com",
  "documentation": "https://sendforai.com/docs.md",
  "remote": {
    "url": "https://sendforai.com/mcp",
    "transport": "streamable-http",
    "authentication": {
      "type": "bearer",
      "header": "Authorization",
      "format": "Bearer sfat1.<payload>.<signature>",
      "description": "A connection token minted locally with your identity key: `npx sendforai sandbox` (no domain needed) or `npx sendforai init <domain>`, then `npx sendforai token`. Not OAuth; nothing is stored server-side; tokens last at most 90 days."
    }
  },
  "server": {
    "package": "@sendforai/mcp",
    "command": "npx",
    "args": [
      "-y",
      "@sendforai/mcp"
    ],
    "environment": {
      "SENDFORAI_DOMAIN": {
        "description": "Your identity: a domain you control, or a sandbox name from generate_identity.",
        "required": false
      },
      "SENDFORAI_PRIVATE_KEY_FILE": {
        "description": "Path to the Ed25519 private key (PKCS#8 PEM). SENDFORAI_PRIVATE_KEY with the PEM inline also works.",
        "required": false
      },
      "VERCEL_TOKEN": {
        "description": "Optional. Lets setup_dns publish DNS records on Vercel DNS. Stays local.",
        "required": false
      },
      "CLOUDFLARE_API_TOKEN": {
        "description": "Optional. Same, for Cloudflare. Stays local.",
        "required": false
      }
    }
  },
  "tools": [
    {
      "name": "send_email",
      "description": "Send a transactional email. Returns id, cost, capacity, lint and a signed receipt."
    },
    {
      "name": "plan_email",
      "description": "Dry run: cost, capacity, suppression hits and lint warnings, nothing sent."
    },
    {
      "name": "get_account",
      "description": "Balance, budget, usage and every sending domain."
    },
    {
      "name": "add_credit",
      "description": "Checkout link for a human to add prepaid credit."
    },
    {
      "name": "set_budget",
      "description": "Lower the monthly budget, or get an approval link to raise it."
    },
    {
      "name": "list_domains / add_domain / get_domain_status / verify_domain",
      "description": "Manage sending domains and the DNS records they need."
    },
    {
      "name": "upsert_contact / list_contacts / import_contacts",
      "description": "Contacts for broadcasts. Unlimited."
    },
    {
      "name": "create_broadcast / get_broadcast / send_broadcast / cancel_broadcast",
      "description": "Broadcasts to a list, with human approval by default."
    },
    {
      "name": "list_events",
      "description": "Pull delivery, bounce, complaint and account events by cursor."
    },
    {
      "name": "get_pricing / get_capacity / get_usage / whoami",
      "description": "Pricing, today's sending capacity, month-to-date usage, and the configured identity."
    },
    {
      "name": "generate_identity / setup_dns / create_connection_token",
      "description": "Local server only: create a key (or a no-DNS sandbox identity), publish DNS with a local Vercel or Cloudflare token, mint a connection token."
    }
  ],
  "skill": "https://sendforai.com/skill.md",
  "openapi": "https://sendforai.com/openapi.json",
  "llms_txt": "https://sendforai.com/llms.txt"
}
