PocketSmith MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PocketSmith MCP Server show me my recent transactions"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PocketSmith MCP Server
An MCP (Model Context Protocol) server for the PocketSmith personal finance API. Enables Claude Desktop, Claude Code, and other MCP clients to manage accounts, transactions, budgets, categories, and financial analysis.
Features
Accounts & Institutions: Manage bank accounts and financial institutions
Transactions: Create, search, update, and categorize transactions
Budgets & Analysis: View budget summaries and trend analysis
Categories & Rules: Organize transactions with categories and auto-categorization rules
Events & Forecasting: Manage recurring events and clear forecast caches
Attachments: Attach files to transactions
Related MCP server: Lunch Money MCP Server
Installation
From Source
Clone this repository
Install dependencies:
npm installBuild the project:
npm run build
Configuration
Environment Variables
Variable | Required | Default | Description |
| Yes | — | API token from your PocketSmith account |
| No | — | User ID (auto-detected from token if omitted) |
| No |
| Custom API endpoint |
Create a .env file or set these in your shell environment.
To generate an API token: PocketSmith Settings > Security > Manage Developer Keys.
Usage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"pocketsmith": {
"command": "node",
"args": ["/path/to/pocketsmith-mcp/build/index.js"],
"env": {
"POCKETSMITH_API_TOKEN": "your-api-token"
}
}
}
}Usage with Claude Code
claude mcp add pocketsmith -- node /path/to/pocketsmith-mcp/build/index.jsAvailable Tools
Users
get_me, get_user, update_user
Institutions
list_institutions, create_institution, get_institution, update_institution, delete_institution
Accounts
list_accounts, create_account, get_account, update_account, delete_account, reorder_accounts, list_institution_accounts
Transaction Accounts
list_transaction_accounts, get_transaction_account, update_transaction_account
Transactions
list_transactions, list_account_transactions, list_category_transactions, list_transaction_account_transactions, create_transaction, get_transaction, update_transaction, delete_transaction
Categories
list_categories, create_category, get_category, update_category, delete_category
Category Rules
list_category_rules, create_category_rule
Budgets & Analysis
list_budget, get_budget_summary, get_trend_analysis, delete_forecast_cache
Events
list_events, list_scenario_events, create_event, get_event, update_event, delete_event
Attachments
list_attachments, list_transaction_attachments, create_attachment, assign_attachment, unassign_attachment, get_attachment, update_attachment, delete_attachment
Reference
list_currencies, get_currency, list_time_zones, list_labels, list_saved_searches
Development
npm run dev— Watch mode with TypeScript compilationnpm run build— Build the projectnpm start— Start the built server
License
MIT
Available Tools
56 toolsassign_attachmentA
Assign an existing attachment to a transaction
Inputs: attachment_id (required), transaction_id (required).
create_accountC
Create a new account
Inputs: type (required), title (required), currency_code (required), institution_id (required).
create_attachmentB
Create a new attachment (upload)
Inputs: title (required), file_data (required), file_name (required).
create_categoryB
Create a new category
Inputs: title (required), colour, is_bill, roll_up, +3 more.
create_category_ruleA
Create a category rule that auto-categorises transactions by payee match
Inputs: category_id (required), payee_matches (required).
create_eventC
Create a new event in a scenario
Inputs: date (required), amount (required), category_id (required), repeat_type (required), +3 more.
create_institutionC
Create a new institution
Inputs: title (required), currency_code (required).
create_transactionB
Create a new transaction in a transaction account
Inputs: date (required), payee (required), amount (required), transaction_account_id (required), +7 more.
delete_accountC
Delete a PocketSmith account
Inputs: id (required).
delete_attachmentC
Delete a PocketSmith attachment
Inputs: id (required).
delete_categoryB
Delete a PocketSmith category
Inputs: id (required).
delete_eventC
Delete a PocketSmith event
Inputs: id (required), behaviour (required).
delete_forecast_cacheA
Clear the forecast cache to force recalculation
Inputs: no named parameters.
delete_institutionB
Delete a PocketSmith institution. Optionally merge accounts into another institution.
Inputs: id (required), merge_into_id.
delete_transactionC
Delete a PocketSmith transaction
Inputs: id (required).
get_accountA
Get a PocketSmith account by ID, including transaction accounts and scenarios
Inputs: id (required).
get_attachmentA
Get a PocketSmith attachment by ID
Inputs: id (required).
get_budget_summaryB
Get a budget summary for the authenticated user
Inputs: no named parameters.
get_categoryA
Get a PocketSmith category by ID, including children
Inputs: id (required).
get_currencyA
Get details for a specific currency by code
Inputs: id (required).
get_eventB
Get a PocketSmith event by ID
Inputs: id (required).
get_institutionA
Get a PocketSmith institution by ID
Inputs: id (required).
get_meA
Get the currently authenticated PocketSmith user
Inputs: no named parameters.
get_transactionA
Get a single PocketSmith transaction by ID
Inputs: id (required).
get_transaction_accountA
Get a PocketSmith transaction account by ID
Inputs: id (required).
get_trend_analysisB
Get trend analysis for specific categories and scenarios over a date range
Inputs: period (required), end_date (required), interval (required), scenarios (required), +2 more.
get_userB
Get a PocketSmith user by ID
Inputs: id (required).
list_accountsB
List all accounts for the authenticated user
Inputs: no named parameters.
list_account_transactionsC
List transactions for a specific account
Inputs: account_id (required), page, type, search, +6 more.
list_attachmentsC
List attachments for the authenticated user
Inputs: page, per_page, unassigned.
list_budgetB
List budget analysis for all categories for the authenticated user
Inputs: roll_up.
list_categoriesA
List all categories for the authenticated user (returns tree structure)
Inputs: no named parameters.
list_category_rulesA
List all category rules for the authenticated user
Inputs: no named parameters.
list_category_transactionsB
List transactions for a specific category
Inputs: category_id (required), page, type, search, +6 more.
list_currenciesA
List all currencies supported by PocketSmith
Inputs: no named parameters.
list_eventsA
List events for the authenticated user within a date range
Inputs: end_date (required), start_date (required).
list_institution_accountsA
List all accounts for a specific institution
Inputs: institution_id (required).
list_institutionsA
List all institutions for the authenticated user
Inputs: no named parameters.
list_labelsA
List all labels used across the authenticated user's transactions
Inputs: no named parameters.
list_saved_searchesA
List all saved searches for the authenticated user
Inputs: no named parameters.
list_scenario_eventsA
List events for a specific scenario within a date range
Inputs: end_date (required), start_date (required), scenario_id (required).
list_time_zonesA
List all time zones supported by PocketSmith
Inputs: no named parameters.
list_transaction_accountsA
List all transaction accounts for the authenticated user
Inputs: no named parameters.
list_transaction_account_transactionsC
List transactions for a specific transaction account
Inputs: transaction_account_id (required), page, type, search, +6 more.
list_transaction_attachmentsA
List attachments for a specific transaction
Inputs: transaction_id (required).
list_transactionsC
List transactions for the authenticated user with optional filters
Inputs: page, type, search, end_date, +5 more.
reorder_accountsC
Update the display order of accounts
Inputs: account_ids (required).
unassign_attachmentA
Unassign an attachment from a transaction
Inputs: attachment_id (required), transaction_id (required).
update_accountC
Update a PocketSmith account
Inputs: id (required), type, title, is_net_worth, +1 more.
update_attachmentB
Update a PocketSmith attachment title
Inputs: id (required), title.
update_categoryC
Update a PocketSmith category
Inputs: id (required), title, colour, is_bill, +4 more.
update_eventC
Update a PocketSmith event
Inputs: id (required), behaviour (required), note, amount, +2 more.
update_institutionC
Update a PocketSmith institution
Inputs: id (required), title, currency_code.
update_transactionB
Update a PocketSmith transaction
Inputs: id (required), date, memo, note, +7 more.
update_transaction_accountA
Update a PocketSmith transaction account (e.g. change its institution or starting balance)
Inputs: id (required), institution_id, starting_balance, starting_balance_date.
update_userC
Update a PocketSmith user profile
Inputs: id (required), name, email, beta_user, +4 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 56 tools
Tools are grouped by resource, but there are many similar list endpoints (e.g., list_accounts, list_institution_accounts, list_transaction_accounts, list_transaction_account_transactions) that could be confused, especially without reading descriptions carefully. The distinction between 'account' and 'transaction account' is not immediately obvious from names alone.
Most tools follow a consistent verb_noun pattern (list_*, get_*, create_*, update_*, delete_*). Minor deviations exist (get_me, reorder_accounts, assign_attachment, unassign_attachment, delete_forecast_cache) but these are understandable and do not break the overall pattern.
With 56 tools, this far exceeds the 'typical' range of 3-15 and falls into the extreme mismatch category. Even for a comprehensive API, the sheer number creates a heavy, unwieldy surface that is likely to overwhelm agents and users.
The tool set covers CRUD for most major resources (accounts, transactions, categories, institutions, events, attachments) and includes read-only access for budgets, trends, currencies, and time zones. However, there is no delete or update for category rules, no delete for saved searches, and no create/delete for labels, which are minor but notable gaps.
Maintenance
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Query your real net worth, spending, transactions, budgets and portfolio from any MCP client.
Cloudflare Workers MCP server: ai-budget-planner
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Related MCP Servers
- AlicenseAqualityBmaintenanceAn MCP server implementation that provides programmatic access to personal finance data through LunchMoney's API, enabling AI assistants to manage transactions, budgets, categories, and assets.59939 npm113MIT
- AlicenseBqualityDmaintenanceAn MCP server providing full integration with the Lunch Money API to manage financial data including transactions, budgets, assets, and categories. It enables AI assistants to perform CRUD operations on financial records through a standardized HTTP interface.26MIT
- FlicenseBqualityDmaintenanceMCP server that bridges Claude to Monarch Money for personal-finance analysis and lightweight edits.18-
- FlicenseBqualityDmaintenanceA personal MCP server that gives Claude native access to YNAB budget data.46-