Skip to main content

Toshl MCP

PyPI - Version PyPI - Downloads

Author: Fedele Mantuano

MCP server that connects Claude Desktop to the Toshl Finance API. Transport: stdio. Auth: Toshl Personal Token via HTTP Basic Auth.

Tools

Tool Description
get_accounts List accounts with balances
get_entries List transactions with date range, category, tag filters
get_categories List expense/income categories
get_tags List tags
get_budgets List budgets with current spending status
get_summary Aggregated stats (totals, averages) for a date range

Requirements

  • Python 3.13 or 3.14
  • uv
  • Toshl Personal Token — generate at Toshl → Profile → Apps & tokens

Claude Desktop Configuration

1. Install uv (if not already installed):

curl -LsSf https://astral.sh/uv/install.sh | sh

2. Install the package into a dedicated virtualenv:

With uv:

uv venv ~/.toshl-mcp
uv pip install --python ~/.toshl-mcp/bin/python toshl-mcp

Or with pip:

python3 -m venv ~/.toshl-mcp
~/.toshl-mcp/bin/pip install toshl-mcp

3. Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "toshl": {
      "command": "/Users/<your-username>/.toshl-mcp/bin/toshl-mcp",
      "env": {
        "TOSHL_TOKEN": "<your-toshl-personal-token>"
      }
    }
  }
}

Replace <your-username> with your macOS username (run whoami to confirm).

Updating

Upgrade in place — use the same tool you installed with.

With uv:

uv pip install --python ~/.toshl-mcp/bin/python --upgrade toshl-mcp

Or with pip:

~/.toshl-mcp/bin/pip install --upgrade toshl-mcp

Then restart Claude Desktop. It spawns the server process at startup, so a running instance keeps the old version until it is restarted.

Check the installed version:

~/.toshl-mcp/bin/python -c "import toshl_mcp; print(toshl_mcp.__version__)"

Compare it against the latest release on PyPI.

claude_desktop_config.json does not need to change — the path to the executable stays the same across upgrades.

Note: uv venv does not install pip into the virtualenv, so ~/.toshl-mcp/bin/pip exists only if you used the pip install path.

Environment Variables

Variable Required Default Description
TOSHL_TOKEN Yes Toshl Personal Token
LOG_LEVEL No WARNING Logging level (DEBUG, INFO, WARNING, ERROR)

Development

Setup

1. Install uv (if not already installed):

curl -LsSf https://astral.sh/uv/install.sh | sh

2. Install all dependencies:

uv sync --all-groups

3. Install pre-commit hooks:

make pre-commit

Make commands

make install     # install dependencies
make lint        # check code
make lint-fix    # check and auto-fix
make format      # format code
make test        # run tests
make test-cov    # run tests with coverage report
make pre-commit  # run all pre-commit hooks
make dev         # start MCP inspector (requires .env)
make clean       # remove build artifacts and caches

Note: Stage changes with git add before running make pre-commit — unstaged files are ignored.

Testing with MCP Inspector

The MCP Inspector lets you call tools interactively in a browser without Claude Desktop.

1. Create a .env file in the project root:

TOSHL_TOKEN=your-personal-token-here

2. Start the inspector:

make dev

3. Open http://localhost:6274 in your browser.

4. Connect — click Connect in the top bar.

5. Test tools:

  • Click Tools in the left sidebar
  • Click List Tools to see all six tools
  • Select a tool (e.g. get_accounts), fill in any parameters, click Run

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

toshl_mcp-1.1.0.tar.gz (63.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

toshl_mcp-1.1.0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file toshl_mcp-1.1.0.tar.gz.

File metadata

  • Download URL: toshl_mcp-1.1.0.tar.gz
  • Upload date:
  • Size: 63.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for toshl_mcp-1.1.0.tar.gz
Algorithm Hash digest
SHA256 d307d348e678518115c6ba81f46f33e109804e869fe9b72bb741e646612b6e84
MD5 305238ac397fb238f2f5792354dcb49b
BLAKE2b-256 e1fd4dd765b75c419f60e55d7a84b9aa5c319fd200e332b996bf27305b9451e6

See more details on using hashes here.

File details

Details for the file toshl_mcp-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: toshl_mcp-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for toshl_mcp-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0b24ec20a896f3754ea6cb9c3ab8167aba65c5704bdf462f620be24bda551d49
MD5 a7e67d157732878a4b1c728a381c528e
BLAKE2b-256 70804e395173c3d15dce997c626a351e731b99846ba4d8bdeedb2ba0a12a3324

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page