Skip to main content
Glama

up_list_transactions

Retrieve and filter banking transactions by account, date range, status, category, or tags to track spending and analyze financial activity.

Instructions

List transactions across all accounts or for a specific account. Supports filtering by status, date range, category, and tags. Returns paginated results ordered newest first.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
accountIdNoOptional: Filter to transactions for a specific account
statusNoFilter by transaction status (pending or settled)
sinceNoStart date-time in RFC 3339 format (e.g., 2024-01-01T00:00:00+10:00)
untilNoEnd date-time in RFC 3339 format (e.g., 2024-12-31T23:59:59+10:00)
categoryNoFilter by category ID (e.g., 'restaurants-and-cafes', 'good-life')
tagNoFilter by transaction tag
pageSizeNoNumber of records to return (default: 30, max: 100)

Implementation Reference

  • MCP CallToolRequest handler case for 'up_list_transactions'. Extracts input arguments, calls the UpApiClient's listTransactions method, and returns the API response as formatted JSON text content.
    case "up_list_transactions": { const args = request.params.arguments as { accountId?: string; status?: "HELD" | "SETTLED"; since?: string; until?: string; category?: string; tag?: string; pageSize?: number; }; const result = await client.listTransactions(args); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; }
  • Core helper function in UpApiClient that constructs the API endpoint and query parameters for listing transactions based on provided filters and invokes the generic makeRequest method to fetch data from Up API.
    async listTransactions(filters?: { accountId?: string; status?: "HELD" | "SETTLED"; since?: string; until?: string; category?: string; tag?: string; pageSize?: number; }): Promise<{ data: TransactionResource[] }> { let endpoint = filters?.accountId ? `/accounts/${filters.accountId}/transactions` : "/transactions"; const params = new URLSearchParams(); if (filters?.status) { params.append("filter[status]", filters.status); } if (filters?.since) { params.append("filter[since]", filters.since); } if (filters?.until) { params.append("filter[until]", filters.until); } if (filters?.category) { params.append("filter[category]", filters.category); } if (filters?.tag) { params.append("filter[tag]", filters.tag); } if (filters?.pageSize) { params.append("page[size]", filters.pageSize.toString()); } if (params.toString()) { endpoint += `?${params.toString()}`; } return this.makeRequest(endpoint); }
  • Input schema (JSON Schema) for the up_list_transactions tool, specifying the structure and descriptions of optional filter parameters.
    type: "object", properties: { accountId: { type: "string", description: "Optional: Filter to transactions for a specific account", }, status: { type: "string", enum: ["HELD", "SETTLED"], description: "Filter by transaction status (pending or settled)", }, since: { type: "string", description: "Start date-time in RFC 3339 format (e.g., 2024-01-01T00:00:00+10:00)", }, until: { type: "string", description: "End date-time in RFC 3339 format (e.g., 2024-12-31T23:59:59+10:00)", }, category: { type: "string", description: "Filter by category ID (e.g., 'restaurants-and-cafes', 'good-life')", }, tag: { type: "string", description: "Filter by transaction tag", }, pageSize: { type: "number", description: "Number of records to return (default: 30, max: 100)", }, }, },
  • src/index.ts:263-303 (registration)
    Tool definition object registered in the TOOLS array, used by ListToolsRequest handler to advertise the up_list_transactions tool with its name, description, and input schema.
    name: "up_list_transactions", description: "List transactions across all accounts or for a specific account. Supports filtering by status, date range, category, and tags. Returns paginated results ordered newest first.", inputSchema: { type: "object", properties: { accountId: { type: "string", description: "Optional: Filter to transactions for a specific account", }, status: { type: "string", enum: ["HELD", "SETTLED"], description: "Filter by transaction status (pending or settled)", }, since: { type: "string", description: "Start date-time in RFC 3339 format (e.g., 2024-01-01T00:00:00+10:00)", }, until: { type: "string", description: "End date-time in RFC 3339 format (e.g., 2024-12-31T23:59:59+10:00)", }, category: { type: "string", description: "Filter by category ID (e.g., 'restaurants-and-cafes', 'good-life')", }, tag: { type: "string", description: "Filter by transaction tag", }, pageSize: { type: "number", description: "Number of records to return (default: 30, max: 100)", }, }, }, },

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alex1092/up-bank-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server