Hamara Hisaab
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., "@Hamara HisaabAdd expense Rs1500 for groceries"
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.
Hamara Hisaab — ghar ka sara hisaab, ek jagah
Self-hosted household finance app: shared expense/income ledger, budgets, an investment portfolio (with automatic PSX + Pakistani mutual fund prices), loans (qarz), recurring bills and a zakat helper. API-first: everything the web app can do, any AI agent can do too — via MCP or plain REST.
Stack
One Node process (Hono) serving the REST API, an MCP endpoint and a React PWA, plus Postgres.
Two containers, one docker compose up.
Related MCP server: FinLynq
Quick start
cp .env.example .env # set DB_PASSWORD, BETTER_AUTH_SECRET (openssl rand -base64 32), APP_URL
docker compose up -d --buildOpen the app (default http://localhost:3000, change host port with APP_PORT in .env):
Register — creates your account.
Create your household — you get an invite code.
Your spouse registers and joins with the invite code → shared ledger, entries attributed per person.
More → Agents & API keys — create one API key per agent (one for you, one for your spouse's agent, etc.).
Connecting agents
Every operation is exposed two ways; both authenticate with a per-user API key. The key's owner is recorded as the payer on entries the agent makes.
MCP (Claude, ChatGPT, and any MCP-capable agent)
Streamable-HTTP endpoint at https://your-host/mcp — 26 tools
(add_transaction, get_budget_status, get_portfolio, get_monthly_report, add_loan,
get_zakat_summary, …).
# Claude Code
claude mcp add finance --transport http https://your-host/mcp --header "x-api-key: YOUR_KEY"Authorization: Bearer YOUR_KEY also works for clients that only support bearer auth.
Hermes: since Hermes' mcp.json only takes command/args (no HTTP transport, no headers), point it
at mcp-remote to bridge to the /mcp endpoint:
{
"mcpServers": {
"finance": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://your-host/mcp",
"--header",
"x-api-key: YOUR_KEY"
]
}
}
}Daily WhatsApp summary: schedule your agent (Hermes cron, Claude scheduled task, n8n…) to call
get_daily_brief (or GET /api/v1/reports/brief) every morning — it returns yesterday's spending,
month-to-date, budget-pace warnings, bills due within 7 days, open qarz and a zakat reminder,
plus a ready-to-post text rendering for the family group.
REST (Hermes, OpenClaw, scripts, anything)
Same operations at /api/v1/* with the x-api-key header — e.g. your WhatsApp Hermes agent logs an expense with:
curl -X POST https://your-host/api/v1/transactions \
-H "x-api-key: YOUR_KEY" -H "content-type: application/json" \
-d '{"type":"expense","amount":2500,"category":"Groceries","note":"Imtiaz weekly run"}'Resources: transactions, categories, budgets (+ /budgets/status), accounts,
portfolio, holdings, instruments, prices (+ /prices/refresh), loans (+ /:id/payments),
recurring, reports/monthly, reports/overview?period=week|month|quarter|year&offset=-N
(or ?from=YYYY-MM-DD&to=YYYY-MM-DD for a custom range — totals, previous-period comparison,
trend buckets, category/member breakdowns; also the get_report MCP tool), zakat, household.
Amounts are PKR; dates are YYYY-MM-DD (Asia/Karachi).
Price data (automatic)
A daily job (18:30 & 22:00 PKT) fetches:
PSX stocks — closing price from
dps.psx.com.pk(unofficial endpoint; fails soft).Mutual funds — daily NAVs scraped from the MUFAP NAV table. When adding a fund, use the exact fund name as it appears there (e.g.
Al Meezan Mutual Fund,Mahaana Islamic Cash Fund).Other assets (gold, property…) — manual valuation via Set price; manual prices always win over fetched ones.
Recurring bills materialize into the ledger on their due day (00:15 PKT, with catch-up after downtime).
Going public with Cloudflare Tunnel
To reach the app (and its /mcp endpoint) from anywhere — phones, WhatsApp agents — without opening ports:
Add your domain to Cloudflare (free plan is fine).
Zero Trust dashboard → Networks → Tunnels → Create a tunnel → Cloudflared connector → name it (e.g.
hisaab).On the connector page pick Docker, copy the token from the shown command, and put it in
.envasTUNNEL_TOKEN=....Add a Public hostname:
hisaab.yourdomain.com→ service HTTP →app:3000.Update
.env:APP_URL=https://hisaab.yourdomain.com TRUSTED_ORIGINS=http://localhost:9700 # keep local login working (match your APP_PORT)docker compose --profile public up -d --buildRegister your household members at the public URL, then set
DISABLE_SIGNUPS=truein.envand restart — no strangers can create accounts on your instance.
Agents then connect to https://hisaab.yourdomain.com/mcp (header x-api-key) from anywhere.
Development
docker compose up -d db # Postgres on localhost:5433
npm install
npm run dev # API + SPA-serving on :3000 (PORT=3001 to change)
npm run dev:web # optional: Vite dev server with HMR, proxies /api → :3001
npm run db:generate # regenerate SQL migration after editing src/db/schema.ts
npm run typecheck && npm run build
npm test # integration + unit tests (vitest, real Postgres, no network)
npm run test:e2e # Playwright browser tests against a fresh e2e databaseAuth tables (src/db/auth-schema.ts) are generated:
npx @better-auth/cli generate --config scripts/auth-config.ts --output src/db/auth-schema.ts.
Layout: src/services/ holds all business logic; src/routes.ts (REST) and src/mcp.ts (MCP tools)
are thin wrappers over the same services, so the two surfaces can't drift.
This 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.
Related MCP Servers
- AlicenseAqualityCmaintenanceSelf-hosted, read-only MCP server that connects banks, credit cards, loans, and brokerage accounts via Plaid. 9 tools for balances, transactions, recurring charges, liabilities, and investment holdings.Last updated95MIT
- AlicenseBqualityBmaintenanceopen-source personal finance app with a first-party MCP server. 91 HTTP tools (OAuth 2.1 + DCR) and 87 stdio tools cover transactions, budgets, accounts, portfolio analytics, FX conversion, loans, subscriptions, goals, importers, and rules. Users self-host with Docker + PostgreSQL or use the managed cloudLast updated897AGPL 3.0
- FlicenseBqualityCmaintenanceAn AI-powered MCP server for personal and group expense management, providing CRUD operations, advanced filtering, analytics, Splitwise-style splitting, budget tracking, and report generation.Last updated38
- Flicense-qualityBmaintenanceA lightweight MCP server for managing personal finances locally. It allows users to log transactions, view summaries, manage categories, and interact with their budget via any MCP-compatible LLM client.Last updated
Related MCP Connectors
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
HiveCapital MCP Server — autonomous investment layer for AI agents
Agent Cost Allocator MCP — multi-tenant LLM cost attribution for chargeback billing. Companion to
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/Furqankhanzada/hamara-hisaab'
If you have feedback or need assistance with the MCP directory API, please join our Discord server