MinuteMail

Ephemeral mailboxes and a mock OAuth IdP for testing email and auth flows — 39 API-driven tools

¿Debería usar esto?

Calidad y seguridad

B
Calidad de la descripción
86%
Integridad del esquema
90%
Calidad de los nombres
50%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (45)

  • LOWTool 'archived.reactivate' description lacks action verben archived.reactivate
  • LOWTool 'domains.verify' description lacks action verben domains.verify
  • LOWTool 'team.invitations.delete' description lacks action verben team.invitations.delete
  • LOWTool 'oauth.clients.create' description lacks action verben oauth.clients.create
  • LOWTool 'oauth.clients.rotate_secret' description lacks action verben oauth.clients.rotate_secret
  • LOWTool 'mailboxes.list' doesn't follow camelCase/snake_caseen mailboxes.list
  • LOWTool 'mailboxes.create' doesn't follow camelCase/snake_caseen mailboxes.create
  • LOWTool 'mailboxes.get' doesn't follow camelCase/snake_caseen mailboxes.get
  • LOWTool 'mailboxes.delete' doesn't follow camelCase/snake_caseen mailboxes.delete
  • LOWTool 'mailboxes.delete_bulk' doesn't follow camelCase/snake_caseen mailboxes.delete_bulk

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~8,325Tokens (definiciones de herramientas)
~2.0 KBTamaño de respuesta típico
Impacto significativo en la atención (6.50% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "mcp-server": {
      "url": "https://mcp.minutemail.co/mcp"
    }
  }
}

Puntos de conexión remotos

https://mcp.minutemail.co/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (40)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢mailboxes.list(address)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "address": {
      "description": "Exact mailbox address to look up (e.g. [email protected]). Optional.",
      "type": "string"
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "items": {
      "items": {
        "properties": {
          "address": {
            "description": "Full mailbox address",
            "type": "string"
          },
          "alias": {
            "description": "Local part of the address",
            "type": "string"
          },
          "createdAt": {
            "description": "Creation timestamp (RFC 3339)",
            "type": "string"
          },
          "domain": {
            "description": "Mailbox domain",
            "type": "string"
          },
          "expiresAt": {
            "description": "Expiry timestamp (RFC 3339); null when permanent",
            "type": "string"
          },
          "id": {
            "description": "Mailbox ID",
            "type": "string"
          },
          "messageCount": {
            "description": "Number of mails in the mailbox",
            "type": "integer"
          },
          "owner": {
            "description": "Owner (tenant) ID",
            "type": "string"
          },
          "permanent": {
            "description": "Whether the mailbox never expires",
            "type": "boolean"
          },
          "recoverable": {
            "description": "Whether the mailbox can be recovered after expiry",
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "address"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "items"
  ]
}
🟡mailboxes.create(domain, expiresIn, noExpiration, recoverable, tag)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "domain": {
      "description": "Mailbox domain. Defaults to the tenant default domain (e.g. minutemail.cc).",
      "type": "string"
    },
    "expiresIn": {
      "description": "Lifetime in minutes, 1-60. Omit for the service default TTL.",
      "type": "integer"
    },
    "noExpiration": {
      "description": "Set true for a permanent mailbox (mutually exclusive with expiresIn).",
      "type": "boolean"
    },
    "recoverable": {
      "description": "Set true to keep the mailbox recoverable after expiry (requires tag).",
      "type": "boolean"
    },
    "tag": {
      "description": "Recovery tag, required when recoverable is true.",
      "type": "string"
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "address": {
      "description": "Full mailbox address",
      "type": "string"
    },
    "alias": {
      "description": "Local part of the address",
      "type": "string"
    },
    "createdAt": {
      "description": "Creation timestamp (RFC 3339)",
      "type": "string"
    },
    "domain": {
      "description": "Mailbox domain",
      "type": "string"
    },
    "expiresAt": {
      "description": "Expiry timestamp (RFC 3339); null when permanent",
      "type": "string"
    },
    "id": {
      "description": "Mailbox ID",
      "type": "string"
    },
    "messageCount": {
      "description": "Number of mails in the mailbox",
      "type": "integer"
    },
    "owner": {
      "description": "Owner (tenant) ID",
      "type": "string"
    },
    "permanent": {
      "description": "Whether the mailbox never expires",
      "type": "boolean"
    },
    "recoverable": {
      "description": "Whether the mailbox can be recovered after expiry",
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "address"
  ]
}
🟢mailboxes.get(mailboxId)

Fetch a single mailbox by ID.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "mailboxId": {
      "description": "Mailbox ID",
      "type": "string"
    }
  },
  "required": [
    "mailboxId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "address": {
      "description": "Full mailbox address",
      "type": "string"
    },
    "alias": {
      "description": "Local part of the address",
      "type": "string"
    },
    "createdAt": {
      "description": "Creation timestamp (RFC 3339)",
      "type": "string"
    },
    "domain": {
      "description": "Mailbox domain",
      "type": "string"
    },
    "expiresAt": {
      "description": "Expiry timestamp (RFC 3339); null when permanent",
      "type": "string"
    },
    "id": {
      "description": "Mailbox ID",
      "type": "string"
    },
    "messageCount": {
      "description": "Number of mails in the mailbox",
      "type": "integer"
    },
    "owner": {
      "description": "Owner (tenant) ID",
      "type": "string"
    },
    "permanent": {
      "description": "Whether the mailbox never expires",
      "type": "boolean"
    },
    "recoverable": {
      "description": "Whether the mailbox can be recovered after expiry",
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "address"
  ]
}
🔴mailboxes.delete(mailboxId)

