Double-entry accounting MCP server for AI agents — create accounts, post balanced journal entries, pull trial-balance / general-ledger reports. Paid per call via x402 micropayments (USDC on Base).
Project description
Ledger MCP
Double-entry accounting for AI agents. An MCP server over the Ledger API — create a chart of accounts, post balanced journal entries, and pull trial-balance / general-ledger reports, all from inside your agent.
Ledger is agent-native: it's paid per call via x402 micropayments (USDC on the Base network), so an agent can use real double-entry bookkeeping without an account, API key, or subscription — it just pays a fraction of a cent per call from its own wallet.
Install
uvx ledger-mcp
Or add it to your MCP client (claude-code-config.json / Claude Desktop):
{
"mcpServers": {
"ledger": {
"command": "uvx",
"args": ["ledger-mcp"],
"env": {
"LEDGER_X402_PRIVATE_KEY": "0xYOUR_FUNDED_BASE_WALLET_KEY"
}
}
}
}
Payment
Most tools are paid per call (reads ~$0.002, writes ~$0.01, in USDC on Base):
- Set
LEDGER_X402_PRIVATE_KEYto the private key of a funded Base wallet (holding USDC). The server signs the x402 (EIP-3009) payment automatically on each call — gasless, you only spend the USDC the call costs. - Without a key,
healthanddiscoverstill work, and paid tools return the exact price plus how to enable payment (nothing is spent). - Use a dedicated low-balance wallet for your agent — never your main key. The balance is the blast radius.
Run discover to see every endpoint and its current price before spending.
Tools
| Tool | Cost | What it does |
|---|---|---|
health |
free | API status + version |
discover |
free | List paid endpoints + x402 prices |
create_account |
write | Add an account (asset/liability/equity/revenue/expense) |
list_accounts |
read | Chart of accounts + balances |
get_account |
read | One account's balance (optionally as-of a date) |
post_transaction |
write | Record a balanced journal entry |
list_transactions |
read | Journal, newest first |
get_transaction |
read | One transaction with all entries |
reverse_transaction |
write | Post a reversing entry |
trial_balance |
read | All balances + debit/credit totals |
general_ledger |
read | Per-account detail over a date range |
The one rule: entries sum to zero
Every transaction is two or more entries whose signed amounts sum to exactly 0. Amounts are integers in minor units (cents): a debit is positive, a credit is negative.
Record a $500 cash sale (debit Cash, credit Sales Revenue):
{
"date": "2026-06-19",
"description": "Cash sale",
"entries": [
{"account_id": 1, "amount": 50000, "memo": "cash in"},
{"account_id": 2, "amount": -50000, "memo": "sales revenue"}
]
}
The server rejects an unbalanced transaction before spending.
Links
- Docs & API: https://ledger.novadyne.ai
- API base:
https://ledger-api.novadyne.ai - x402 discovery:
https://ledger-api.novadyne.ai/.well-known/x402
MIT licensed. By Novadyne. The API backend is operated by Novadyne; this package is the open client that talks to it.
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 ledger_mcp-0.1.0.tar.gz.
File metadata
- Download URL: ledger_mcp-0.1.0.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27ba40460e29e0f2ca0f7534856e477112ae4068ca793fc87d7b7d29a1da73b8
|
|
| MD5 |
3dbddd3b6eb2a2305e7a9a3d367d9615
|
|
| BLAKE2b-256 |
fe1afb4ea642afc935d159b77ca6f2ae375efd90db73d6ae9b2dc943f99207e8
|
File details
Details for the file ledger_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ledger_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
985b91e227f5ca45ec1556b08573675117f10305b528a39652fbc6842de5c13f
|
|
| MD5 |
395f5a2ce5bd9f7098f7ebc4ec6bb981
|
|
| BLAKE2b-256 |
f9bad73306fb31e6d598ca3b84fd6d6c3bc1e4f21c47567772c96d9e5021b558
|