get_account_summary
Retrieve an overall Fastmail account summary with key statistics to quickly assess account activity and status.
Instructions
Get overall account summary with statistics
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/index.ts:840-846 (registration)Tool registration for get_account_summary in the ListToolsRequestSchema handler. No input parameters.
name: 'get_account_summary', description: 'Get overall account summary with statistics', inputSchema: { type: 'object', properties: {}, }, }, - src/index.ts:1626-1637 (handler)Handler that calls client.getAccountSummary() and returns the result as JSON.
case 'get_account_summary': { const client = initializeClient(); const summary = await client.getAccountSummary(); return { content: [ { type: 'text', text: JSON.stringify(summary, null, 2), }, ], }; } - src/jmap-client.ts:1359-1385 (handler)Actual implementation of getAccountSummary() on JmapClient. Fetches session, mailboxes, and identities, then computes totals (totalEmails, unreadEmails, totalThreads, unreadThreads) and returns a summary with mailbox details.
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 })) }; }