Delete a mailbox and its contents by ID.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "mailboxId": {
      "description": "Mailbox ID",
      "type": "string"
    }
  },
  "required": [
    "mailboxId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "http_status": {
      "description": "HTTP status of the API response",
      "type": "integer"
    },
    "status": {
      "const": "ok",
      "type": "string"
    }
  },
  "required": [
    "status",
    "http_status"
  ]
}
🔴mailboxes.delete_bulk(ids)

Delete several mailboxes at once by ID.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "ids": {
      "description": "Mailbox IDs to delete",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "ids"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "http_status": {
      "description": "HTTP status of the API response",
      "type": "integer"
    },
    "status": {
      "const": "ok",
      "type": "string"
    }
  },
  "required": [
    "status",
    "http_status"
  ]
}
🟢mails.list(mailboxId)

List the emails in a mailbox, newest first.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "mailboxId": {
      "description": "Mailbox ID",
      "type": "string"
    }
  },
  "required": [
    "mailboxId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "items": {
      "items": {
        "properties": {
          "body": {
            "description": "Plain-text body (present on single-mail fetches)",
            "type": "string"
          },
          "expiresAt": {
            "description": "Expiry timestamp (RFC 3339)",
            "type": "string"
          },
          "id": {
            "description": "Mail ID",
            "type": "string"
          },
          "receivedAt": {
            "description": "Received timestamp (RFC 3339)",
            "type": "string"
          },
          "sender": {
            "description": "Sender email address",
            "type": "string"
          },
          "subject": {
            "description": "Email subject",
            "type": "string"
          }
        },
        "required": [
          "id",
          "sender",
          "subject"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "items"
  ]
}
⚪mails.inject(attachments, body, expiresIn, mailboxId, sender, ...)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "attachments": {
      "description": "Attachments to include",
      "items": {
        "properties": {
          "contentType": {
            "description": "MIME type, defaults to application/octet-stream",
            "type": "string"
          },
          "data": {
            "description": "File contents, standard base64",
            "type": "string"
          },
          "filename": {
            "description": "Attachment file name",
            "type": "string"
          }
        },
        "required": [
          "filename",
          "data"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "body": {
      "description": "Plain-text body",
      "type": "string"
    },
    "expiresIn": {
      "description": "Mail lifetime in minutes (>=1). Optional.",
      "type": "integer"
    },
    "mailboxId": {
      "description": "Mailbox ID",
      "type": "string"
    },
    "sender": {
      "description": "Sender email address",
      "type": "string"
    },
    "subject": {
      "description": "Email subject",
      "type": "string"
    }
  },
  "required": [
    "mailboxId",
    "sender",
    "subject",
    "body"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "body": {
      "description": "Plain-text body (present on single-mail fetches)",
      "type": "string"
    },
    "expiresAt": {
      "description": "Expiry timestamp (RFC 3339)",
      "type": "string"
    },
    "id": {
      "description": "Mail ID",
      "type": "string"
    },
    "receivedAt": {
      "description": "Received timestamp (RFC 3339)",
      "type": "string"
    },
    "sender": {
      "description": "Sender email address",
      "type": "string"
    },
    "subject": {
      "description": "Email subject",
      "type": "string"
    }
  },
  "required": [
    "id",
    "sender",
    "subject"
  ]
}
🟢mails.get(mailId, mailboxId)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "mailId": {
      "description": "Mail ID",
      "type": "string"
    },
    "mailboxId": {
      "description": "Mailbox ID",
      "type": "string"
    }
  },
  "required": [
    "mailboxId",
    "mailId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "body": {
      "description": "Plain-text body (present on single-mail fetches)",
      "type": "string"
    },
    "expiresAt": {
      "description": "Expiry timestamp (RFC 3339)",
      "type": "string"
    },
    "id": {
      "description": "Mail ID",
      "type": "string"
    },
    "receivedAt": {
      "description": "Received timestamp (RFC 3339)",
      "type": "string"
    },
    "sender": {
      "description": "Sender email address",
      "type": "string"
    },
    "subject": {
      "description": "Email subject",
      "type": "string"
    }
  },
  "required": [
    "id",
    "sender",
    "subject"
  ]
}
🔴mails.delete(mailId, mailboxId)

