hledger-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hledger-mcpshow me my account balances"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
hledger MCP Server
A Model Context Protocol (MCP) server that provides tools for interacting with the hledger plain text accounting system.
Features
This MCP server provides the following hledger tools:
Financial Reports
hledger_balance - Generate balance reports with filtering options
hledger_incomestatement - Generate income statements
hledger_balancesheet - Generate balance sheets
hledger_cashflow - Generate cash flow statements
Transaction Management
hledger_register - View transaction listings with filtering
Account Management
hledger_accounts - List all accounts with optional filtering
hledger_stats - Show journal statistics
Installation
Make sure you have hledger installed on your system
Clone this repository
Install dependencies:
bun install
Configuration for VS Code
When using this MCP server with VS Code, you need to ensure it runs hledger commands in the correct directory. Add the server to your VS Code MCP settings (usually in your VS Code settings):
{
"mcpServers": {
"hledger": {
"command": "bun",
"args": ["run", "/absolute/path/to/hledger-mcp/index.ts"],
"env": {
"LEDGER_FILE": "/path/to/your/finances/main.journal"
}
}
}
}File Resolution Priority
The server resolves which hledger file to use in this order:
Explicit
fileparameter - if provided in the tool callLEDGER_FILEenvironment variable - if sethledger's default file discovery - follows hledger's standard rules
Working Directory Handling
The MCP server supports several ways to specify which hledger files to use:
Option 1: Use LEDGER_FILE Environment Variable (Recommended)
Set the LEDGER_FILE environment variable in your MCP server configuration. The server will automatically use the journal file specified in $LEDGER_FILE.
Option 2: Use the workingDirectory Parameter
All tools accept an optional workingDirectory parameter that specifies where hledger commands should be executed.
Option 3: Use Absolute File Paths
You can specify the exact path to your journal file using the file parameter.
Option 4: Use Relative Paths with Working Directory
If your journal files are in a specific directory structure, you can combine the workingDirectory parameter with a relative file path.
Usage
As an MCP Server
Run the server in stdio mode:
bun run index.tsTool Parameters
Common Parameters
file (optional): Path to specific hledger journal file (overrides
$LEDGER_FILEenv var)workingDirectory (optional): Directory to run hledger commands from (defaults to current directory)
period (optional): Time period filter using natural language (e.g., "this month", "2024", "last quarter")
beginDate (optional): Precise begin date for filtering (YYYY-MM-DD, YYYY-MM, or YYYY)
endDate (optional): Precise end date for filtering (YYYY-MM-DD, YYYY-MM, or YYYY)
depth (optional): Account depth limit for reports
Note: Use beginDate/endDate for precise date ranges and monthly averages. If both period and beginDate/endDate are provided, the specific dates take precedence.
Environment Variables
LEDGER_FILE: Default journal file path (used when no explicit file is specified)
hledger_balance
accounts (optional): Account pattern to filter
period (optional): Natural language time period (e.g., "this month", "2024")
beginDate (optional): Begin date for filtering (YYYY-MM-DD or YYYY-MM or YYYY)
endDate (optional): End date for filtering (YYYY-MM-DD or YYYY-MM or YYYY)
monthly (optional): Show monthly breakdown
average (optional): Show averages over the reporting period
flat (optional): Show flat account list instead of tree
hledger_register
query (optional): Query to filter transactions
period (optional): Natural language time period (e.g., "this month", "2024")
beginDate (optional): Begin date for filtering (YYYY-MM-DD or YYYY-MM or YYYY)
endDate (optional): End date for filtering (YYYY-MM-DD or YYYY-MM or YYYY)
monthly (optional): Show monthly breakdown
width (optional): Output width (default: 80)
hledger_accounts
pattern (optional): Pattern to filter accounts
tree (optional): Show accounts in tree format
Requirements
Development
The server is built using:
Bun for JavaScript runtime and process execution
Model Context Protocol SDK for MCP server functionality
Zod for input validation
To run in development mode:
bun run index.tsThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Rigellute/hledger-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server