MCP server exposing Toshl Finance API to Claude Desktop
Project description
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).
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
Project details
Release history Release notifications | RSS feed
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.0.1.tar.gz.
File metadata
- Download URL: toshl_mcp-1.0.1.tar.gz
- Upload date:
- Size: 18.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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 |
d640e6aeb6a9ca63a30cd856b49cdddd902d77cf21b1e9c9469a39db96ea4311
|
|
| MD5 |
3d7207f63ca79ea1a38b424dd67a4529
|
|
| BLAKE2b-256 |
1c6a74bbeed874492948bc72c849127909ebe913a243f9ff5443896dfb0dcb0d
|
File details
Details for the file toshl_mcp-1.0.1-py3-none-any.whl.
File metadata
- Download URL: toshl_mcp-1.0.1-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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 |
d396b92d441fc48e1f510860c30f2a187555bcf56e0ff86e6569368cd21e6364
|
|
| MD5 |
e4afd5dce0d19ebbcf31b62db17f7e3b
|
|
| BLAKE2b-256 |
ebf727f1d249c2ec4bef7d3693ead4963cab106613b848935b250b571c9e0132
|