Delete a single email.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "mailId": {
      "description": "Mail ID",
      "type": "string"
    },
    "mailboxId": {
      "description": "Mailbox ID",
      "type": "string"
    }
  },
  "required": [
    "mailboxId",
    "mailId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "http_status": {
      "description": "HTTP status of the API response",
      "type": "integer"
    },
    "status": {
      "const": "ok",
      "type": "string"
    }
  },
  "required": [
    "status",
    "http_status"
  ]
}
🔴mails.delete_bulk(ids, mailboxId)

Delete several emails of one mailbox at once.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "ids": {
      "description": "Mail IDs to delete",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "mailboxId": {
      "description": "Mailbox ID",
      "type": "string"
    }
  },
  "required": [
    "mailboxId",
    "ids"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "http_status": {
      "description": "HTTP status of the API response",
      "type": "integer"
    },
    "status": {
      "const": "ok",
      "type": "string"
    }
  },
  "required": [
    "status",
    "http_status"
  ]
}
🟢attachments.list(mailId, mailboxId)

List the attachments of an email (metadata only).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "mailId": {
      "description": "Mail ID",
      "type": "string"
    },
    "mailboxId": {
      "description": "Mailbox ID",
      "type": "string"
    }
  },
  "required": [
    "mailboxId",
    "mailId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "items": {
      "items": {
        "properties": {
          "contentType": {
            "description": "MIME type",
            "type": "string"
          },
          "expiresAt": {
            "description": "Expiry timestamp (RFC 3339)",
            "type": "string"
          },
          "filename": {
            "description": "Attachment file name",
            "type": "string"
          },
          "id": {
            "description": "Attachment ID",
            "type": "string"
          },
          "sizeBytes": {
            "description": "Size in bytes",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "filename"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "items"
  ]
}
⚪attachments.add(contentType, data, expiresIn, filename, mailId, ...)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "contentType": {
      "description": "MIME type, defaults to application/octet-stream",
      "type": "string"
    },
    "data": {
      "description": "File contents, standard base64",
      "type": "string"
    },
    "expiresIn": {
      "description": "Attachment lifetime in minutes (>=1). Optional.",
      "type": "integer"
    },
    "filename": {
      "description": "Attachment file name",
      "type": "string"
    },
    "mailId": {
      "description": "Mail ID",
      "type": "string"
    },
    "mailboxId": {
      "description": "Mailbox ID",
      "type": "string"
    },
    "sizeBytes": {
      "description": "Expected size in bytes. Optional; validated against the decoded data when set.",
      "type": "integer"
    }
  },
  "required": [
    "mailboxId",
    "mailId",
    "filename",
    "data"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "contentType": {
      "description": "MIME type",
      "type": "string"
    },
    "expiresAt": {
      "description": "Expiry timestamp (RFC 3339)",
      "type": "string"
    },
    "filename": {
      "description": "Attachment file name",
      "type": "string"
    },
    "id": {
      "description": "Attachment ID",
      "type": "string"
    },
    "sizeBytes": {
      "description": "Size in bytes",
      "type": "integer"
    }
  },
  "required": [
    "id",
    "filename"
  ]
}
🟢attachments.get(attachmentId, mailId, mailboxId)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "attachmentId": {
      "description": "Attachment ID",
      "type": "string"
    },
    "mailId": {
      "description": "Mail ID",
      "type": "string"
    },
    "mailboxId": {
      "description": "Mailbox ID",
      "type": "string"
    }
  },
  "required": [
    "mailboxId",
    "mailId",
    "attachmentId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "contentType": {
      "description": "MIME type",
      "type": "string"
    },
    "data": {
      "description": "File contents, standard base64",
      "type": "string"
    },
    "expiresAt": {
      "description": "Expiry timestamp (RFC 3339)",
      "type": "string"
    },
    "filename": {
      "description": "Attachment file name",
      "type": "string"
    },
    "id": {
      "description": "Attachment ID",
      "type": "string"
    },
    "sizeBytes": {
      "description": "Size in bytes",
      "type": "integer"
    }
  },
  "required": [
    "id",
    "filename",
    "data"
  ]
}
🔴attachments.delete(attachmentId, mailId, mailboxId)

