list_mailboxes
Retrieve all email mailboxes for a domain to review or manage user accounts.
Instructions
List email mailboxes for a domain.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No |
Implementation Reference
- migadu_mcp/tools/mailbox_tools.py:21-25 (handler)MCP tool handler that resolves the domain and delegates to MailboxService.list_mailboxes(). Decorated with @migadu_tool (read_only=True, summarize_response=True).
async def list_mailboxes(ctx: Context, domain: str | None = None) -> dict[str, Any]: """List email mailboxes for a domain.""" resolved = resolve_domain(domain) await ctx.info(f"📋 Listing mailboxes for {resolved}") return await get_service_factory().mailbox_service().list_mailboxes(resolved) - Service layer that sends GET /domains/{domain}/mailboxes via MigaduClient.
async def list_mailboxes(self, domain: str) -> dict[str, Any]: return await self.client.get(f"/domains/{domain}/mailboxes") - migadu_mcp/tools/mailbox_tools.py:19-25 (registration)Tool registered inside register_mailbox_tools() via the @migadu_tool decorator, which calls mcp.tool() as a side effect (decorators.py line 89).
def register_mailbox_tools(mcp: FastMCP) -> None: @migadu_tool(mcp, read_only=True, summarize_response=True) async def list_mailboxes(ctx: Context, domain: str | None = None) -> dict[str, Any]: """List email mailboxes for a domain.""" resolved = resolve_domain(domain) await ctx.info(f"📋 Listing mailboxes for {resolved}") return await get_service_factory().mailbox_service().list_mailboxes(resolved) - migadu_mcp/main.py:53-53 (registration)Top-level registration call in initialize_server() that triggers the @migadu_tool decorator and thus mcp.tool() registration.
register_mailbox_tools(mcp) - Helper that falls back to the MIGADU_DOMAIN env var when the domain parameter is None.
def resolve_domain(domain: Optional[str]) -> str: """Resolve an optional domain arg against `MIGADU_DOMAIN` env var.""" if domain: return domain from migadu_mcp.config import get_config default = get_config().default_domain if not default: raise ValueError("No domain provided and MIGADU_DOMAIN is not set") return default