# Tink MCP

> Tink MCP Server lets your agent connect directly to open banking data. Use it to list all connected bank accounts, pull filtered transaction histories by date range, or initiate payment requests—all from simple text commands.

## Overview
- **Category:** finance-accounting
- **Price:** Free
- **Tags:** open-banking, transactions, payments, fintech, bank-integration

## Description

Forget logging into a dozen banking websites just to check your balance or send some cash over. This server lets your agent connect straight up to open banking data through Tink. You'll manage account details and execute payments using plain text commands—no navigating menus, no clicking buttons. It’s all done right within the chat window you're already in.

To get started, you gotta know what accounts are connected. Your agent uses **`list_accounts`** to pull a comprehensive list of every bank account tied to your profile. When it runs this tool, you don't just get names; you get the crucial unique identifiers for each linked account. You need those IDs because they let your agent target specific services later on.

Once you’ve got those identifiers, checking your spending history is easy. The **`list_transactions`** tool lets you pull transaction records from a specific bank account ID over any time window you define. You just tell your AI client which account to check and what date range you're interested in—say, 'Show me everything for Account X between January 1st and March 3rd.' The agent runs the tool, and it pulls back every single transaction that falls within those parameters. This is way better than trying to download a messy CSV file and figuring out which columns mean what.

And when you're ready to move money, **`create_payment_request`** handles the whole thing. You don't need to jump through hoops or find routing numbers; you just tell your agent who you're sending the cash to, how much it should be for, which currency you're using, and what reference text needs to go with it. The tool takes that destination account ID, pairs it with the specific amount, confirms the currency code, and sends the entire request package off. It’s a single command doing three jobs: defining the recipient, setting the value, and triggering the payment process.

Think of the workflow like this: First, you run **`list_accounts`** so your agent knows all your options. Then, if you need to review spending, you use those returned account IDs with **`list_transactions`**, defining a precise start date and end date for the records you want. If everything looks good—or bad—and you're ready to move funds, you run **`create_payment_request`**. You give it all the pieces: the specific recipient’s destination details, the exact amount in dollars or euros, the currency code, and a clear reference message that explains why the payment is happening. The agent bundles all those inputs and sends out the request immediately.

This whole process means you're not stuck toggling between your AI client and your bank portal. Your agent acts as the middleman, using these three tools to pull data or trigger actions directly based on natural language commands. You talk to your client like you’d talk to a coworker—you tell it what you want done—and it handles the complex API calls behind the scenes. It's about making financial operations feel less like technical work and more like just talking things through.

## Tools

### list_accounts
Retrieves all bank accounts linked to your user profile.

### create_payment_request
Sends a payment request to a specific destination account with defined amounts, currencies, and references.

### list_transactions
Fetches a list of transactions for an account ID over a specified time range.

## Prompt Examples

**Prompt:** 
```
List all my bank accounts connected via Tink.
```

**Response:** 
```
I've found 2 connected accounts: 'Main Checking' (ID: acc_8821) and 'Savings' (ID: acc_9932). Would you like to see the transactions for either of them?
```

**Prompt:** 
```
Show me transactions for account acc_8821 from October 2023.
```

**Response:** 
```
Fetching transactions for October... I found 12 entries. The largest was a transfer of 1,200 EUR for 'Rent'. Would you like a full breakdown?
```

**Prompt:** 
```
Create a payment request of 50 EUR to Alice Smith (IBAN: DE123456789) for 'Dinner'.
```

**Response:** 
```
I've initiated the payment request for 50 EUR to Alice Smith. You can track this request using the reference ID: pay_ref_5521.
```

## Capabilities

### List Bank Accounts
Gets a list of all bank accounts linked to your profile and retrieves their necessary identifiers.

### Check Transactions
Retrieves financial transaction records for a specific account ID within a specified date window.

### Send Payment Requests
Initiates a payment request, defining the recipient's destination and providing the amount, currency, and reference text.