Delete a single attachment.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "attachmentId": {
      "description": "Attachment ID",
      "type": "string"
    },
    "mailId": {
      "description": "Mail ID",
      "type": "string"
    },
    "mailboxId": {
      "description": "Mailbox ID",
      "type": "string"
    }
  },
  "required": [
    "mailboxId",
    "mailId",
    "attachmentId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "http_status": {
      "description": "HTTP status of the API response",
      "type": "integer"
    },
    "status": {
      "const": "ok",
      "type": "string"
    }
  },
  "required": [
    "status",
    "http_status"
  ]
}
🔴attachments.delete_bulk(ids, mailId, mailboxId)

Delete several attachments of one email at once.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "ids": {
      "description": "Attachment IDs to delete",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "mailId": {
      "description": "Mail ID",
      "type": "string"
    },
    "mailboxId": {
      "description": "Mailbox ID",
      "type": "string"
    }
  },
  "required": [
    "mailboxId",
    "mailId",
    "ids"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "http_status": {
      "description": "HTTP status of the API response",
      "type": "integer"
    },
    "status": {
      "const": "ok",
      "type": "string"
    }
  },
  "required": [
    "status",
    "http_status"
  ]
}
🟢archived.list

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

Esquema de entrada

{
  "type": "object",
  "properties": {}
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "items": {
      "items": {
        "properties": {
          "address": {
            "description": "Full mailbox address",
            "type": "string"
          },
          "alias": {
            "description": "Local part of the address",
            "type": "string"
          },
          "createdAt": {
            "description": "Creation timestamp (RFC 3339)",
            "type": "string"
          },
          "domain": {
            "description": "Mailbox domain",
            "type": "string"
          },
          "expiresAt": {
            "description": "Expiry timestamp (RFC 3339); null when permanent",
            "type": "string"
          },
          "id": {
            "description": "Mailbox ID",
            "type": "string"
          },
          "messageCount": {
            "description": "Number of mails in the mailbox",
            "type": "integer"
          },
          "owner": {
            "description": "Owner (tenant) ID",
            "type": "string"
          },
          "permanent": {
            "description": "Whether the mailbox never expires",
            "type": "boolean"
          },
          "recoverable": {
            "description": "Whether the mailbox can be recovered after expiry",
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "address"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "items"
  ]
}
🟢archived.get(mailboxId)

Fetch a single archived mailbox by ID.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "mailboxId": {
      "description": "Archived mailbox ID",
      "type": "string"
    }
  },
  "required": [
    "mailboxId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "address": {
      "description": "Full mailbox address",
      "type": "string"
    },
    "alias": {
      "description": "Local part of the address",
      "type": "string"
    },
    "createdAt": {
      "description": "Creation timestamp (RFC 3339)",
      "type": "string"
    },
    "domain": {
      "description": "Mailbox domain",
      "type": "string"
    },
    "expiresAt": {
      "description": "Expiry timestamp (RFC 3339); null when permanent",
      "type": "string"
    },
    "id": {
      "description": "Mailbox ID",
      "type": "string"
    },
    "messageCount": {
      "description": "Number of mails in the mailbox",
      "type": "integer"
    },
    "owner": {
      "description": "Owner (tenant) ID",
      "type": "string"
    },
    "permanent": {
      "description": "Whether the mailbox never expires",
      "type": "boolean"
    },
    "recoverable": {
      "description": "Whether the mailbox can be recovered after expiry",
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "address"
  ]
}
🔴archived.delete(mailboxId)

Permanently delete an archived mailbox.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "mailboxId": {
      "description": "Archived mailbox ID",
      "type": "string"
    }
  },
  "required": [
    "mailboxId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "http_status": {
      "description": "HTTP status of the API response",
      "type": "integer"
    },
    "status": {
      "const": "ok",
      "type": "string"
    }
  },
  "required": [
    "status",
    "http_status"
  ]
}
⚪archived.reactivate(expiresIn, mailboxId)

