Skip to main content
Glama
minhyeoky

Ledger CLI MCP Server

by minhyeoky

ledger_commodities

List and filter financial commodities using regex patterns for efficient data analysis within the Ledger CLI MCP Server, simplifying financial reporting and accounting tasks.

Instructions

List all commodities

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
paramsYes

Implementation Reference

  • main.py:209-215 (handler)
    The main handler function for the 'ledger_commodities' tool. It builds the command list for 'ledger commodities' with an optional query filter and calls the run_ledger helper to execute it.
    def ledger_commodities(params: LedgerCommodities) -> str: cmd = ["commodities"] if params.query: cmd.append(params.query) return run_ledger(cmd)
  • main.py:66-69 (schema)
    Pydantic BaseModel schema defining the input parameters for the ledger_commodities tool, featuring an optional query string.
    class LedgerCommodities(BaseModel): query: Optional[str] = Field( None, description="Filter commodities by regex pattern" )
  • main.py:208-208 (registration)
    FastMCP decorator that registers the ledger_commodities function as a tool with the description 'List all commodities'.
    @mcp.tool(description="List all commodities")
  • Shared helper function that safely executes ledger CLI commands via subprocess, handling errors and input validation. Used by the ledger_commodities handler.
    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