Skip to main content
Glama
minhyeoky

Ledger CLI MCP Server

by minhyeoky

ledger_stats

Generate and display detailed statistics from a ledger file, enabling financial analysis through customizable query filters with the Ledger CLI MCP Server.

Instructions

Show statistics about the ledger file

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsYes

Implementation Reference

  • main.py:232-239 (handler)
    The handler function for the 'ledger_stats' tool. It constructs a 'ledger stats' command (optionally filtered by query) and executes it using the shared run_ledger helper.
    @mcp.tool(description="Show statistics about the ledger file") def ledger_stats(params: LedgerStats) -> str: cmd = ["stats"] if params.query: cmd.append(params.query) return run_ledger(cmd)
  • main.py:84-86 (schema)
    Pydantic schema/model defining the input parameters for the ledger_stats tool, including an optional query filter.
    class LedgerStats(BaseModel): query: Optional[str] = Field(None, description="Filter for statistics")
  • Shared helper function that runs ledger CLI commands with input validation, error handling, and uses the LEDGER_FILE environment variable.
    def run_ledger(args: List[str]) -> str: try: if not LEDGER_FILE: return "Ledger file path not set. Please provide it via --ledger-file argument or LEDGER_FILE environment variable." # Validate inputs to prevent command injection for arg in args: if ";" in arg or "&" in arg or "|" in arg: return "Error: Invalid characters in command arguments." result = subprocess.run( ["ledger", "-f", LEDGER_FILE] + args, check=True, text=True, capture_output=True, ) return result.stdout except subprocess.CalledProcessError as e: error_message = f"Ledger command failed: {e.stderr}" if "couldn't find file" in e.stderr: error_message = f"Ledger file not found at {LEDGER_FILE}. Please provide a valid path via --ledger-file argument or LEDGER_FILE environment variable." return error_message

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/minhyeoky/mcp-server-ledger'

If you have feedback or need assistance with the MCP directory API, please join our Discord server