Reactivate an archived mailbox back to active state.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "expiresIn": {
      "description": "New lifetime in minutes, 1-60. Optional.",
      "type": "integer"
    },
    "mailboxId": {
      "description": "Archived mailbox ID",
      "type": "string"
    }
  },
  "required": [
    "mailboxId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "address": {
      "description": "Full mailbox address",
      "type": "string"
    },
    "alias": {
      "description": "Local part of the address",
      "type": "string"
    },
    "createdAt": {
      "description": "Creation timestamp (RFC 3339)",
      "type": "string"
    },
    "domain": {
      "description": "Mailbox domain",
      "type": "string"
    },
    "expiresAt": {
      "description": "Expiry timestamp (RFC 3339); null when permanent",
      "type": "string"
    },
    "id": {
      "description": "Mailbox ID",
      "type": "string"
    },
    "messageCount": {
      "description": "Number of mails in the mailbox",
      "type": "integer"
    },
    "owner": {
      "description": "Owner (tenant) ID",
      "type": "string"
    },
    "permanent": {
      "description": "Whether the mailbox never expires",
      "type": "boolean"
    },
    "recoverable": {
      "description": "Whether the mailbox can be recovered after expiry",
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "address"
  ]
}
🟢domains.list

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

Esquema de entrada

{
  "type": "object",
  "properties": {}
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "items": {
      "items": {
        "properties": {
          "createdAt": {
            "description": "Creation timestamp (RFC 3339)",
            "type": "string"
          },
          "id": {
            "description": "Domain ID",
            "type": "string"
          },
          "mxTarget": {
            "description": "MX target to add to the domain's DNS before verification",
            "type": "string"
          },
          "name": {
            "description": "Domain name",
            "type": "string"
          },
          "status": {
            "description": "DNS verification status",
            "enum": [
              "pending",
              "verified"
            ],
            "type": "string"
          },
          "txtToken": {
            "description": "TXT token to add to the domain's DNS before verification",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "status"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "items"
  ]
}
⚪domains.register(name)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Domain name, e.g. mail.example.com",
      "type": "string"
    }
  },
  "required": [
    "name"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "createdAt": {
      "description": "Creation timestamp (RFC 3339)",
      "type": "string"
    },
    "id": {
      "description": "Domain ID",
      "type": "string"
    },
    "mxTarget": {
      "description": "MX target to add to the domain's DNS before verification",
      "type": "string"
    },
    "name": {
      "description": "Domain name",
      "type": "string"
    },
    "status": {
      "description": "DNS verification status",
      "enum": [
        "pending",
        "verified"
      ],
      "type": "string"
    },
    "txtToken": {
      "description": "TXT token to add to the domain's DNS before verification",
      "type": "string"
    }
  },
  "required": [
    "id",
    "name",
    "status"
  ]
}
⚪domains.verify(domainId)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "domainId": {
      "description": "Domain ID",
      "type": "string"
    }
  },
  "required": [
    "domainId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "createdAt": {
      "description": "Creation timestamp (RFC 3339)",
      "type": "string"
    },
    "id": {
      "description": "Domain ID",
      "type": "string"
    },
    "mxTarget": {
      "description": "MX target to add to the domain's DNS before verification",
      "type": "string"
    },
    "name": {
      "description": "Domain name",
      "type": "string"
    },
    "status": {
      "description": "DNS verification status",
      "enum": [
        "pending",
        "verified"
      ],
      "type": "string"
    },
    "txtToken": {
      "description": "TXT token to add to the domain's DNS before verification",
      "type": "string"
    }
  },
  "required": [
    "id",
    "name",
    "status"
  ]
}
🔴domains.delete(domainId)

