MinuteMail
Ephemeral mailboxes and a mock OAuth IdP for testing email and auth flows — 39 API-driven tools
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (45)
- LOWin archived.reactivate
- LOWin domains.verify
- LOWin team.invitations.delete
- LOWin oauth.clients.create
- LOWin oauth.clients.rotate_secret
- LOWin mailboxes.list
- LOWin mailboxes.create
- LOWin mailboxes.get
- LOWin mailboxes.delete
- LOWin mailboxes.delete_bulk
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"mcp-server": {
"url": "https://mcp.minutemail.co/mcp"
}
}
}Remote-Endpunkte
https://mcp.minutemail.co/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (40)
🟢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.
Eingabe-Schema
{
"type": "object",
"properties": {
"address": {
"description": "Exact mailbox address to look up (e.g. [email protected]). Optional.",
"type": "string"
}
}
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
}
}
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"mailboxId": {
"description": "Mailbox ID",
"type": "string"
}
},
"required": [
"mailboxId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"mailboxId": {
"description": "Mailbox ID",
"type": "string"
}
},
"required": [
"mailboxId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"ids": {
"description": "Mailbox IDs to delete",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"ids"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"mailboxId": {
"description": "Mailbox ID",
"type": "string"
}
},
"required": [
"mailboxId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"mailId": {
"description": "Mail ID",
"type": "string"
},
"mailboxId": {
"description": "Mailbox ID",
"type": "string"
}
},
"required": [
"mailboxId",
"mailId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"mailId": {
"description": "Mail ID",
"type": "string"
},
"mailboxId": {
"description": "Mailbox ID",
"type": "string"
}
},
"required": [
"mailboxId",
"mailId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"ids": {
"description": "Mail IDs to delete",
"items": {
"type": "string"
},
"type": "array"
},
"mailboxId": {
"description": "Mailbox ID",
"type": "string"
}
},
"required": [
"mailboxId",
"ids"
]
}Ausgabe-Schema
{
"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).
Eingabe-Schema
{
"type": "object",
"properties": {
"mailId": {
"description": "Mail ID",
"type": "string"
},
"mailboxId": {
"description": "Mailbox ID",
"type": "string"
}
},
"required": [
"mailboxId",
"mailId"
]
}Ausgabe-Schema
{
"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).
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {}
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"mailboxId": {
"description": "Archived mailbox ID",
"type": "string"
}
},
"required": [
"mailboxId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"mailboxId": {
"description": "Archived mailbox ID",
"type": "string"
}
},
"required": [
"mailboxId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"expiresIn": {
"description": "New lifetime in minutes, 1-60. Optional.",
"type": "integer"
},
"mailboxId": {
"description": "Archived mailbox ID",
"type": "string"
}
},
"required": [
"mailboxId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {}
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"description": "Domain name, e.g. mail.example.com",
"type": "string"
}
},
"required": [
"name"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"domainId": {
"description": "Domain ID",
"type": "string"
}
},
"required": [
"domainId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"domainId": {
"description": "Domain ID",
"type": "string"
}
},
"required": [
"domainId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {}
}Ausgabe-Schema
{
"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).
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"memberId": {
"description": "Member ID",
"type": "string"
}
},
"required": [
"memberId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"memberId": {
"description": "Member ID",
"type": "string"
}
},
"required": [
"memberId"
]
}Ausgabe-Schema
{
"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).
Eingabe-Schema
{
"type": "object",
"properties": {
"email": {
"description": "Invitee email address",
"type": "string"
}
},
"required": [
"email"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {}
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"invitationId": {
"description": "Invitation ID",
"type": "string"
}
},
"required": [
"invitationId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"clientId": {
"description": "Filter by OAuth client ID. Optional.",
"type": "string"
},
"mailboxAddress": {
"description": "Filter by mailbox address. Optional.",
"type": "string"
}
}
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"identityId": {
"description": "Identity ID",
"type": "string"
}
},
"required": [
"identityId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"identityId": {
"description": "Identity ID",
"type": "string"
}
},
"required": [
"identityId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {}
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"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"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"clientId": {
"description": "Public OAuth client ID",
"type": "string"
}
},
"required": [
"clientId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"clientId": {
"description": "Public OAuth client ID",
"type": "string"
}
},
"required": [
"clientId"
]
}Ausgabe-Schema
{
"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.
Eingabe-Schema
{
"type": "object",
"properties": {
"clientId": {
"description": "Public OAuth client ID",
"type": "string"
}
},
"required": [
"clientId"
]
}Ausgabe-Schema
{
"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"
]
}Community
Nachweis