---
slug: "ledger"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/mprokopov/ledger-mcp-server@main/README.md"
repo: "https://github.com/mprokopov/ledger-mcp-server"
source_file: "README.md"
branch: "main"
---
# ledger-service MCP server

MCP Server for accessing and managing ledger files through Claude.

## Components

### Tools

The server implements three tools for ledger management:

- **list-accounts**: Lists all accounts in the ledger
  - Takes "year" as a required argument
  - Returns formatted list of all available accounts

- **account-balance**: Gets the balance for a specific account
  - Takes "year" and "account" as required arguments
  - Returns the current balance for the specified account

- **account-register**: Shows the transaction register for an account
  - Takes "year" and "account" as required arguments
  - Returns detailed transaction history for the specified account

## Installation

### Prerequisites

- Python 3.13 or higher
- `uv` package manager
- Node.js and npm (for debugging)

### Install from PyPI

```bash
uv pip install ledger-service
```

## Debugging

Using the inspector to debug the server:

```bash
npx @modelcontextprotocol/inspector \
  uv \
  --directory /path/to/ledger-service \
  run \
  ledger-service
```

![MCP Inspector debugging interface](https://github.com/mprokopov/ledger-mcp-server/raw/HEAD/mcp-server-debug.png)

### Configure Claude Desktop

Add the server configuration to Claude Desktop's config file:

On MacOS: `~/Library/Application\ Support/Claude/claude_desktop_config.json`
On Windows: `%APPDATA%/Claude/claude_desktop_config.json`

<details>
  <summary>Development Configuration</summary>
  
  ```json
  "mcpServers": {
    "ledger-service": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/ledger-service",
        "run",
        "ledger-service"
      ]
    }
  }
  ```
</details>

<details>
  <summary>Production Configuration</summary>
  
  ```json
  "mcpServers": {
    "ledger-service": {
      "command": "uvx",
      "args": [
        "ledger-service"
      ]
    }
  }
  ```
</details>

## Development

### Local Setup

1. Clone the repository
2. Create and activate a virtual environment
3. Install dependencies:


The base path can be configured by modifying the `LEDGER_BASE_PATH` constant in `server.py`.

## License

GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007