Skip to main content
Glama

up_list_transactions

Retrieve and filter banking transactions by account, date range, status, category, or tags to analyze spending patterns and 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 tool handler that parses input arguments and delegates to UpApiClient.listTransactions method, formatting the response as JSON text.
    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), }, ], }; }
  • JSON Schema defining the input parameters and their types/descriptions for the up_list_transactions tool.
    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)", }, }, },
  • src/index.ts:263-303 (registration)
    Registration of the up_list_transactions tool in the TOOLS array, including 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)", }, }, }, },
  • Core implementation of listing transactions via Up API, constructing endpoint with filters and calling makeRequest.
    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); }

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