Delete a registered custom domain.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "domainId": {
      "description": "Domain ID",
      "type": "string"
    }
  },
  "required": [
    "domainId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "http_status": {
      "description": "HTTP status of the API response",
      "type": "integer"
    },
    "status": {
      "const": "ok",
      "type": "string"
    }
  },
  "required": [
    "status",
    "http_status"
  ]
}
🟢team.members.list

List the tenant's team members.

Esquema de entrada

{
  "type": "object",
  "properties": {}
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "items": {
      "items": {
        "properties": {
          "createdAt": {
            "description": "Creation timestamp (RFC 3339)",
            "type": "string"
          },
          "email": {
            "description": "Member email address",
            "type": "string"
          },
          "id": {
            "description": "Member ID",
            "type": "string"
          },
          "status": {
            "description": "Member status (e.g. ACTIVE)",
            "type": "string"
          },
          "user_id": {
            "description": "Member user ID",
            "type": "string"
          },
          "username": {
            "description": "Member username",
            "type": "string"
          }
        },
        "required": [
          "id",
          "email",
          "status"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "items"
  ]
}
🟡team.members.add(email, status, user_id, username)

Add a team member directly (no invitation flow).

Esquema de entrada

{
  "type": "object",
  "properties": {
    "email": {
      "description": "Member email address",
      "type": "string"
    },
    "status": {
      "description": "Member status, conventionally ACTIVE",
      "type": "string"
    },
    "user_id": {
      "description": "Member user ID",
      "type": "string"
    },
    "username": {
      "description": "Member username",
      "type": "string"
    }
  },
  "required": [
    "user_id",
    "username",
    "email",
    "status"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "createdAt": {
      "description": "Creation timestamp (RFC 3339)",
      "type": "string"
    },
    "email": {
      "description": "Member email address",
      "type": "string"
    },
    "id": {
      "description": "Member ID",
      "type": "string"
    },
    "status": {
      "description": "Member status (e.g. ACTIVE)",
      "type": "string"
    },
    "user_id": {
      "description": "Member user ID",
      "type": "string"
    },
    "username": {
      "description": "Member username",
      "type": "string"
    }
  },
  "required": [
    "id",
    "email",
    "status"
  ]
}
🟢team.members.get(memberId)

Fetch a single team member by ID.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "memberId": {
      "description": "Member ID",
      "type": "string"
    }
  },
  "required": [
    "memberId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "createdAt": {
      "description": "Creation timestamp (RFC 3339)",
      "type": "string"
    },
    "email": {
      "description": "Member email address",
      "type": "string"
    },
    "id": {
      "description": "Member ID",
      "type": "string"
    },
    "status": {
      "description": "Member status (e.g. ACTIVE)",
      "type": "string"
    },
    "user_id": {
      "description": "Member user ID",
      "type": "string"
    },
    "username": {
      "description": "Member username",
      "type": "string"
    }
  },
  "required": [
    "id",
    "email",
    "status"
  ]
}
🔴team.members.delete(memberId)

Remove a team member.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "memberId": {
      "description": "Member ID",
      "type": "string"
    }
  },
  "required": [
    "memberId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "http_status": {
      "description": "HTTP status of the API response",
      "type": "integer"
    },
    "status": {
      "const": "ok",
      "type": "string"
    }
  },
  "required": [
    "status",
    "http_status"
  ]
}
🟡team.invitations.create(email)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "email": {
      "description": "Invitee email address",
      "type": "string"
    }
  },
  "required": [
    "email"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "createdAt": {
      "description": "Creation timestamp (RFC 3339)",
      "type": "string"
    },
    "email": {
      "description": "Invitee email address",
      "type": "string"
    },
    "id": {
      "description": "Invitation ID",
      "type": "string"
    },
    "status": {
      "description": "Invitation status (e.g. PENDING)",
      "type": "string"
    }
  },
  "required": [
    "id",
    "email",
    "status"
  ]
}
🟢team.invitations.list

