Skip to main content
Glama
joeswann

PocketSmith MCP Server

by joeswann
README.md
# 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

## Installation

### From Source

1. Clone this repository
2. Install dependencies:
   ```bash
   npm install
   ```
3. Build the project:
   ```bash
   npm run build
   ```

## Configuration

### Environment Variables

| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `POCKETSMITH_API_TOKEN` | Yes | — | API token from your PocketSmith account |
| `POCKETSMITH_USER_ID` | No | — | User ID (auto-detected from token if omitted) |
| `POCKETSMITH_API_BASE_URL` | No | `https://api.pocketsmith.com/v2` | 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`:

```json
{
  "mcpServers": {
    "pocketsmith": {
      "command": "node",
      "args": ["/path/to/pocketsmith-mcp/build/index.js"],
      "env": {
        "POCKETSMITH_API_TOKEN": "your-api-token"
      }
    }
  }
}
```

## Usage with Claude Code

```bash
claude mcp add pocketsmith -- node /path/to/pocketsmith-mcp/build/index.js
```

## Available 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 compilation
- `npm run build` — Build the project
- `npm start` — Start the built server

## License

MIT

TDQS

C2.9/5.0

Scored across 56 tools

Disambiguation3/5

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.

Naming Consistency4/5

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.

Tool Count1/5

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.

Completeness4/5

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

ActivityStale
ResponsivenessNo issues