Skip to main content
Glama
ajanderson1

pocketsmith-mcp

by ajanderson1

Features

  • 43 MCP Tools - Complete coverage of PocketSmith API v2 endpoints

  • Production Ready - Rate limiting, retry with exponential backoff, circuit breaker

  • Universal Compatibility - Works with Claude Desktop, Cursor, and any MCP-compatible client

  • Type Safe - Pydantic models for all API entities


Related MCP server: Pocketsmith MCP Server

Quick Start

Installation

# Run directly with uvx (recommended)
uvx pocketsmith-mcp

# Or install with pip
pip install pocketsmith-mcp

Getting Your API Key

  1. Navigate to Security & Integrations - Click your profile icon, then select "Security & integrations"

  1. Create a Developer Key - Go to "Manage developer keys" and click "Create Key"

Configuration

  1. Set your environment variable:

export POCKETSMITH_API_KEY=your_api_key_here
  1. Run the server:

uvx pocketsmith-mcp

Claude Desktop Integration

Add to your Claude Desktop config:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "pocketsmith": {
      "command": "uvx",
      "args": ["pocketsmith-mcp"],
      "env": {
        "POCKETSMITH_API_KEY": "your_api_key_here"
      }
    }
  }
}

Available Tools

Tool

Description

get_current_user

Get authenticated user info

get_user

Get user by ID

update_user

Update user settings

Tool

Description

list_accounts

List all accounts

get_account

Get account details

update_account

Update account

delete_account

Delete account

Tool

Description

list_transaction_accounts

List transaction accounts

get_transaction_account

Get transaction account details

update_transaction_account

Update transaction account

Tool

Description

list_transactions

List transactions with filters

get_transaction

Get transaction details

create_transaction

Create new transaction

update_transaction

Update transaction

delete_transaction

Delete transaction

Tool

Description

list_categories

List all categories

get_category

Get category details

create_category

Create new category

update_category

Update category

delete_category

Delete category

Tool

Description

get_budget

Get budget data

get_budget_summary

Get budget summary

get_trend_analysis

Get spending trends

clear_forecast_cache

Clear forecast cache

Tool

Description

list_institutions

List financial institutions

get_institution

Get institution details

create_institution

Create institution

update_institution

Update institution

delete_institution

Delete institution

Tool

Description

list_events

List budget events

get_event

Get event details

create_event

Create budget event

update_event

Update event

delete_event

Delete event

Tool

Description

list_attachments

List attachments

get_attachment

Get attachment details

create_attachment

Upload attachment

update_attachment

Update attachment

delete_attachment

Delete attachment

Tool

Description

list_labels

List all labels

list_saved_searches

List saved searches

Tool

Description

list_currencies

List supported currencies

list_time_zones

List supported time zones


Testing

Running Tests

# Run all tests
uv run pytest

# Run with coverage report
uv run pytest --cov=src/pocketsmith_mcp --cov-report=term-missing

# Run specific test file
uv run pytest tests/unit/tools/test_transactions.py

# Run tests by marker
uv run pytest -m unit          # Unit tests only
uv run pytest -m integration   # Integration tests only
uv run pytest -m e2e           # End-to-end tests (requires API key)

Test Structure

tests/
├── unit/                 # Fast, isolated tests with mocked API
│   ├── test_api_client.py
│   ├── test_errors.py
│   ├── test_rate_limiter.py
│   ├── test_circuit_breaker.py
│   ├── test_user_context.py
│   └── tools/            # Tool-specific unit tests
├── integration/          # Tests with mocked HTTP responses
│   ├── test_server.py
│   └── test_tools.py
└── conftest.py           # Shared fixtures

Coverage

The project maintains a 70% coverage threshold. Coverage reports are generated automatically:

uv run pytest --cov=src/pocketsmith_mcp --cov-report=html
open htmlcov/index.html

Development

Setup

# Clone the repository
git clone https://github.com/ajanderson1/mcp_pocketsmith.git
cd pocketsmith-mcp

# Install dependencies (including dev)
uv sync --dev

# Copy environment template
cp .env.example .env
# Edit .env and add your API key

Architecture

pocketsmith-mcp/
├── src/pocketsmith_mcp/
│   ├── __main__.py       # Entry point
│   ├── server.py         # FastMCP server setup
│   ├── config.py         # Environment configuration
│   ├── client/           # API client with resilience patterns
│   │   ├── api_client.py     # HTTP client wrapper
│   │   ├── rate_limiter.py   # Token bucket algorithm
│   │   ├── circuit_breaker.py # Fault tolerance
│   │   └── retry.py          # Exponential backoff
│   ├── models/           # Pydantic data models
│   └── tools/            # MCP tool implementations
└── tests/                # Unit and integration tests

API Resilience

The client includes production-grade resilience:

  • Rate Limiting - Token bucket algorithm (60 req/min default)

  • Retry Logic - Exponential backoff with jitter for transient failures

  • Circuit Breaker - Prevents cascade failures during outages


Environment Variables

Variable

Required

Default

Description

POCKETSMITH_API_KEY

Yes

-

Your PocketSmith API key

DEBUG

No

false

Enable debug logging

API_TIMEOUT

No

30

Request timeout (seconds)

MAX_RETRIES

No

3

Retry attempts for failed requests

RATE_LIMIT_PER_MINUTE

No

60

API rate limit


License

This project is licensed under the MIT License - see the LICENSE file for details.


A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ajanderson1/mcp_pocketsmith'

If you have feedback or need assistance with the MCP directory API, please join our Discord server