YNAB for AI agents

YNAB is a budgeting tool for tracking spending and planning finances, used by individuals trying to give every dollar a job and reduce debt. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.

Finance and accountingOAuth 2.0MCP + RESTynab.com
AUDIT LOG · YNABPOLICY: acme-support
09:41:07 · claude · u_8f2read
ynab.list_months
List Budget Months✓ allowed · 212ms
09:41:08 · claude · u_8f2read
ynab.get_user
Get Authorized User✓ allowed · 164ms
09:41:09 · claude · u_8f2write
ynab.create_account
Create a new account in a budget✓ approved · approved by user
09:41:12 · claude · u_8f2destructive
ynab.delete_scheduled_transaction
Delete Scheduled Transaction✕ blocked · policy: deny
EVERY YNAB CALL, ON THE RECORD
01 · USE CASES

What agents do in YNAB.

01

List transactions by category

Pull recent transactions in a budget category, a read-only spending check.

02

Get a budget's current month

Read this month's budgeted and spent amounts across categories.

03

Confirm before deleting a scheduled transaction

Check with the user before deleting a scheduled transaction, since future budget projections depend on it.

02 · ACTIONS

27 YNAB actions, graded by risk.

Every YNAB action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.

read

22

Look things up. Allowed by default.

  • ynab.get_user
    Get Authorized User
  • ynab.list_months
    List Budget Months
  • ynab.list_payees
    List payees in a budget
  • ynab.list_budgets
    List Budgets
  • ynab.list_accounts
    List Accounts
  • ynab.get_payee_by_id
    Get Payee by ID
  • ynab.list_categories
    List Categories
  • ynab.get_budget_by_id
    Get Budget By ID
  • ynab.get_budget_month
    Get Budget Month
  • ynab.get_account_by_id
    Get Account by ID
  • ynab.list_transactions
    List Transactions
  • ynab.get_category_by_id
    Get Category by ID
  • ynab.get_budget_settings
    Get Budget Settings
  • ynab.list_payee_locations
    List Payee Locations
  • ynab.get_transaction_by_id
    Get Transaction by ID
  • ynab.get_month_category_by_id
    Get Month Category By ID
+ 6 MORE

write

4

Create and change things. Allow, or ask the user first.

  • ynab.update_payee
    Update Payee
  • ynab.create_account
    Create a new account in a budget
  • ynab.create_scheduled_transaction
    Create Scheduled Transaction
  • ynab.update_scheduled_transaction
    Update Scheduled Transaction

destructive

1

Delete, cancel or archive. Ask first, or deny outright.

  • ynab.delete_scheduled_transaction
    Delete Scheduled Transaction
03 · HOW IT WORKS

YNAB in three steps.

  1. 01Your users connect YNABThey sign in to YNAB on Arc0 Connect, under your brand, and approve the access you ask for.
  2. 02You set the rulesReads run, writes like “create a new account in a budget” can wait for the user, and “delete Scheduled Transaction” can be denied outright.
  3. 03Any agent can actYour agent calls YNAB through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
POLICY.TS
await arc0.policies.set('ynab', {
  read: 'allow',
  write: 'ask',        // create_account
  destructive: 'deny',  // delete_scheduled_transaction
})

# Claude Code: the same connection, one URL
$ claude mcp add --transport http arc0 \
    https://mcp.arc0.ai/u/u_8f2
04 · AUTH AND DATA

How YNAB connects.

Users sign in to YNAB on Arc0 Connect and approve the scopes you request. Build with Arc0’s YNAB OAuth app, or bring your own so the YNAB consent screen names you. Tokens refresh automatically, and you can export them whenever you want.

The same YNAB connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →

AUTH
OAuth 2.0
CREDENTIALS
Per-tenant encrypted vault
MODEL SEES
Results only, never credentials
AUDIT LOG
Every call, on every plan
05 · WORKS WITH

Use YNAB from any agent.

Claude
ChatGPT
Cursor
Codex
VS Code
OpenAI Agents SDK
Claude Agent SDK
Vercel AI SDK
Mastra
LangGraph
07 · FAQ

YNAB and Arc0, answered.

Q01

Can I use YNAB with Claude, ChatGPT or Cursor?

Yes. Connect YNAB to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the YNAB actions you allow.

Q02

How do users connect YNAB?

Users sign in to YNAB on Arc0 Connect and approve the scopes you request. Build with Arc0’s YNAB OAuth app, or bring your own so the YNAB consent screen names you. Tokens refresh automatically, and you can export them whenever you want.

Q03

Which YNAB actions can my agent take?

27 in total: 22 read, 4 write and 1 destructive, such as “create a new account in a budget”. Your policies decide which of them each agent may call.

Q04

Can I stop my agent from deleting things in YNAB?

Yes. Actions like “delete Scheduled Transaction” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.

Q05

Can my own backend call YNAB too?

Yes. The same YNAB connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.

Get started

Plug YNAB into your agent.

Your users connect YNAB once, under your brand. Your agent gets 27 actions behind your policies, with every call on the record.

Free to build · MCP + REST · Audit log on every plan