HUp.NET.Mcp 1.1.0

dotnet tool install --global HUp.NET.Mcp --version 1.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local HUp.NET.Mcp --version 1.1.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=HUp.NET.Mcp&version=1.1.0
                    
nuke :add-package HUp.NET.Mcp --version 1.1.0
                    

<div align="center">

Up.NET

Nuget

<img alt="Up API" src="https://github.com/up-banking/api/raw/master/assets/up-api.jpg" />

.NET API wrapper for Up Bank

Native AOT Compatible | Zero Reflection | Source-Generated JSON Serialization

</div>

Installation

dotnet add package HUp.NET

Quick Start

using Up.NET.Api;

var upApi = new UpApi("your-personal-access-token");

// Verify your token
var ping = await upApi.GetPingAsync();
Console.WriteLine($"Authenticated as: {ping.Data.Meta.Id}");

// List accounts
var accounts = await upApi.GetAccountsAsync();
foreach (var account in accounts.Data.Data)
{
    Console.WriteLine($"{account.Attributes.DisplayName}: {account.Attributes.Balance.Value}");
}

// Get recent transactions
var transactions = await upApi.GetTransactionsAsync(pageSize: 10);
foreach (var tx in transactions.Data.Data)
{
    Console.WriteLine($"{tx.Attributes.Description}: {tx.Attributes.Amount.Value}");
}

API Coverage

Full coverage of the Up API (v1).

Endpoint Method
Accounts GetAccountsAsync(), GetAccountAsync(id)
Transactions GetTransactionsAsync(), GetTransactionAsync(id), GetTransactionsAsync(accountId)
Categories GetCategoriesAsync(), GetCategoryAsync(id), CategorizeTransactionAsync()
Tags GetTagsAsync(), AddTagsToTransactionAsync(), RemoveTagsFromTransactionAsync()
Attachments GetAttachmentsAsync(), GetAttachmentAsync(id)
Webhooks GetWebhooksAsync(), GetWebhookAsync(id), CreateWebhookAsync(), DeleteWebhookAsync(), PingWebhookAsync(), GetWebhookLogsAsync()
Utility GetPingAsync()

Pagination

All paginated responses include a GetNextPageAsync() helper:

var transactions = await upApi.GetTransactionsAsync(pageSize: 50);

while (transactions.Data?.Links?.Next != null)
{
    // Process current page
    foreach (var tx in transactions.Data.Data)
    {
        Console.WriteLine(tx.Attributes.Description);
    }
    
    // Fetch next page
    transactions = await transactions.Data.GetNextPageAsync(upApi);
}

Filtering

// Filter accounts by type
var savers = await upApi.GetAccountsAsync(accountType: AccountType.Saver);

// Filter transactions by date range and status
var settled = await upApi.GetTransactionsAsync(
    status: TransactionStatus.Settled,
    since: DateTime.Now.AddDays(-30),
    until: DateTime.Now
);

// Filter by category or tag
var groceries = await upApi.GetTransactionsAsync(category: "groceries");
var tagged = await upApi.GetTransactionsAsync(tag: "holiday");

Native AOT Support

Up.NET is fully compatible with .NET Native AOT compilation, making it ideal for:

  • iOS/Android apps via .NET MAUI
  • Serverless functions with minimal cold start
  • CLI tools with instant startup
  • Embedded/IoT scenarios

The library uses source-generated JSON serialization with zero runtime reflection, ensuring predictable performance and smaller binary sizes.

dotnet publish -c Release -p:PublishAot=true

Getting Your API Token

  1. Download the Up app and create an account
  2. Get your Personal Access Token at https://api.up.com.au

MCP Server

The included .NET MCP server exposes all 20 Up API v1 endpoint operations as tools over stdio. It also includes a tool that safely follows the opaque pagination links returned by list operations.

Install it as a global .NET tool:

dotnet tool install --global HUp.NET.Mcp
up-mcp auth login

The login command validates the token and stores it in Windows Credential Manager, macOS Keychain, or the Linux Secret Service. The token is not written to a configuration file.

up-mcp auth status
up-mcp auth logout

Use dotnet tool update --global HUp.NET.Mcp to update an existing installation.

Example MCP client configuration for the global tool:

{
  "mcpServers": {
    "up-bank": {
      "command": "up-mcp"
    }
  }
}

On Linux, a desktop Secret Service such as GNOME Keyring, KWallet, or KeePassXC must be available. For CI, containers, and other headless systems, inject UP_ACCESS_TOKEN from the platform's secret manager instead.

Run from source

$env:UP_ACCESS_TOKEN = "your-personal-access-token"
dotnet run --project Up.NET.Mcp

Build once before adding the server to an MCP client:

dotnet build Up.NET.Mcp -c Release

Example MCP client configuration when running from source:

{
  "mcpServers": {
    "up-bank": {
      "command": "dotnet",
      "args": [
        "C:\\Repos\\Hona\\Up.NET\\Up.NET.Mcp\\bin\\Release\\net10.0\\Up.NET.Mcp.dll"
      ],
      "env": {
        "UP_ACCESS_TOKEN": "your-personal-access-token"
      }
    }
  }
}

License

MIT

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.1.0 123 9/18/2026
1.0.0 108 9/18/2026