List the tenant's team invitations.

Esquema de entrada

{
  "type": "object",
  "properties": {}
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "items": {
      "items": {
        "properties": {
          "createdAt": {
            "description": "Creation timestamp (RFC 3339)",
            "type": "string"
          },
          "email": {
            "description": "Invitee email address",
            "type": "string"
          },
          "id": {
            "description": "Invitation ID",
            "type": "string"
          },
          "status": {
            "description": "Invitation status (e.g. PENDING)",
            "type": "string"
          }
        },
        "required": [
          "id",
          "email",
          "status"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "items"
  ]
}
🔴team.invitations.delete(invitationId)

Revoke a team invitation.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invitationId": {
      "description": "Invitation ID",
      "type": "string"
    }
  },
  "required": [
    "invitationId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "http_status": {
      "description": "HTTP status of the API response",
      "type": "integer"
    },
    "status": {
      "const": "ok",
      "type": "string"
    }
  },
  "required": [
    "status",
    "http_status"
  ]
}
🟢identities.list(clientId, mailboxAddress)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "clientId": {
      "description": "Filter by OAuth client ID. Optional.",
      "type": "string"
    },
    "mailboxAddress": {
      "description": "Filter by mailbox address. Optional.",
      "type": "string"
    }
  }
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "items": {
      "items": {
        "properties": {
          "avatarUrl": {
            "description": "Avatar URL",
            "type": "string"
          },
          "clientId": {
            "description": "OAuth client ID the identity belongs to",
            "type": "string"
          },
          "id": {
            "description": "Identity ID",
            "type": "string"
          },
          "mailboxAddress": {
            "description": "Mailbox address the identity is linked to",
            "type": "string"
          },
          "name": {
            "description": "Display name",
            "type": "string"
          },
          "username": {
            "description": "Identity username",
            "type": "string"
          }
        },
        "required": [
          "id",
          "clientId",
          "mailboxAddress"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "items"
  ]
}
🟡identities.create(avatarUrl, claims, clientId, emailVerified, mailboxAddress, ...)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "avatarUrl": {
      "description": "Avatar URL. Optional.",
      "type": "string"
    },
    "claims": {
      "additionalProperties": {
        "type": "string"
      },
      "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.",
      "type": "object"
    },
    "clientId": {
      "description": "OAuth client ID the identity belongs to",
      "type": "string"
    },
    "emailVerified": {
      "description": "Value of the email_verified claim issued for this identity. Optional.",
      "type": "boolean"
    },
    "mailboxAddress": {
      "description": "Mailbox address the identity is linked to (must exist)",
      "type": "string"
    },
    "name": {
      "description": "Display name. Optional.",
      "type": "string"
    },
    "username": {
      "description": "Identity username. Optional.",
      "type": "string"
    }
  },
  "required": [
    "clientId",
    "mailboxAddress"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "avatarUrl": {
      "description": "Avatar URL",
      "type": "string"
    },
    "clientId": {
      "description": "OAuth client ID the identity belongs to",
      "type": "string"
    },
    "id": {
      "description": "Identity ID",
      "type": "string"
    },
    "mailboxAddress": {
      "description": "Mailbox address the identity is linked to",
      "type": "string"
    },
    "name": {
      "description": "Display name",
      "type": "string"
    },
    "username": {
      "description": "Identity username",
      "type": "string"
    }
  },
  "required": [
    "id",
    "clientId",
    "mailboxAddress"
  ]
}
🟢identities.get(identityId)

