# PocketSmith — how to use (mcp.ai)

Connect your PocketSmith account and use 14 tools for accounting straight from your AI agent. Connect with your own API key. PocketSmith is a personal finance platform for tracking accounts and transactions, managing budgets, and forecasting financial outcomes.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_pocketsmith?ms=1787291460000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `pocketsmith_create_category`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/pocketsmith`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/pocketsmith/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/pocketsmith/create/category` — Create one category for a PocketSmith user with optional hierarchy and budgeting behavior.
  - body: { color?: string, title: string, is_bill?: boolean, roll_up?: boolean, user_id: integer, is_transfer?: boolean, refund_behavior?: string, parent_category_id?: integer }
- `POST https://api.mcp.ai/api/pocketsmith/create/transaction` — Create one transaction in a specified transaction account and return the created financial record.
  - body: { date: string, memo?: string, note?: string, payee: string, amount: number, labels?: string[], category_id?: integer, is_transfer?: boolean, needs_review?: boolean, cheque_number?: string, transaction_account_id: integer }
- `POST https://api.mcp.ai/api/pocketsmith/get/budget` — Return a PocketSmith user's current category-level actual and forecast budget analysis. During probing, this read coincided with forecast cache access/update timestamps changing to the call timestamp 
  - body: { roll_up?: boolean, user_id: integer }
- `POST https://api.mcp.ai/api/pocketsmith/get/budget/summary` — Analyze the user's combined income and expense budget over a required date range and period interval.
  - body: { period: string, user_id: integer, end_date: string, interval: integer, start_date: string }
- `POST https://api.mcp.ai/api/pocketsmith/get/current/user` — Return the PocketSmith user authorized by the connected developer key, including the user ID needed by user-scoped tools.
- `POST https://api.mcp.ai/api/pocketsmith/get/transaction` — Return one PocketSmith transaction by ID with its amount, date, payee, category, labels, and review state.
  - body: { transaction_id: integer }
- `POST https://api.mcp.ai/api/pocketsmith/list/accounts` — Return all financial accounts belonging to a PocketSmith user, including account, primary transaction-account, and scenario IDs.
  - body: { user_id: integer }
- `POST https://api.mcp.ai/api/pocketsmith/list/categories` — Return all categories belonging to a PocketSmith user, including hierarchy and budgeting flags.
  - body: { user_id: integer }
- `POST https://api.mcp.ai/api/pocketsmith/list/transaction/accounts` — Return the transaction accounts belonging to a PocketSmith user, including IDs and balances needed to create and query transactions.
  - body: { user_id: integer }
- `POST https://api.mcp.ai/api/pocketsmith/list/transactions` — Return one page of a user's transactions with optional date, state, type, and keyword filters, plus a cursor for the next page.
  - body: { search?: string, user_id: integer, end_date?: string, per_page?: integer, start_date?: string, next_cursor?: string, needs_review?: boolean, uncategorized?: boolean, updated_since?: string, transaction_type?: string }
- `POST https://api.mcp.ai/api/pocketsmith/update/account` — Update selected metadata on one financial account without deleting it or changing transaction-account balances.
  - body: { title?: string, account_id: integer, account_type?: string, is_net_worth?: boolean, currency_code?: string }
- `POST https://api.mcp.ai/api/pocketsmith/update/category` — Update selected hierarchy, display, and budgeting fields on one category without deleting it.
  - body: { color?: string, title?: string, is_bill?: boolean, roll_up?: boolean, category_id: integer, is_transfer?: boolean, refund_behavior?: string, parent_category_id?: integer }
- `POST https://api.mcp.ai/api/pocketsmith/update/transaction` — Update selected fields on one existing transaction without deleting or splitting it.
  - body: { date?: string, memo?: string, note?: string, payee?: string, amount?: number, labels?: string[], category_id?: integer, is_transfer?: boolean, needs_review?: boolean, cheque_number?: string, clear_category?: boolean, transaction_id: integer }
- `POST https://api.mcp.ai/api/pocketsmith/update/transactions` — Update 1-20 distinct transactions sequentially. The operation is not atomic: successful updates are not rolled back, each item has an explicit outcome, and processing stops after an authentication, pe
  - body: { updates: object[] }

## Example prompts
- "What can I do in PocketSmith?"
- "Show me a summary of my PocketSmith account"

## More
- Page: https://mcp.ai/pocketsmith
- Agent spec (llms.txt): https://mcp.ai/pocketsmith/llms.txt
- Postman collection: https://mcp.ai/pocketsmith/postman.json
