Ephemeral mailboxes and a mock OAuth IdP for testing email and auth flows — 39 API-driven tools
Call this server's tools from your browser. Nothing to install.
MinuteMail API key (Bearer mmak_...) — create one at https://minutemail.co
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Permanently delete an archived mailbox.
Archived mailbox ID
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Permanently delete an archived mailbox.
| Argument | Type | Description |
|---|---|---|
| mailboxId* | string | Archived mailbox ID |
{
"type": "object",
"required": [
"mailboxId"
],
"properties": {
"mailboxId": {
"type": "string",
"description": "Archived mailbox ID"
}
}
}Fetch a single archived mailbox by ID.
| Argument | Type | Description |
|---|---|---|
| mailboxId* | string | Archived mailbox ID |
{
"type": "object",
"required": [
"mailboxId"
],
"properties": {
"mailboxId": {
"type": "string",
"description": "Archived mailbox ID"
}
}
}List the tenant's archived (expired but recoverable) mailboxes.
No arguments.
{
"type": "object",
"properties": {}
}Reactivate an archived mailbox back to active state.
| Argument | Type | Description |
|---|---|---|
| expiresIn | integer | New lifetime in minutes, 1-60. Optional. |
| mailboxId* | string | Archived mailbox ID |
{
"type": "object",
"required": [
"mailboxId"
],
"properties": {
"expiresIn": {
"type": "integer",
"description": "New lifetime in minutes, 1-60. Optional."
},
"mailboxId": {
"type": "string",
"description": "Archived mailbox ID"
}
}
}Attach a file to a test-injected email (base64 payload).
| Argument | Type | Description |
|---|---|---|
| data* | string | File contents, standard base64 |
| mailId* | string | Mail ID |
| filename* | string | Attachment file name |
| expiresIn | integer | Attachment lifetime in minutes (>=1). Optional. |
| mailboxId* | string | Mailbox ID |
| sizeBytes | integer | Expected size in bytes. Optional; validated against the decoded data when set. |
| contentType | string | MIME type, defaults to application/octet-stream |
{
"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"
}
}
}Delete a single attachment.
| Argument | Type | Description |
|---|---|---|
| mailId* | string | Mail ID |
| mailboxId* | string | Mailbox ID |
| attachmentId* | string | Attachment ID |
{
"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"
}
}
}Delete several attachments of one email at once.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Attachment IDs to delete |
| mailId* | string | Mail ID |
| mailboxId* | string | Mailbox ID |
{
"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"
}
}
}Download an attachment. The file contents are returned base64-encoded in the JSON "data" field.
| Argument | Type | Description |
|---|---|---|
| mailId* | string | Mail ID |
| mailboxId* | string | Mailbox ID |
| attachmentId* | string | Attachment ID |
{
"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"
}
}
}List the attachments of an email (metadata only).
| Argument | Type | Description |
|---|---|---|
| mailId* | string | Mail ID |
| mailboxId* | string | Mailbox ID |
{
"type": "object",
"required": [
"mailboxId",
"mailId"
],
"properties": {
"mailId": {
"type": "string",
"description": "Mail ID"
},
"mailboxId": {
"type": "string",
"description": "Mailbox ID"
}
}
}Delete a registered custom domain.
| Argument | Type | Description |
|---|---|---|
| domainId* | string | Domain ID |
{
"type": "object",
"required": [
"domainId"
],
"properties": {
"domainId": {
"type": "string",
"description": "Domain ID"
}
}
}List the tenant's custom domains with their DNS verification status.
No arguments.
{
"type": "object",
"properties": {}
}Register a new custom domain. DNS records (TXT token + MX) must then be added before verification can succeed.
| Argument | Type | Description |
|---|---|---|
| name* | string | Domain name, e.g. mail.example.com |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Domain name, e.g. mail.example.com"
}
}
}Trigger DNS verification (TXT + MX) of a registered domain.
| Argument | Type | Description |
|---|---|---|
| domainId* | string | Domain ID |
{
"type": "object",
"required": [
"domainId"
],
"properties": {
"domainId": {
"type": "string",
"description": "Domain ID"
}
}
}Create a mock identity bound to a mailbox for OAuth flow testing.
| Argument | Type | Description |
|---|---|---|
| name | string | Display name. Optional. |
| claims | object | Custom claims (e.g. role, plan) merged into the ID token and userinfo. Custom-provider clients only — rejected for google/github/apple/facebook. Optional. |
| clientId* | string | OAuth client ID the identity belongs to |
| username | string | Identity username. Optional. |
| avatarUrl | string | Avatar URL. Optional. |
| emailVerified | boolean | Value of the email_verified claim issued for this identity. Optional. |
| mailboxAddress* | string | Mailbox address the identity is linked to (must exist) |
{
"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)"
}
}
}Delete a mock identity.
| Argument | Type | Description |
|---|---|---|
| identityId* | string | Identity ID |
{
"type": "object",
"required": [
"identityId"
],
"properties": {
"identityId": {
"type": "string",
"description": "Identity ID"
}
}
}Fetch a single mock identity by ID.
| Argument | Type | Description |
|---|---|---|
| identityId* | string | Identity ID |
{
"type": "object",
"required": [
"identityId"
],
"properties": {
"identityId": {
"type": "string",
"description": "Identity ID"
}
}
}List the tenant's mock identities, optionally filtered by OAuth client or mailbox address.
| Argument | Type | Description |
|---|---|---|
| clientId | string | Filter by OAuth client ID. Optional. |
| mailboxAddress | string | Filter by mailbox address. Optional. |
{
"type": "object",
"properties": {
"clientId": {
"type": "string",
"description": "Filter by OAuth client ID. Optional."
},
"mailboxAddress": {
"type": "string",
"description": "Filter by mailbox address. Optional."
}
}
}Update a mock identity: profile fields, isActive (activate/deactivate), emailVerified, and custom claims merged into the ID token and userinfo.
| Argument | Type | Description |
|---|---|---|
| name | string | Display name. Optional. |
| claims | object | Custom claims (e.g. role, plan) merged into the ID token and userinfo. Replaces existing claims. Reserved claim names are rejected. Optional. |
| isActive | boolean | Whether the identity can be used in OAuth flows. Optional. |
| username | string | Identity username. Optional. |
| avatarUrl | string | Avatar URL. Optional. |
| identityId* | string | Identity ID |
| emailVerified | boolean | Value of the email_verified claim issued for this identity. Optional. |
{
"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."
}
}
}Create a new temporary mailbox. The domain defaults to the tenant's default domain; the owner is always the API key's owner.
| Argument | Type | Description |
|---|---|---|
| tag | string | Recovery tag, required when recoverable is true. |
| domain | string | Mailbox domain. Defaults to the tenant default domain (e.g. minutemail.cc). |
| expiresIn | integer | Lifetime in minutes, 1-60. Omit for the service default TTL. |
| recoverable | boolean | Set true to keep the mailbox recoverable after expiry (requires tag). |
| noExpiration | boolean | Set true for a permanent mailbox (mutually exclusive with expiresIn). |
{
"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)."
}
}
}Delete a mailbox and its contents by ID.
| Argument | Type | Description |
|---|---|---|
| mailboxId* | string | Mailbox ID |
{
"type": "object",
"required": [
"mailboxId"
],
"properties": {
"mailboxId": {
"type": "string",
"description": "Mailbox ID"
}
}
}Delete several mailboxes at once by ID.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Mailbox IDs to delete |
{
"type": "object",
"required": [
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Mailbox IDs to delete"
}
}
}Fetch a single mailbox by ID.
| Argument | Type | Description |
|---|---|---|
| mailboxId* | string | Mailbox ID |
{
"type": "object",
"required": [
"mailboxId"
],
"properties": {
"mailboxId": {
"type": "string",
"description": "Mailbox ID"
}
}
}List the tenant's active mailboxes (owner is derived from the API key). Optionally look up a single mailbox by exact address.
| Argument | Type | Description |
|---|---|---|
| address | string | Exact mailbox address to look up (e.g. [email protected]). Optional. |
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Exact mailbox address to look up (e.g. [email protected]). Optional."
}
}
}Delete a single email.
| Argument | Type | Description |
|---|---|---|
| mailId* | string | Mail ID |
| mailboxId* | string | Mailbox ID |
{
"type": "object",
"required": [
"mailboxId",
"mailId"
],
"properties": {
"mailId": {
"type": "string",
"description": "Mail ID"
},
"mailboxId": {
"type": "string",
"description": "Mailbox ID"
}
}
}Delete several emails of one mailbox at once.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Mail IDs to delete |
| mailboxId* | string | Mailbox ID |
{
"type": "object",
"required": [
"mailboxId",
"ids"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Mail IDs to delete"
},
"mailboxId": {
"type": "string",
"description": "Mailbox ID"
}
}
}Fetch a single email by ID, including body and attachment metadata.
| Argument | Type | Description |
|---|---|---|
| mailId* | string | Mail ID |
| mailboxId* | string | Mailbox ID |
{
"type": "object",
"required": [
"mailboxId",
"mailId"
],
"properties": {
"mailId": {
"type": "string",
"description": "Mail ID"
},
"mailboxId": {
"type": "string",
"description": "Mailbox ID"
}
}
}Inject a simulated inbound email into a mailbox (multipart upload). No external mail is sent; use this to simulate inbound mail for flow testing.
| Argument | Type | Description |
|---|---|---|
| body* | string | Plain-text body |
| sender* | string | Sender email address |
| subject* | string | Email subject |
| expiresIn | integer | Mail lifetime in minutes (>=1). Optional. |
| mailboxId* | string | Mailbox ID |
| attachments | array | Attachments to include |
{
"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"
}
}
}List the emails in a mailbox, newest first.
| Argument | Type | Description |
|---|---|---|
| mailboxId* | string | Mailbox ID |
{
"type": "object",
"required": [
"mailboxId"
],
"properties": {
"mailboxId": {
"type": "string",
"description": "Mailbox ID"
}
}
}Register an OAuth client for mock identity flows. The plaintext clientSecret is returned once at creation.
| Argument | Type | Description |
|---|---|---|
| name* | string | Client display name |
| providerType | string | Identity provider type |
| redirectUris* | array | Allowed redirect URIs (at least one) |
| providerLabel | string | Custom provider label. Required when providerType is custom. |
{
"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."
}
}
}Delete an OAuth client by its public client ID.
| Argument | Type | Description |
|---|---|---|
| clientId* | string | Public OAuth client ID |
{
"type": "object",
"required": [
"clientId"
],
"properties": {
"clientId": {
"type": "string",
"description": "Public OAuth client ID"
}
}
}Fetch a single OAuth client by its public client ID.
| Argument | Type | Description |
|---|---|---|
| clientId* | string | Public OAuth client ID |
{
"type": "object",
"required": [
"clientId"
],
"properties": {
"clientId": {
"type": "string",
"description": "Public OAuth client ID"
}
}
}List the tenant's OAuth clients for mock identity testing.
No arguments.
{
"type": "object",
"properties": {}
}Rotate an OAuth client's secret. The new plaintext secret is returned once.
| Argument | Type | Description |
|---|---|---|
| clientId* | string | Public OAuth client ID |
{
"type": "object",
"required": [
"clientId"
],
"properties": {
"clientId": {
"type": "string",
"description": "Public OAuth client ID"
}
}
}Create a team invitation for an email address (SMTP invite is sent by the team service).
| Argument | Type | Description |
|---|---|---|
| email* | string | Invitee email address |
{
"type": "object",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"description": "Invitee email address"
}
}
}Revoke a team invitation.
| Argument | Type | Description |
|---|---|---|
| invitationId* | string | Invitation ID |
{
"type": "object",
"required": [
"invitationId"
],
"properties": {
"invitationId": {
"type": "string",
"description": "Invitation ID"
}
}
}List the tenant's team invitations.
No arguments.
{
"type": "object",
"properties": {}
}Add a team member directly (no invitation flow).
| Argument | Type | Description |
|---|---|---|
| email* | string | Member email address |
| status* | string | Member status, conventionally ACTIVE |
| user_id* | string | Member user ID |
| username* | string | Member username |
{
"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"
}
}
}Remove a team member.
| Argument | Type | Description |
|---|---|---|
| memberId* | string | Member ID |
{
"type": "object",
"required": [
"memberId"
],
"properties": {
"memberId": {
"type": "string",
"description": "Member ID"
}
}
}Fetch a single team member by ID.
| Argument | Type | Description |
|---|---|---|
| memberId* | string | Member ID |
{
"type": "object",
"required": [
"memberId"
],
"properties": {
"memberId": {
"type": "string",
"description": "Member ID"
}
}
}List the tenant's team members.
No arguments.
{
"type": "object",
"properties": {}
}