Fetch a single mock identity by ID.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "identityId": {
      "description": "Identity ID",
      "type": "string"
    }
  },
  "required": [
    "identityId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "avatarUrl": {
      "description": "Avatar URL",
      "type": "string"
    },
    "clientId": {
      "description": "OAuth client ID the identity belongs to",
      "type": "string"
    },
    "id": {
      "description": "Identity ID",
      "type": "string"
    },
    "mailboxAddress": {
      "description": "Mailbox address the identity is linked to",
      "type": "string"
    },
    "name": {
      "description": "Display name",
      "type": "string"
    },
    "username": {
      "description": "Identity username",
      "type": "string"
    }
  },
  "required": [
    "id",
    "clientId",
    "mailboxAddress"
  ]
}
🟡identities.update(avatarUrl, claims, emailVerified, identityId, isActive, ...)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "avatarUrl": {
      "description": "Avatar URL. Optional.",
      "type": "string"
    },
    "claims": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Custom claims (e.g. role, plan) merged into the ID token and userinfo. Replaces existing claims. Reserved claim names are rejected. Optional.",
      "type": "object"
    },
    "emailVerified": {
      "description": "Value of the email_verified claim issued for this identity. Optional.",
      "type": "boolean"
    },
    "identityId": {
      "description": "Identity ID",
      "type": "string"
    },
    "isActive": {
      "description": "Whether the identity can be used in OAuth flows. Optional.",
      "type": "boolean"
    },
    "name": {
      "description": "Display name. Optional.",
      "type": "string"
    },
    "username": {
      "description": "Identity username. Optional.",
      "type": "string"
    }
  },
  "required": [
    "identityId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "avatarUrl": {
      "description": "Avatar URL",
      "type": "string"
    },
    "clientId": {
      "description": "OAuth client ID the identity belongs to",
      "type": "string"
    },
    "id": {
      "description": "Identity ID",
      "type": "string"
    },
    "mailboxAddress": {
      "description": "Mailbox address the identity is linked to",
      "type": "string"
    },
    "name": {
      "description": "Display name",
      "type": "string"
    },
    "username": {
      "description": "Identity username",
      "type": "string"
    }
  },
  "required": [
    "id",
    "clientId",
    "mailboxAddress"
  ]
}
🔴identities.delete(identityId)

Delete a mock identity.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "identityId": {
      "description": "Identity ID",
      "type": "string"
    }
  },
  "required": [
    "identityId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "http_status": {
      "description": "HTTP status of the API response",
      "type": "integer"
    },
    "status": {
      "const": "ok",
      "type": "string"
    }
  },
  "required": [
    "status",
    "http_status"
  ]
}
🟢oauth.clients.list

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

Esquema de entrada

{
  "type": "object",
  "properties": {}
}

Esquema de salida

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

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Client display name",
      "type": "string"
    },
    "providerLabel": {
      "description": "Custom provider label. Required when providerType is custom.",
      "type": "string"
    },
    "providerType": {
      "description": "Identity provider type",
      "enum": [
        "google",
        "github",
        "apple",
        "facebook",
        "custom"
      ],
      "type": "string"
    },
    "redirectUris": {
      "description": "Allowed redirect URIs (at least one)",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "name",
    "redirectUris"
  ]
}

Esquema de salida

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

Fetch a single OAuth client by its public client ID.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "clientId": {
      "description": "Public OAuth client ID",
      "type": "string"
    }
  },
  "required": [
    "clientId"
  ]
}

Esquema de salida

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

Delete an OAuth client by its public client ID.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "clientId": {
      "description": "Public OAuth client ID",
      "type": "string"
    }
  },
  "required": [
    "clientId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "http_status": {
      "description": "HTTP status of the API response",
      "type": "integer"
    },
    "status": {
      "const": "ok",
      "type": "string"
    }
  },
  "required": [
    "status",
    "http_status"
  ]
}
⚪oauth.clients.rotate_secret(clientId)

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

Esquema de entrada

{
  "type": "object",
  "properties": {
    "clientId": {
      "description": "Public OAuth client ID",
      "type": "string"
    }
  },
  "required": [
    "clientId"
  ]
}

Esquema de salida

{
  "type": "object",
  "properties": {
    "clientId": {
      "description": "Public OAuth client ID",
      "type": "string"
    },
    "clientSecret": {
      "description": "Plaintext secret — returned once at creation or rotation",
      "type": "string"
    },
    "createdAt": {
      "description": "Creation timestamp (RFC 3339)",
      "type": "string"
    },
    "name": {
      "description": "Client display name",
      "type": "string"
    },
    "providerLabel": {
      "description": "Custom provider label",
      "type": "string"
    },
    "providerType": {
      "description": "Identity provider type",
      "enum": [
        "google",
        "github",
        "apple",
        "facebook",
        "custom"
      ],
      "type": "string"
    },
    "redirectUris": {
      "description": "Allowed redirect URIs",
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "clientId",
    "name"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada40 herramientas
verificadoversión no registrada40 herramientas