get_account_summary
Retrieve comprehensive account statistics and overview from your Fastmail email, contacts, and calendar data for monitoring and analysis.
Instructions
Get overall account summary with statistics
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/jmap-client.ts:642-668 (handler)Core handler function implementing the get_account_summary tool logic. Fetches JMAP session, mailboxes, and identities; computes aggregate statistics across all mailboxes; returns comprehensive account summary including totals for emails, threads, unread counts, and list of mailboxes.async getAccountSummary(): Promise<any> { const session = await this.getSession(); const mailboxes = await this.getMailboxes(); const identities = await this.getIdentities(); // Calculate totals const totals = mailboxes.reduce((acc, mb) => ({ totalEmails: acc.totalEmails + (mb.totalEmails || 0), unreadEmails: acc.unreadEmails + (mb.unreadEmails || 0), totalThreads: acc.totalThreads + (mb.totalThreads || 0), unreadThreads: acc.unreadThreads + (mb.unreadThreads || 0) }), { totalEmails: 0, unreadEmails: 0, totalThreads: 0, unreadThreads: 0 }); return { accountId: session.accountId, mailboxCount: mailboxes.length, identityCount: identities.length, ...totals, mailboxes: mailboxes.map(mb => ({ id: mb.id, name: mb.name, role: mb.role, totalEmails: mb.totalEmails || 0, unreadEmails: mb.unreadEmails || 0 })) }; }
- src/index.ts:562-568 (registration)MCP tool registration in the list_tools response, including name, description, and empty input schema (no parameters required).name: 'get_account_summary', description: 'Get overall account summary with statistics', inputSchema: { type: 'object', properties: {}, }, },
- src/index.ts:1064-1075 (handler)Dispatch handler in the main CallToolRequestSchema switch statement. Initializes JmapClient and delegates to client.getAccountSummary(), formats result as MCP content response.case 'get_account_summary': { const client = initializeClient(); const summary = await client.getAccountSummary(); return { content: [ { type: 'text', text: JSON.stringify(summary, null, 2), }, ], }; }