Scheduleit

MCP integration

Scheduleit speaks the Model Context Protocol, so an AI agent can schedule and manage events by calling tools — using the same project API key and the same operations as the REST API. The tool catalog is derived from the API surface, so there is no MCP-only feature set to learn and nothing that can drift from REST.

There are two ways to connect, and they expose identical tools:

  • Hosted HTTPS endpointPOST https://getscheduleit.app/mcp, for clients that speak MCP over HTTP.
  • Local stdio proxy — the scheduleit-mcp binary, for desktop clients (Claude Desktop, Cursor, …) that spawn an MCP server as a subprocess. It forwards stdio MCP to the hosted endpoint over HTTPS.

Authentication

Identical to REST: Authorization: Bearer <api-key>. Mint a key from a project in the operator console — see the Quickstart. The key scopes every tool call to its project.

Tools

Every REST operation is exposed as a tool with the same name and input schema. Call tools/list to enumerate them with full JSON schemas; the main ones:

ToolWhat it does
events.createSchedule an event (webhook or email)
events.list / events.getInspect scheduled and past events
events.edit / events.cancelReschedule or cancel a pending event
emails.request / emails.list / emails.revokeVerify and manage sender/recipient email addresses
deliveries.listForEventRead an event's delivery attempts
deadLetter.list / deadLetter.replayInspect and replay dead-lettered deliveries

A tool's arguments are exactly the REST request body for the same operation — so the Scheduling, Webhook, and Email pages describe the MCP payloads too.

Option A — hosted HTTPS endpoint

POST /mcp with JSON-RPC 2.0. Three methods matter for a tools-only server: initialize, tools/list, and tools/call.

curl -sX POST https://getscheduleit.app/mcp \
  -H "Authorization: Bearer sk_..." \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

tools/call runs an operation. The result is returned as MCP text content — the JSON the REST endpoint would return:

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "events.create",
    "arguments": {
      "schedule": { "kind": "oneshot", "fireAt": "2026-01-01T09:00:00Z" },
      "target": { "channel": "webhook", "url": "https://example.com/hook" }
    }
  }
}

Tool-execution failures come back as an isError: true result (not a JSON-RPC error), so the agent sees the message and can recover. Protocol-level problems (bad method, malformed JSON) use JSON-RPC error. The advertised protocol version is 2025-06-18.

Option B — local stdio binary (Claude Desktop, Cursor)

Download scheduleit-mcp from Downloads and point your client at it. For Claude Desktop, edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "scheduleit": {
      "command": "/usr/local/bin/scheduleit-mcp",
      "env": {
        "SCHEDULEIT_API_KEY":  "sk_...",
        "SCHEDULEIT_BASE_URL": "https://getscheduleit.app"
      }
    }
  }
}

The binary is a pure transport proxy — whatever the API advertises in tools/list is what your agent sees, with no catalog baked in. Other MCP clients use the same shape: set the executable path and those two environment variables.