## Use Cases

### The Q3 Expense Audit
A financial analyst needs to audit all spending from a specific account last quarter. They ask their agent: 'Show me transactions for acc_1234 from July 1 to Sept 30.' The agent runs `list_transactions`, providing the full, filtered list instantly for report building.

### The Payroll Check
An operations manager needs to confirm available funds before running payroll. They ask their agent to run `list_accounts`. Seeing the balance confirms they have enough cash and can then use `create_payment_request` immediately.

### The Developer Test Flow
A developer is building a payment microservice. Instead of setting up mock endpoints, they ask their agent to run `list_accounts` and then simulate a transfer using `create_payment_request`, testing the full flow in real-time.

### The New Account Check
A business owner just opened a new corporate account. They ask their agent to run `list_accounts`. The server immediately lists the new ID, allowing them to use it for future payments or reporting right away.

## Benefits

- Check accounts instantly. Instead of logging into multiple bank portals, just ask your agent to run `list_accounts` and see every linked account ID immediately.
- Build reports faster with `list_transactions`. Pull transaction records for specific accounts and date ranges without having to manually download and clean CSV files.
- Initiate payments via text. Use `create_payment_request` to send money, defining the recipient, amount, and reference in a single chat turn.
- Single source of truth. You manage all your financial data—accounts, transactions, payments—through one reliable connection point.
- Cross-platform access. Whether you're using Claude or Cursor, your agent handles the complex bank API calls, keeping your workflow simple.

## How It Works

The bottom line is: you talk to your agent, and the agent talks to your bank via Tink.

1. Subscribe to this server and provide your Tink Access Token.
2. Your AI client calls the required tool (e.g., `list_accounts`) using your token.
3. The server executes the API call, returns structured data, and hands it back to your chat interface.

## Frequently Asked Questions

**How do I use Tink MCP Server to see all my bank accounts?**
You run the `list_accounts` tool. This returns a list of every account connected to your profile, giving you the necessary IDs for other tools.

**Can I get transactions from multiple banks using Tink MCP Server?**
Yes, you first use `list_accounts` to identify all relevant accounts. Then, you run `list_transactions` separately for each account ID and combine the results in your analysis.

**What data does create_payment_request require?**
It requires the destination account details (IBAN/ID), the exact amount, the currency code, and a clear reference for tracking purposes.

**Does Tink MCP Server handle transaction filtering by date?**
Yes. When using `list_transactions`, you specify both an account ID and a start/end date range to narrow down the records.

**How do I handle an expired token when using the Tink MCP Server for `list_accounts`?**
The server requires a valid, current Tink Access Token. If your token expires, you must generate a new one through Tink and update it in Vinkius. This keeps the connection active and prevents account listing failures.

**What does `create_payment_request` do if the recipient IBAN is invalid?**
It returns an explicit error code detailing the validation failure. Your AI client receives this specific feedback, letting you know immediately that the payment request needs a corrected destination account number.

**Can `list_transactions` filter by transaction type (e.g., debit or credit)?**
Yes, in addition to date ranges and accounts, you can specify filters for activity types. This lets your agent pull only 'debit' entries, for instance, making deep analysis faster.

**Are there any rate limits when calling `list_transactions` repeatedly?**
While Vinkius manages the connection, Tink enforces API limits on high-volume requests. Running too many queries in quick succession will result in a 429 error, and you'll need to slow your AI client down.

**How can I see all my connected bank accounts at once?**
You can use the `list_accounts` tool. It will retrieve a complete list of all bank accounts currently linked to your Tink profile.

**Is it possible to filter my spending by specific dates?**
Yes! The `list_transactions` tool allows you to provide an optional `startDate` and `endDate` (ISO 8601) to narrow down your transaction history.

**Can I initiate a bank transfer using this server?**
Yes, you can use the `create_payment_request` tool. You will need to provide the destination account number, type, amount, and recipient details to start the process.