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

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

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