Toshl MCP
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 venvdoes not installpipinto the virtualenv, so~/.toshl-mcp/bin/pipexists 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 addbefore runningmake 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d307d348e678518115c6ba81f46f33e109804e869fe9b72bb741e646612b6e84
|
|
| MD5 |
305238ac397fb238f2f5792354dcb49b
|
|
| BLAKE2b-256 |
e1fd4dd765b75c419f60e55d7a84b9aa5c319fd200e332b996bf27305b9451e6
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b24ec20a896f3754ea6cb9c3ab8167aba65c5704bdf462f620be24bda551d49
|
|
| MD5 |
a7e67d157732878a4b1c728a381c528e
|
|
| BLAKE2b-256 |
70804e395173c3d15dce997c626a351e731b99846ba4d8bdeedb2ba0a12a3324
|