get_incoming_summary
Generate period-based summaries of incoming transactions with daily, weekly, or monthly totals converted to USD for crypto wallet analysis.
Instructions
Get a period-based summary of incoming transactions (daily/weekly/monthly totals with USD conversion).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Aggregation period: daily, weekly, or monthly (default: daily) | |
| chain | No | Filter by chain (solana or ethereum) | |
| network | No | Filter by network | |
| since | No | Summary start epoch (seconds) | |
| until | No | Summary end epoch (seconds) | |
| wallet_id | No | Target wallet ID. Required for multi-wallet sessions; auto-resolved when session has a single wallet. |
Implementation Reference
- The handler function for the 'get_incoming_summary' tool, which constructs query parameters and fetches the summary from the API.
async (args) => { const params = new URLSearchParams(); if (args.period !== undefined) params.set('period', args.period); if (args.chain !== undefined) params.set('chain', args.chain); if (args.network !== undefined) params.set('network', args.network); if (args.since !== undefined) params.set('since', String(args.since)); if (args.until !== undefined) params.set('until', String(args.until)); if (args.wallet_id) params.set('wallet_id', args.wallet_id); const qs = params.toString(); const result = await apiClient.get(`/v1/wallet/incoming/summary${qs ? `?${qs}` : ''}`); return toToolResult(result); }, - Zod schema defining the input arguments for 'get_incoming_summary'.
{ period: z.string().optional().describe('Aggregation period: daily, weekly, or monthly (default: daily)'), chain: z.string().optional().describe('Filter by chain (solana or ethereum)'), network: z.string().optional().describe('Filter by network'), since: z.number().optional().describe('Summary start epoch (seconds)'), until: z.number().optional().describe('Summary end epoch (seconds)'), wallet_id: z.string().optional().describe('Target wallet ID. Required for multi-wallet sessions; auto-resolved when session has a single wallet.'), }, - packages/mcp/src/tools/get-incoming-summary.ts:10-42 (registration)Function that registers the 'get_incoming_summary' tool with the MCP server.
export function registerGetIncomingSummary( server: McpServer, apiClient: ApiClient, walletContext?: WalletContext, ): void { server.tool( 'get_incoming_summary', withWalletPrefix( 'Get a period-based summary of incoming transactions (daily/weekly/monthly totals with USD conversion).', walletContext?.walletName, ), { period: z.string().optional().describe('Aggregation period: daily, weekly, or monthly (default: daily)'), chain: z.string().optional().describe('Filter by chain (solana or ethereum)'), network: z.string().optional().describe('Filter by network'), since: z.number().optional().describe('Summary start epoch (seconds)'), until: z.number().optional().describe('Summary end epoch (seconds)'), wallet_id: z.string().optional().describe('Target wallet ID. Required for multi-wallet sessions; auto-resolved when session has a single wallet.'), }, async (args) => { const params = new URLSearchParams(); if (args.period !== undefined) params.set('period', args.period); if (args.chain !== undefined) params.set('chain', args.chain); if (args.network !== undefined) params.set('network', args.network); if (args.since !== undefined) params.set('since', String(args.since)); if (args.until !== undefined) params.set('until', String(args.until)); if (args.wallet_id) params.set('wallet_id', args.wallet_id); const qs = params.toString(); const result = await apiClient.get(`/v1/wallet/incoming/summary${qs ? `?${qs}` : ''}`); return toToolResult(result); }, ); }