generated: '2026-08-13' method: searched source: https://developers.mailersend.com/api/v1/account/tokens docs: https://developers.mailersend.com/api/v1/account/tokens#possible-scopes notes: >- MailerSend has two separate authorization surfaces and they do not share a scope vocabulary. (1) The REST API uses long-lived API tokens issued per sending domain, each carrying an explicit list from the fixed scope vocabulary below — that list is set at POST /v1/token time and is the permission boundary for every request made with the token. A request outside the token's scopes returns MS40301. (2) The MCP server at mcp.mailersend.com is a real OAuth 2.1 authorization server (RFC 8414 metadata, dynamic client registration, PKCE S256) but publishes no `scopes_supported` in its metadata, so its scope vocabulary is not discoverable anonymously. derive-oauth-scopes.py found no oauth2 securityScheme in the captured OpenAPI, which is correct — the REST API is bearer-token, not OAuth. This artifact is searched, not derived. schemes: - name: APIToken type: apiKey-scoped source: https://developers.mailersend.com/api/v1/account/tokens issued_per: sending domain assignment: 'POST /v1/token with a scopes[] array' enforcement_error: MS40301 - name: MCPOAuth type: oauth2 source: https://mcp.mailersend.com/.well-known/oauth-authorization-server issuer: https://mcp.mailersend.com authorizationUrl: https://mcp.mailersend.com/authorize tokenUrl: https://mcp.mailersend.com/token registrationUrl: https://mcp.mailersend.com/register grant_types: [authorization_code, refresh_token] code_challenge_methods: [S256] scopes_supported: null note: >- The authorization-server metadata document omits scopes_supported; the granted scope set cannot be enumerated without completing an authorization flow. Recorded as unknown rather than guessed. scope_count: 30 scopes: - {scope: email_full, surface: api-token, description: Full access to the email sending endpoints.} - {scope: domains_read, surface: api-token, description: Read sending domains.} - {scope: domains_full, surface: api-token, description: Read and manage sending domains.} - {scope: activity_read, surface: api-token, description: Read email activity.} - {scope: activity_full, surface: api-token, description: Read and manage email activity.} - {scope: analytics_read, surface: api-token, description: Read email analytics.} - {scope: analytics_full, surface: api-token, description: Read and manage email analytics.} - {scope: tokens_full, surface: api-token, description: Read and manage API tokens.} - {scope: webhooks_full, surface: api-token, description: Read and manage webhooks.} - {scope: templates_full, surface: api-token, description: Read and manage email templates.} - {scope: suppressions_read, surface: api-token, description: Read suppression lists.} - {scope: suppressions_full, surface: api-token, description: Read and manage suppression lists.} - {scope: sms_read, surface: api-token, description: Read SMS resources.} - {scope: sms_full, surface: api-token, description: Read and manage SMS resources.} - {scope: email_verification_read, surface: api-token, description: Read email verification lists and results.} - {scope: email_verification_full, surface: api-token, description: Read and manage email verification.} - {scope: inbounds_full, surface: api-token, description: Read and manage inbound routes.} - {scope: recipients_read, surface: api-token, description: Read recipients.} - {scope: recipients_full, surface: api-token, description: Read and manage recipients.} - {scope: sender_identity_read, surface: api-token, description: Read sender identities.} - {scope: sender_identity_full, surface: api-token, description: Read and manage sender identities.} - {scope: users_read, surface: api-token, description: Read account users.} - {scope: users_full, surface: api-token, description: Read and manage account users.} - {scope: smtp_users_read, surface: api-token, description: Read SMTP users.} - {scope: smtp_users_full, surface: api-token, description: Read and manage SMTP users.} - {scope: dmarc_monitoring_read, surface: api-token, description: Read DMARC monitors and reports.} - {scope: dmarc_monitoring_full, surface: api-token, description: Read and manage DMARC monitoring.} - {scope: blocklist_monitoring_read, surface: api-token, description: Read blocklist monitors.} - {scope: blocklist_monitoring_full, surface: api-token, description: Read and manage blocklist monitoring.} - {scope: whatsapp_full, surface: api-token, description: Full access to WhatsApp messaging resources.} pattern: shape: '_read | _full' note: >- A clean two-level read/full split per resource domain. Note the asymmetry: email, tokens, webhooks, templates, inbounds and whatsapp expose only `_full` — there is no read-only scope for sending, for template access, or for token introspection, so a least-privilege agent cannot be given read-only visibility into those domains.