Koskamo

MinuteMail MCP

An MCP server that allows AI agents to manage ephemeral mailboxes, send and receive emails, handle attachments, manage custom domains and teams, and utilize mock OAuth identities for testing email and authentication flows via the MinuteMail API.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

MinuteMail MCP logo, by MinuteMailCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by MinuteMail
You need:Sign up at minutemail.co (free during early access)Create an API key in the dashboard
MCP endpoint (Streamable HTTP)
https://mcp.minutemail.co/mcp
Vendor documentation

What its tools do

40 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

40 of 40 have a description · 40 of 40 declare behavior hints · 35 of 35 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Create and manage ephemeral email mailboxes
  • List, read, and delete emails and attachments
  • Register and manage custom domains
  • Simulate inbound emails for testing

Source and maintenance

Community listingRegistry 1.1.3
Maintenance checked

Protocol and capabilities

Server
minutemail-mcp-server 1.1.7
MCP protocol negotiated in check
2025-06-18
Tools
40 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Tools

40 advertised

mailboxes.list — List mailboxes
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the tenant's active mailboxes (owner is derived from the API key). Optionally look up a single mailbox by exact address.

mailboxes.list input schema
{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "Exact mailbox address to look up (e.g. user@minutemail.cc). Optional."
    }
  }
}
mailboxes.list output schema
{
  "type": "object",
  "required": [
    "items"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "address"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Mailbox ID"
          },
          "alias": {
            "type": "string",
            "description": "Local part of the address"
          },
          "owner": {
            "type": "string",
            "description": "Owner (tenant) ID"
          },
          "domain": {
            "type": "string",
            "description": "Mailbox domain"
          },
          "address": {
            "type": "string",
            "description": "Full mailbox address"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp (RFC 3339)"
          },
          "expiresAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Expiry timestamp (RFC 3339); null when permanent"
          },
          "permanent": {
            "type": "boolean",
            "description": "Whether the mailbox never expires"
          },
          "recoverable": {
            "type": "boolean",
            "description": "Whether the mailbox can be recovered after expiry"
          },
          "messageCount": {
            "type": "integer",
            "description": "Number of mails in the mailbox"
          }
        }
      }
    }
  }
}
mailboxes.list annotations
{
  "title": "List mailboxes",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
mailboxes.create — Create mailbox
Advertised by the server during the last successful anonymous check.

Create a new temporary mailbox. The domain defaults to the tenant's default domain; the owner is always the API key's owner.

mailboxes.create input schema
{
  "type": "object",
  "properties": {
    "tag": {
      "type": "string",
      "description": "Recovery tag, required when recoverable is true."
    },
    "domain": {
      "type": "string",
      "description": "Mailbox domain. Defaults to the tenant default domain (e.g. minutemail.cc)."
    },
    "expiresIn": {
      "type": "integer",
      "description": "Lifetime in minutes, 1-60. Omit for the service default TTL."
    },
    "recoverable": {
      "type": "boolean",
      "description": "Set true to keep the mailbox recoverable after expiry (requires tag)."
    },
    "noExpiration": {
      "type": "boolean",
      "description": "Set true for a permanent mailbox (mutually exclusive with expiresIn)."
    }
  }
}
mailboxes.create output schema
{
  "type": "object",
  "required": [
    "id",
    "address"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Mailbox ID"
    },
    "alias": {
      "type": "string",
      "description": "Local part of the address"
    },
    "owner": {
      "type": "string",
      "description": "Owner (tenant) ID"
    },
    "domain": {
      "type": "string",
      "description": "Mailbox domain"
    },
    "address": {
      "type": "string",
      "description": "Full mailbox address"
    },
    "createdAt": {
      "type": "string",
      "description": "Creation timestamp (RFC 3339)"
    },
    "expiresAt": {
      "type": [
        "string",
        "null"
      ],
      "description": "Expiry timestamp (RFC 3339); null when permanent"
    },
    "permanent": {
      "type": "boolean",
      "description": "Whether the mailbox never expires"
    },
    "recoverable": {
      "type": "boolean",
      "description": "Whether the mailbox can be recovered after expiry"
    },
    "messageCount": {
      "type": "integer",
      "description": "Number of mails in the mailbox"
    }
  }
}
mailboxes.create annotations
{
  "title": "Create mailbox",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
mailboxes.get — Get mailbox
Advertised by the server during the last successful anonymous check.
Advertised read-only

Fetch a single mailbox by ID.

mailboxes.get input schema
{
  "type": "object",
  "required": [
    "mailboxId"
  ],
  "properties": {
    "mailboxId": {
      "type": "string",
      "description": "Mailbox ID"
    }
  }
}
mailboxes.get output schema
{
  "type": "object",
  "required": [
    "id",
    "address"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Mailbox ID"
    },
    "alias": {
      "type": "string",
      "description": "Local part of the address"
    },
    "owner": {
      "type": "string",
      "description": "Owner (tenant) ID"
    },
    "domain": {
      "type": "string",
      "description": "Mailbox domain"
    },
    "address": {
      "type": "string",
      "description": "Full mailbox address"
    },
    "createdAt": {
      "type": "string",
      "description": "Creation timestamp (RFC 3339)"
    },
    "expiresAt": {
      "type": [
        "string",
        "null"
      ],
      "description": "Expiry timestamp (RFC 3339); null when permanent"
    },
    "permanent": {
      "type": "boolean",
      "description": "Whether the mailbox never expires"
    },
    "recoverable": {
      "type": "boolean",
      "description": "Whether the mailbox can be recovered after expiry"
    },
    "messageCount": {
      "type": "integer",
      "description": "Number of mails in the mailbox"
    }
  }
}
mailboxes.get annotations
{
  "title": "Get mailbox",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
mailboxes.delete — Delete mailbox
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a mailbox and its contents by ID.

mailboxes.delete input schema
{
  "type": "object",
  "required": [
    "mailboxId"
  ],
  "properties": {
    "mailboxId": {
      "type": "string",
      "description": "Mailbox ID"
    }
  }
}
mailboxes.delete output schema
{
  "type": "object",
  "required": [
    "status",
    "http_status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "const": "ok"
    },
    "http_status": {
      "type": "integer",
      "description": "HTTP status of the API response"
    }
  }
}
mailboxes.delete annotations
{
  "title": "Delete mailbox",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
mailboxes.delete_bulk — Bulk delete mailboxes
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete several mailboxes at once by ID.

mailboxes.delete_bulk input schema
{
  "type": "object",
  "required": [
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Mailbox IDs to delete"
    }
  }
}
mailboxes.delete_bulk output schema
{
  "type": "object",
  "required": [
    "status",
    "http_status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "const": "ok"
    },
    "http_status": {
      "type": "integer",
      "description": "HTTP status of the API response"
    }
  }
}
mailboxes.delete_bulk annotations
{
  "title": "Bulk delete mailboxes",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
mails.list — List mails
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the emails in a mailbox, newest first.

mails.list input schema
{
  "type": "object",
  "required": [
    "mailboxId"
  ],
  "properties": {
    "mailboxId": {
      "type": "string",
      "description": "Mailbox ID"
    }
  }
}
mails.list output schema
{
  "type": "object",
  "required": [
    "items"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "sender",
          "subject"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Mail ID"
          },
          "body": {
            "type": "string",
            "description": "Plain-text body (present on single-mail fetches)"
          },
          "sender": {
            "type": "string",
            "description": "Sender email address"
          },
          "subject": {
            "type": "string",
            "description": "Email subject"
          },
          "expiresAt": {
            "type": "string",
            "description": "Expiry timestamp (RFC 3339)"
          },
          "receivedAt": {
            "type": "string",
            "description": "Received timestamp (RFC 3339)"
          }
        }
      }
    }
  }
}
mails.list annotations
{
  "title": "List mails",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
mails.inject — Inject test mail
Advertised by the server during the last successful anonymous check.

Inject a simulated inbound email into a mailbox (multipart upload). No external mail is sent; use this to simulate inbound mail for flow testing.

mails.inject input schema
{
  "type": "object",
  "required": [
    "mailboxId",
    "sender",
    "subject",
    "body"
  ],
  "properties": {
    "body": {
      "type": "string",
      "description": "Plain-text body"
    },
    "sender": {
      "type": "string",
      "description": "Sender email address"
    },
    "subject": {
      "type": "string",
      "description": "Email subject"
    },
    "expiresIn": {
      "type": "integer",
      "description": "Mail lifetime in minutes (>=1). Optional."
    },
    "mailboxId": {
      "type": "string",
      "description": "Mailbox ID"
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "filename",
          "data"
        ],
        "properties": {
          "data": {
            "type": "string",
            "description": "File contents, standard base64"
          },
          "filename": {
            "type": "string",
            "description": "Attachment file name"
          },
          "contentType": {
            "type": "string",
            "description": "MIME type, defaults to application/octet-stream"
          }
        }
      },
      "description": "Attachments to include"
    }
  }
}
mails.inject output schema
{
  "type": "object",
  "required": [
    "id",
    "sender",
    "subject"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Mail ID"
    },
    "body": {
      "type": "string",
      "description": "Plain-text body (present on single-mail fetches)"
    },
    "sender": {
      "type": "string",
      "description": "Sender email address"
    },
    "subject": {
      "type": "string",
      "description": "Email subject"
    },
    "expiresAt": {
      "type": "string",
      "description": "Expiry timestamp (RFC 3339)"
    },
    "receivedAt": {
      "type": "string",
      "description": "Received timestamp (RFC 3339)"
    }
  }
}
mails.inject annotations
{
  "title": "Inject test mail",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
mails.get — Get mail
Advertised by the server during the last successful anonymous check.
Advertised read-only

Fetch a single email by ID, including body and attachment metadata.

mails.get input schema
{
  "type": "object",
  "required": [
    "mailboxId",
    "mailId"
  ],
  "properties": {
    "mailId": {
      "type": "string",
      "description": "Mail ID"
    },
    "mailboxId": {
      "type": "string",
      "description": "Mailbox ID"
    }
  }
}
mails.get output schema
{
  "type": "object",
  "required": [
    "id",
    "sender",
    "subject"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Mail ID"
    },
    "body": {
      "type": "string",
      "description": "Plain-text body (present on single-mail fetches)"
    },
    "sender": {
      "type": "string",
      "description": "Sender email address"
    },
    "subject": {
      "type": "string",
      "description": "Email subject"
    },
    "expiresAt": {
      "type": "string",
      "description": "Expiry timestamp (RFC 3339)"
    },
    "receivedAt": {
      "type": "string",
      "description": "Received timestamp (RFC 3339)"
    }
  }
}
mails.get annotations
{
  "title": "Get mail",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
mails.delete — Delete mail
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a single email.

mails.delete input schema
{
  "type": "object",
  "required": [
    "mailboxId",
    "mailId"
  ],
  "properties": {
    "mailId": {
      "type": "string",
      "description": "Mail ID"
    },
    "mailboxId": {
      "type": "string",
      "description": "Mailbox ID"
    }
  }
}
mails.delete output schema
{
  "type": "object",
  "required": [
    "status",
    "http_status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "const": "ok"
    },
    "http_status": {
      "type": "integer",
      "description": "HTTP status of the API response"
    }
  }
}
mails.delete annotations
{
  "title": "Delete mail",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
mails.delete_bulk — Bulk delete mails
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete several emails of one mailbox at once.

mails.delete_bulk input schema
{
  "type": "object",
  "required": [
    "mailboxId",
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Mail IDs to delete"
    },
    "mailboxId": {
      "type": "string",
      "description": "Mailbox ID"
    }
  }
}
mails.delete_bulk output schema
{
  "type": "object",
  "required": [
    "status",
    "http_status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "const": "ok"
    },
    "http_status": {
      "type": "integer",
      "description": "HTTP status of the API response"
    }
  }
}
mails.delete_bulk annotations
{
  "title": "Bulk delete mails",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
attachments.list — List attachments
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the attachments of an email (metadata only).

attachments.list input schema
{
  "type": "object",
  "required": [
    "mailboxId",
    "mailId"
  ],
  "properties": {
    "mailId": {
      "type": "string",
      "description": "Mail ID"
    },
    "mailboxId": {
      "type": "string",
      "description": "Mailbox ID"
    }
  }
}
attachments.list output schema
{
  "type": "object",
  "required": [
    "items"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "filename"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Attachment ID"
          },
          "filename": {
            "type": "string",
            "description": "Attachment file name"
          },
          "expiresAt": {
            "type": "string",
            "description": "Expiry timestamp (RFC 3339)"
          },
          "sizeBytes": {
            "type": "integer",
            "description": "Size in bytes"
          },
          "contentType": {
            "type": "string",
            "description": "MIME type"
          }
        }
      }
    }
  }
}
attachments.list annotations
{
  "title": "List attachments",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
attachments.add — Add attachment
Advertised by the server during the last successful anonymous check.

Attach a file to a test-injected email (base64 payload).

attachments.add input schema
{
  "type": "object",
  "required": [
    "mailboxId",
    "mailId",
    "filename",
    "data"
  ],
  "properties": {
    "data": {
      "type": "string",
      "description": "File contents, standard base64"
    },
    "mailId": {
      "type": "string",
      "description": "Mail ID"
    },
    "filename": {
      "type": "string",
      "description": "Attachment file name"
    },
    "expiresIn": {
      "type": "integer",
      "description": "Attachment lifetime in minutes (>=1). Optional."
    },
    "mailboxId": {
      "type": "string",
      "description": "Mailbox ID"
    },
    "sizeBytes": {
      "type": "integer",
      "description": "Expected size in bytes. Optional; validated against the decoded data when set."
    },
    "contentType": {
      "type": "string",
      "description": "MIME type, defaults to application/octet-stream"
    }
  }
}
attachments.add output schema
{
  "type": "object",
  "required": [
    "id",
    "filename"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Attachment ID"
    },
    "filename": {
      "type": "string",
      "description": "Attachment file name"
    },
    "expiresAt": {
      "type": "string",
      "description": "Expiry timestamp (RFC 3339)"
    },
    "sizeBytes": {
      "type": "integer",
      "description": "Size in bytes"
    },
    "contentType": {
      "type": "string",
      "description": "MIME type"
    }
  }
}
attachments.add annotations
{
  "title": "Add attachment",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
attachments.get — Get attachment
Advertised by the server during the last successful anonymous check.
Advertised read-only

Download an attachment. The file contents are returned base64-encoded in the JSON "data" field.

attachments.get input schema
{
  "type": "object",
  "required": [
    "mailboxId",
    "mailId",
    "attachmentId"
  ],
  "properties": {
    "mailId": {
      "type": "string",
      "description": "Mail ID"
    },
    "mailboxId": {
      "type": "string",
      "description": "Mailbox ID"
    },
    "attachmentId": {
      "type": "string",
      "description": "Attachment ID"
    }
  }
}
attachments.get output schema
{
  "type": "object",
  "required": [
    "id",
    "filename",
    "data"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Attachment ID"
    },
    "data": {
      "type": "string",
      "description": "File contents, standard base64"
    },
    "filename": {
      "type": "string",
      "description": "Attachment file name"
    },
    "expiresAt": {
      "type": "string",
      "description": "Expiry timestamp (RFC 3339)"
    },
    "sizeBytes": {
      "type": "integer",
      "description": "Size in bytes"
    },
    "contentType": {
      "type": "string",
      "description": "MIME type"
    }
  }
}
attachments.get annotations
{
  "title": "Get attachment",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
attachments.delete — Delete attachment
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a single attachment.

attachments.delete input schema
{
  "type": "object",
  "required": [
    "mailboxId",
    "mailId",
    "attachmentId"
  ],
  "properties": {
    "mailId": {
      "type": "string",
      "description": "Mail ID"
    },
    "mailboxId": {
      "type": "string",
      "description": "Mailbox ID"
    },
    "attachmentId": {
      "type": "string",
      "description": "Attachment ID"
    }
  }
}
attachments.delete output schema
{
  "type": "object",
  "required": [
    "status",
    "http_status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "const": "ok"
    },
    "http_status": {
      "type": "integer",
      "description": "HTTP status of the API response"
    }
  }
}
attachments.delete annotations
{
  "title": "Delete attachment",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
attachments.delete_bulk — Bulk delete attachments
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete several attachments of one email at once.

attachments.delete_bulk input schema
{
  "type": "object",
  "required": [
    "mailboxId",
    "mailId",
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Attachment IDs to delete"
    },
    "mailId": {
      "type": "string",
      "description": "Mail ID"
    },
    "mailboxId": {
      "type": "string",
      "description": "Mailbox ID"
    }
  }
}
attachments.delete_bulk output schema
{
  "type": "object",
  "required": [
    "status",
    "http_status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "const": "ok"
    },
    "http_status": {
      "type": "integer",
      "description": "HTTP status of the API response"
    }
  }
}
attachments.delete_bulk annotations
{
  "title": "Bulk delete attachments",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
archived.list — List archived mailboxes
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the tenant's archived (expired but recoverable) mailboxes.

archived.list input schema
{
  "type": "object",
  "properties": {}
}
archived.list output schema
{
  "type": "object",
  "required": [
    "items"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "address"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Mailbox ID"
          },
          "alias": {
            "type": "string",
            "description": "Local part of the address"
          },
          "owner": {
            "type": "string",
            "description": "Owner (tenant) ID"
          },
          "domain": {
            "type": "string",
            "description": "Mailbox domain"
          },
          "address": {
            "type": "string",
            "description": "Full mailbox address"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp (RFC 3339)"
          },
          "expiresAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Expiry timestamp (RFC 3339); null when permanent"
          },
          "permanent": {
            "type": "boolean",
            "description": "Whether the mailbox never expires"
          },
          "recoverable": {
            "type": "boolean",
            "description": "Whether the mailbox can be recovered after expiry"
          },
          "messageCount": {
            "type": "integer",
            "description": "Number of mails in the mailbox"
          }
        }
      }
    }
  }
}
archived.list annotations
{
  "title": "List archived mailboxes",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
archived.get — Get archived mailbox
Advertised by the server during the last successful anonymous check.
Advertised read-only

Fetch a single archived mailbox by ID.

archived.get input schema
{
  "type": "object",
  "required": [
    "mailboxId"
  ],
  "properties": {
    "mailboxId": {
      "type": "string",
      "description": "Archived mailbox ID"
    }
  }
}
archived.get output schema
{
  "type": "object",
  "required": [
    "id",
    "address"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Mailbox ID"
    },
    "alias": {
      "type": "string",
      "description": "Local part of the address"
    },
    "owner": {
      "type": "string",
      "description": "Owner (tenant) ID"
    },
    "domain": {
      "type": "string",
      "description": "Mailbox domain"
    },
    "address": {
      "type": "string",
      "description": "Full mailbox address"
    },
    "createdAt": {
      "type": "string",
      "description": "Creation timestamp (RFC 3339)"
    },
    "expiresAt": {
      "type": [
        "string",
        "null"
      ],
      "description": "Expiry timestamp (RFC 3339); null when permanent"
    },
    "permanent": {
      "type": "boolean",
      "description": "Whether the mailbox never expires"
    },
    "recoverable": {
      "type": "boolean",
      "description": "Whether the mailbox can be recovered after expiry"
    },
    "messageCount": {
      "type": "integer",
      "description": "Number of mails in the mailbox"
    }
  }
}
archived.get annotations
{
  "title": "Get archived mailbox",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
archived.delete — Delete archived mailbox
Advertised by the server during the last successful anonymous check.
Advertised destructive

Permanently delete an archived mailbox.

archived.delete input schema
{
  "type": "object",
  "required": [
    "mailboxId"
  ],
  "properties": {
    "mailboxId": {
      "type": "string",
      "description": "Archived mailbox ID"
    }
  }
}
archived.delete output schema
{
  "type": "object",
  "required": [
    "status",
    "http_status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "const": "ok"
    },
    "http_status": {
      "type": "integer",
      "description": "HTTP status of the API response"
    }
  }
}
archived.delete annotations
{
  "title": "Delete archived mailbox",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
archived.reactivate — Reactivate archived mailbox
Advertised by the server during the last successful anonymous check.

Reactivate an archived mailbox back to active state.

archived.reactivate input schema
{
  "type": "object",
  "required": [
    "mailboxId"
  ],
  "properties": {
    "expiresIn": {
      "type": "integer",
      "description": "New lifetime in minutes, 1-60. Optional."
    },
    "mailboxId": {
      "type": "string",
      "description": "Archived mailbox ID"
    }
  }
}
archived.reactivate output schema
{
  "type": "object",
  "required": [
    "id",
    "address"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Mailbox ID"
    },
    "alias": {
      "type": "string",
      "description": "Local part of the address"
    },
    "owner": {
      "type": "string",
      "description": "Owner (tenant) ID"
    },
    "domain": {
      "type": "string",
      "description": "Mailbox domain"
    },
    "address": {
      "type": "string",
      "description": "Full mailbox address"
    },
    "createdAt": {
      "type": "string",
      "description": "Creation timestamp (RFC 3339)"
    },
    "expiresAt": {
      "type": [
        "string",
        "null"
      ],
      "description": "Expiry timestamp (RFC 3339); null when permanent"
    },
    "permanent": {
      "type": "boolean",
      "description": "Whether the mailbox never expires"
    },
    "recoverable": {
      "type": "boolean",
      "description": "Whether the mailbox can be recovered after expiry"
    },
    "messageCount": {
      "type": "integer",
      "description": "Number of mails in the mailbox"
    }
  }
}
archived.reactivate annotations
{
  "title": "Reactivate archived mailbox",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
domains.list — List domains
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the tenant's custom domains with their DNS verification status.

domains.list input schema
{
  "type": "object",
  "properties": {}
}
domains.list output schema
{
  "type": "object",
  "required": [
    "items"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "status"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Domain ID"
          },
          "name": {
            "type": "string",
            "description": "Domain name"
          },
          "status": {
            "enum": [
              "pending",
              "verified"
            ],
            "type": "string",
            "description": "DNS verification status"
          },
          "mxTarget": {
            "type": "string",
            "description": "MX target to add to the domain's DNS before verification"
          },
          "txtToken": {
            "type": "string",
            "description": "TXT token to add to the domain's DNS before verification"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp (RFC 3339)"
          }
        }
      }
    }
  }
}
domains.list annotations
{
  "title": "List domains",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
domains.register — Register domain
Advertised by the server during the last successful anonymous check.

Register a new custom domain. DNS records (TXT token + MX) must then be added before verification can succeed.

domains.register input schema
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Domain name, e.g. mail.example.com"
    }
  }
}
domains.register output schema
{
  "type": "object",
  "required": [
    "id",
    "name",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Domain ID"
    },
    "name": {
      "type": "string",
      "description": "Domain name"
    },
    "status": {
      "enum": [
        "pending",
        "verified"
      ],
      "type": "string",
      "description": "DNS verification status"
    },
    "mxTarget": {
      "type": "string",
      "description": "MX target to add to the domain's DNS before verification"
    },
    "txtToken": {
      "type": "string",
      "description": "TXT token to add to the domain's DNS before verification"
    },
    "createdAt": {
      "type": "string",
      "description": "Creation timestamp (RFC 3339)"
    }
  }
}
domains.register annotations
{
  "title": "Register domain",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
domains.verify — Verify domain
Advertised by the server during the last successful anonymous check.

Trigger DNS verification (TXT + MX) of a registered domain.

domains.verify input schema
{
  "type": "object",
  "required": [
    "domainId"
  ],
  "properties": {
    "domainId": {
      "type": "string",
      "description": "Domain ID"
    }
  }
}
domains.verify output schema
{
  "type": "object",
  "required": [
    "id",
    "name",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Domain ID"
    },
    "name": {
      "type": "string",
      "description": "Domain name"
    },
    "status": {
      "enum": [
        "pending",
        "verified"
      ],
      "type": "string",
      "description": "DNS verification status"
    },
    "mxTarget": {
      "type": "string",
      "description": "MX target to add to the domain's DNS before verification"
    },
    "txtToken": {
      "type": "string",
      "description": "TXT token to add to the domain's DNS before verification"
    },
    "createdAt": {
      "type": "string",
      "description": "Creation timestamp (RFC 3339)"
    }
  }
}
domains.verify annotations
{
  "title": "Verify domain",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
domains.delete — Delete domain
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a registered custom domain.

domains.delete input schema
{
  "type": "object",
  "required": [
    "domainId"
  ],
  "properties": {
    "domainId": {
      "type": "string",
      "description": "Domain ID"
    }
  }
}
domains.delete output schema
{
  "type": "object",
  "required": [
    "status",
    "http_status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "const": "ok"
    },
    "http_status": {
      "type": "integer",
      "description": "HTTP status of the API response"
    }
  }
}
domains.delete annotations
{
  "title": "Delete domain",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
team.members.list — List team members
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the tenant's team members.

team.members.list input schema
{
  "type": "object",
  "properties": {}
}
team.members.list output schema
{
  "type": "object",
  "required": [
    "items"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "email",
          "status"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Member ID"
          },
          "email": {
            "type": "string",
            "description": "Member email address"
          },
          "status": {
            "type": "string",
            "description": "Member status (e.g. ACTIVE)"
          },
          "user_id": {
            "type": "string",
            "description": "Member user ID"
          },
          "username": {
            "type": "string",
            "description": "Member username"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp (RFC 3339)"
          }
        }
      }
    }
  }
}
team.members.list annotations
{
  "title": "List team members",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
team.members.add — Add team member
Advertised by the server during the last successful anonymous check.

Add a team member directly (no invitation flow).

team.members.add input schema
{
  "type": "object",
  "required": [
    "user_id",
    "username",
    "email",
    "status"
  ],
  "properties": {
    "email": {
      "type": "string",
      "description": "Member email address"
    },
    "status": {
      "type": "string",
      "description": "Member status, conventionally ACTIVE"
    },
    "user_id": {
      "type": "string",
      "description": "Member user ID"
    },
    "username": {
      "type": "string",
      "description": "Member username"
    }
  }
}
team.members.add output schema
{
  "type": "object",
  "required": [
    "id",
    "email",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Member ID"
    },
    "email": {
      "type": "string",
      "description": "Member email address"
    },
    "status": {
      "type": "string",
      "description": "Member status (e.g. ACTIVE)"
    },
    "user_id": {
      "type": "string",
      "description": "Member user ID"
    },
    "username": {
      "type": "string",
      "description": "Member username"
    },
    "createdAt": {
      "type": "string",
      "description": "Creation timestamp (RFC 3339)"
    }
  }
}
team.members.add annotations
{
  "title": "Add team member",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
team.members.get — Get team member
Advertised by the server during the last successful anonymous check.
Advertised read-only

Fetch a single team member by ID.

team.members.get input schema
{
  "type": "object",
  "required": [
    "memberId"
  ],
  "properties": {
    "memberId": {
      "type": "string",
      "description": "Member ID"
    }
  }
}
team.members.get output schema
{
  "type": "object",
  "required": [
    "id",
    "email",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Member ID"
    },
    "email": {
      "type": "string",
      "description": "Member email address"
    },
    "status": {
      "type": "string",
      "description": "Member status (e.g. ACTIVE)"
    },
    "user_id": {
      "type": "string",
      "description": "Member user ID"
    },
    "username": {
      "type": "string",
      "description": "Member username"
    },
    "createdAt": {
      "type": "string",
      "description": "Creation timestamp (RFC 3339)"
    }
  }
}
team.members.get annotations
{
  "title": "Get team member",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
team.members.delete — Delete team member
Advertised by the server during the last successful anonymous check.
Advertised destructive

Remove a team member.

team.members.delete input schema
{
  "type": "object",
  "required": [
    "memberId"
  ],
  "properties": {
    "memberId": {
      "type": "string",
      "description": "Member ID"
    }
  }
}
team.members.delete output schema
{
  "type": "object",
  "required": [
    "status",
    "http_status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "const": "ok"
    },
    "http_status": {
      "type": "integer",
      "description": "HTTP status of the API response"
    }
  }
}
team.members.delete annotations
{
  "title": "Delete team member",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
team.invitations.create — Create invitation
Advertised by the server during the last successful anonymous check.

Create a team invitation for an email address (SMTP invite is sent by the team service).

team.invitations.create input schema
{
  "type": "object",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "description": "Invitee email address"
    }
  }
}
team.invitations.create output schema
{
  "type": "object",
  "required": [
    "id",
    "email",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Invitation ID"
    },
    "email": {
      "type": "string",
      "description": "Invitee email address"
    },
    "status": {
      "type": "string",
      "description": "Invitation status (e.g. PENDING)"
    },
    "createdAt": {
      "type": "string",
      "description": "Creation timestamp (RFC 3339)"
    }
  }
}
team.invitations.create annotations
{
  "title": "Create invitation",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
team.invitations.list — List invitations
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the tenant's team invitations.

team.invitations.list input schema
{
  "type": "object",
  "properties": {}
}
team.invitations.list output schema
{
  "type": "object",
  "required": [
    "items"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "email",
          "status"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Invitation ID"
          },
          "email": {
            "type": "string",
            "description": "Invitee email address"
          },
          "status": {
            "type": "string",
            "description": "Invitation status (e.g. PENDING)"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp (RFC 3339)"
          }
        }
      }
    }
  }
}
team.invitations.list annotations
{
  "title": "List invitations",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
team.invitations.delete — Delete invitation
Advertised by the server during the last successful anonymous check.
Advertised destructive

Revoke a team invitation.

team.invitations.delete input schema
{
  "type": "object",
  "required": [
    "invitationId"
  ],
  "properties": {
    "invitationId": {
      "type": "string",
      "description": "Invitation ID"
    }
  }
}
team.invitations.delete output schema
{
  "type": "object",
  "required": [
    "status",
    "http_status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "const": "ok"
    },
    "http_status": {
      "type": "integer",
      "description": "HTTP status of the API response"
    }
  }
}
team.invitations.delete annotations
{
  "title": "Delete invitation",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
identities.list — List identities
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the tenant's mock identities, optionally filtered by OAuth client or mailbox address.

identities.list input schema
{
  "type": "object",
  "properties": {
    "clientId": {
      "type": "string",
      "description": "Filter by OAuth client ID. Optional."
    },
    "mailboxAddress": {
      "type": "string",
      "description": "Filter by mailbox address. Optional."
    }
  }
}
identities.list output schema
{
  "type": "object",
  "required": [
    "items"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "clientId",
          "mailboxAddress"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Identity ID"
          },
          "name": {
            "type": "string",
            "description": "Display name"
          },
          "clientId": {
            "type": "string",
            "description": "OAuth client ID the identity belongs to"
          },
          "username": {
            "type": "string",
            "description": "Identity username"
          },
          "avatarUrl": {
            "type": "string",
            "description": "Avatar URL"
          },
          "mailboxAddress": {
            "type": "string",
            "description": "Mailbox address the identity is linked to"
          }
        }
      }
    }
  }
}
identities.list annotations
{
  "title": "List identities",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
identities.create — Create identity
Advertised by the server during the last successful anonymous check.

Create a mock identity bound to a mailbox for OAuth flow testing.

identities.create input schema
{
  "type": "object",
  "required": [
    "clientId",
    "mailboxAddress"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Display name. Optional."
    },
    "claims": {
      "type": "object",
      "description": "Custom claims (e.g. role, plan) merged into the ID token and userinfo. Custom-provider clients only — rejected for google/github/apple/facebook. Optional.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "clientId": {
      "type": "string",
      "description": "OAuth client ID the identity belongs to"
    },
    "username": {
      "type": "string",
      "description": "Identity username. Optional."
    },
    "avatarUrl": {
      "type": "string",
      "description": "Avatar URL. Optional."
    },
    "emailVerified": {
      "type": "boolean",
      "description": "Value of the email_verified claim issued for this identity. Optional."
    },
    "mailboxAddress": {
      "type": "string",
      "description": "Mailbox address the identity is linked to (must exist)"
    }
  }
}
identities.create output schema
{
  "type": "object",
  "required": [
    "id",
    "clientId",
    "mailboxAddress"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Identity ID"
    },
    "name": {
      "type": "string",
      "description": "Display name"
    },
    "clientId": {
      "type": "string",
      "description": "OAuth client ID the identity belongs to"
    },
    "username": {
      "type": "string",
      "description": "Identity username"
    },
    "avatarUrl": {
      "type": "string",
      "description": "Avatar URL"
    },
    "mailboxAddress": {
      "type": "string",
      "description": "Mailbox address the identity is linked to"
    }
  }
}
identities.create annotations
{
  "title": "Create identity",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
identities.get — Get identity
Advertised by the server during the last successful anonymous check.
Advertised read-only

Fetch a single mock identity by ID.

identities.get input schema
{
  "type": "object",
  "required": [
    "identityId"
  ],
  "properties": {
    "identityId": {
      "type": "string",
      "description": "Identity ID"
    }
  }
}
identities.get output schema
{
  "type": "object",
  "required": [
    "id",
    "clientId",
    "mailboxAddress"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Identity ID"
    },
    "name": {
      "type": "string",
      "description": "Display name"
    },
    "clientId": {
      "type": "string",
      "description": "OAuth client ID the identity belongs to"
    },
    "username": {
      "type": "string",
      "description": "Identity username"
    },
    "avatarUrl": {
      "type": "string",
      "description": "Avatar URL"
    },
    "mailboxAddress": {
      "type": "string",
      "description": "Mailbox address the identity is linked to"
    }
  }
}
identities.get annotations
{
  "title": "Get identity",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
identities.update — Update identity
Advertised by the server during the last successful anonymous check.

Update a mock identity: profile fields, isActive (activate/deactivate), emailVerified, and custom claims merged into the ID token and userinfo.

identities.update input schema
{
  "type": "object",
  "required": [
    "identityId"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Display name. Optional."
    },
    "claims": {
      "type": "object",
      "description": "Custom claims (e.g. role, plan) merged into the ID token and userinfo. Replaces existing claims. Reserved claim names are rejected. Optional.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "isActive": {
      "type": "boolean",
      "description": "Whether the identity can be used in OAuth flows. Optional."
    },
    "username": {
      "type": "string",
      "description": "Identity username. Optional."
    },
    "avatarUrl": {
      "type": "string",
      "description": "Avatar URL. Optional."
    },
    "identityId": {
      "type": "string",
      "description": "Identity ID"
    },
    "emailVerified": {
      "type": "boolean",
      "description": "Value of the email_verified claim issued for this identity. Optional."
    }
  }
}
identities.update output schema
{
  "type": "object",
  "required": [
    "id",
    "clientId",
    "mailboxAddress"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Identity ID"
    },
    "name": {
      "type": "string",
      "description": "Display name"
    },
    "clientId": {
      "type": "string",
      "description": "OAuth client ID the identity belongs to"
    },
    "username": {
      "type": "string",
      "description": "Identity username"
    },
    "avatarUrl": {
      "type": "string",
      "description": "Avatar URL"
    },
    "mailboxAddress": {
      "type": "string",
      "description": "Mailbox address the identity is linked to"
    }
  }
}
identities.update annotations
{
  "title": "Update identity",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
identities.delete — Delete identity
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a mock identity.

identities.delete input schema
{
  "type": "object",
  "required": [
    "identityId"
  ],
  "properties": {
    "identityId": {
      "type": "string",
      "description": "Identity ID"
    }
  }
}
identities.delete output schema
{
  "type": "object",
  "required": [
    "status",
    "http_status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "const": "ok"
    },
    "http_status": {
      "type": "integer",
      "description": "HTTP status of the API response"
    }
  }
}
identities.delete annotations
{
  "title": "Delete identity",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
oauth.clients.list — List OAuth clients
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the tenant's OAuth clients for mock identity testing.

oauth.clients.list input schema
{
  "type": "object",
  "properties": {}
}
oauth.clients.list output schema
{
  "type": "object",
  "properties": {
    "clients": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "clientId",
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Client display name"
          },
          "clientId": {
            "type": "string",
            "description": "Public OAuth client ID"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation timestamp (RFC 3339)"
          },
          "clientSecret": {
            "type": "string",
            "description": "Plaintext secret — returned once at creation or rotation"
          },
          "providerType": {
            "enum": [
              "google",
              "github",
              "apple",
              "facebook",
              "custom"
            ],
            "type": "string",
            "description": "Identity provider type"
          },
          "redirectUris": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Allowed redirect URIs"
          },
          "providerLabel": {
            "type": "string",
            "description": "Custom provider label"
          }
        }
      }
    }
  }
}
oauth.clients.list annotations
{
  "title": "List OAuth clients",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
oauth.clients.create — Create OAuth client
Advertised by the server during the last successful anonymous check.

Register an OAuth client for mock identity flows. The plaintext clientSecret is returned once at creation.

oauth.clients.create input schema
{
  "type": "object",
  "required": [
    "name",
    "redirectUris"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Client display name"
    },
    "providerType": {
      "enum": [
        "google",
        "github",
        "apple",
        "facebook",
        "custom"
      ],
      "type": "string",
      "description": "Identity provider type"
    },
    "redirectUris": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Allowed redirect URIs (at least one)"
    },
    "providerLabel": {
      "type": "string",
      "description": "Custom provider label. Required when providerType is custom."
    }
  }
}
oauth.clients.create output schema
{
  "type": "object",
  "required": [
    "clientId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Client display name"
    },
    "clientId": {
      "type": "string",
      "description": "Public OAuth client ID"
    },
    "createdAt": {
      "type": "string",
      "description": "Creation timestamp (RFC 3339)"
    },
    "clientSecret": {
      "type": "string",
      "description": "Plaintext secret — returned once at creation or rotation"
    },
    "providerType": {
      "enum": [
        "google",
        "github",
        "apple",
        "facebook",
        "custom"
      ],
      "type": "string",
      "description": "Identity provider type"
    },
    "redirectUris": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Allowed redirect URIs"
    },
    "providerLabel": {
      "type": "string",
      "description": "Custom provider label"
    }
  }
}
oauth.clients.create annotations
{
  "title": "Create OAuth client",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
oauth.clients.get — Get OAuth client
Advertised by the server during the last successful anonymous check.
Advertised read-only

Fetch a single OAuth client by its public client ID.

oauth.clients.get input schema
{
  "type": "object",
  "required": [
    "clientId"
  ],
  "properties": {
    "clientId": {
      "type": "string",
      "description": "Public OAuth client ID"
    }
  }
}
oauth.clients.get output schema
{
  "type": "object",
  "required": [
    "clientId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Client display name"
    },
    "clientId": {
      "type": "string",
      "description": "Public OAuth client ID"
    },
    "createdAt": {
      "type": "string",
      "description": "Creation timestamp (RFC 3339)"
    },
    "clientSecret": {
      "type": "string",
      "description": "Plaintext secret — returned once at creation or rotation"
    },
    "providerType": {
      "enum": [
        "google",
        "github",
        "apple",
        "facebook",
        "custom"
      ],
      "type": "string",
      "description": "Identity provider type"
    },
    "redirectUris": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Allowed redirect URIs"
    },
    "providerLabel": {
      "type": "string",
      "description": "Custom provider label"
    }
  }
}
oauth.clients.get annotations
{
  "title": "Get OAuth client",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
oauth.clients.delete — Delete OAuth client
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete an OAuth client by its public client ID.

oauth.clients.delete input schema
{
  "type": "object",
  "required": [
    "clientId"
  ],
  "properties": {
    "clientId": {
      "type": "string",
      "description": "Public OAuth client ID"
    }
  }
}
oauth.clients.delete output schema
{
  "type": "object",
  "required": [
    "status",
    "http_status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "const": "ok"
    },
    "http_status": {
      "type": "integer",
      "description": "HTTP status of the API response"
    }
  }
}
oauth.clients.delete annotations
{
  "title": "Delete OAuth client",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
oauth.clients.rotate_secret — Rotate client secret
Advertised by the server during the last successful anonymous check.

Rotate an OAuth client's secret. The new plaintext secret is returned once.

oauth.clients.rotate_secret input schema
{
  "type": "object",
  "required": [
    "clientId"
  ],
  "properties": {
    "clientId": {
      "type": "string",
      "description": "Public OAuth client ID"
    }
  }
}
oauth.clients.rotate_secret output schema
{
  "type": "object",
  "required": [
    "clientId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Client display name"
    },
    "clientId": {
      "type": "string",
      "description": "Public OAuth client ID"
    },
    "createdAt": {
      "type": "string",
      "description": "Creation timestamp (RFC 3339)"
    },
    "clientSecret": {
      "type": "string",
      "description": "Plaintext secret — returned once at creation or rotation"
    },
    "providerType": {
      "enum": [
        "google",
        "github",
        "apple",
        "facebook",
        "custom"
      ],
      "type": "string",
      "description": "Identity provider type"
    },
    "redirectUris": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Allowed redirect URIs"
    },
    "providerLabel": {
      "type": "string",
      "description": "Custom provider label"
    }
  }
}
oauth.clients.rotate_secret annotations
{
  "title": "Rotate client secret",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
627 ms
95th percentile latency
627 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 627 ms · metadata changed · 40 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http minutemail-mcp https://mcp.minutemail.co/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add minutemail-mcp --url https://mcp.minutemail.co/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable minutemail-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "minutemail-mcp": {
      "url": "https://mcp.minutemail.co/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "minutemail-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.minutemail.co/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start minutemail-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "minutemail-mcp": {
      "type": "http",
      "url": "https://mcp.minutemail.co/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http minutemail-mcp https://mcp.minutemail.co/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.minutemail.co/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "minutemail-mcp": {
      "serverUrl": "https://mcp.minutemail.co/mcp"
    }
  }
}

Let your agent find its tools

Find servers like MinuteMail MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.