Skip to main content
Glama
themusashimaru

ledgerkit-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LEDGER_FILENoPath to the append-only journal file. If not set, the ledger runs in-memory (not persistent).
LEDGER_CURRENCYNoThe currency code for the ledger. Defaults to USD. Can be 'EUR', 'JPY', or a custom code with decimals like 'CODE:2'.USD

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
open_accountA

Open a ledger account. Every account posts in the ledger currency. Accounts may not go negative unless allow_negative is set: overdraft is a policy you opt into, not an accident.

post_entryA

Post a balanced journal entry: total debits must equal total credits across at least two legs. This is the ONLY way to change a balance. Corrections are reversal entries, never edits. If you are retrying a call that may already have gone through, reuse the SAME idempotency_key: you will get the original entry back with replayed=true instead of posting twice.

get_balanceA

Current signed normal balance of one account (asset/expense: debit-positive; liability/equity/income: credit-positive). Pass as_of for the balance at a past moment, recomputed from the journal.

list_accountsA

Every account with its type, overdraft policy, and current balance.

list_entriesA

Journal entries, newest first, paginated. Use before_seq from the previous page to walk further back instead of asking for everything: the journal is append-only and can be long.

trial_balanceA

Every account's balance plus the proof the books balance: total debits and total credits across the whole journal, always equal.

allocateA

Split an amount by integer ratios without losing a minor unit (largest-remainder method). allocate("100.00", [1,1,1]) is ["33.34","33.33","33.33"]: the parts sum to EXACTLY the original. Use this for commission splits, installments, and tax apportionment instead of doing division yourself.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct action or resource: account querying, creation, entry posting, listing, reporting, and allocation. No two tools could be confused for the same operation, even with overlapping concepts like balance and trial balance.

Naming Consistency4/5

The vast majority follow a clear verb_noun pattern (get_, open_, post_, list_). allocate is a single verb, and trial_balance is a noun phrase, but the all-lowercase underscore style and intuitive verbs keep the set predictable.

Tool Count5/5

At 7 tools, the server covers the core ledger lifecycle (accounts, entries, reports) plus a useful allocation utility. It feels appropriately scoped without redundancy or excess.

Completeness4/5

The tool set covers opening/listing accounts, posting/listing entries, querying balances, and producing a trial balance. Minor gaps like fetching a single entry or account details are workable through list endpoints, and the append-only design intentionally omits deletion/editing.

Maintenance

ActivitySlowing
ResponsivenessNo issues