penni-mcp
# penni-mcp
**Penni** — AI bookkeeper for small businesses. Connect your QuickBooks and manage your books through Claude Desktop or Cursor.
## Quick Start
```bash
npx penni-mcp
```
On first run, you'll be prompted for your API key. Get yours at [app.penni.so/dashboard/mcp](https://app.penni.so/dashboard/mcp).
## Claude Desktop Setup
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"penni": {
"command": "npx",
"args": ["penni-mcp"]
}
}
}
```
Config file location:
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
Then restart Claude Desktop and ask: *"What's my bank balance?"*
## Cursor Setup
Settings → MCP → Add Server:
- **Name:** penni
- **Command:** `npx penni-mcp`
## What You Can Do
### Free (connect QBO and go)
- **"What's my bank balance?"** — real-time balances from QuickBooks
- **"Show me my P&L for this month"** — Profit & Loss report
- **"Who owes me money?"** — open and overdue invoices
### Paid ($149/mo at [penni.so](https://penni.so))
- **"Create a $500 expense for AWS under Software"** — post expenses to QBO
- **"Invoice Acme Corp $2,000 for consulting, due May 1st"** — create and send invoices
- **"Ask Penni: what's my biggest expense category?"** — AI-powered bookkeeping Q&A
## How It Works
Penni connects to your QuickBooks Online account through a secure API. Your data lives in YOUR QuickBooks — not on our servers. If you stop using Penni, your books are exactly where they've always been.
## API Key
You can also set your API key via environment variable:
```bash
PENNI_API_KEY=your_key_here npx penni-mcp
```
Or pass it as a flag:
```bash
npx penni-mcp --key your_key_here
```
The key is saved to `~/.penni/config.json` after first run.
## Links
- **Website:** [penni.so](https://penni.so)
- **Dashboard:** [app.penni.so](https://app.penni.so)
- **Support:** support@penni.so
## License
MIT
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: asking questions, creating expenses, creating invoices, getting bank balances, listing invoices, and getting profit & loss reports. No overlap or ambiguity.
All tools follow a consistent 'penni_verb_noun' pattern using snake_case (e.g., penni_ask, penni_create_expense, penni_get_balance). Perfectly predictable.
With 6 tools covering core bookkeeping operations (read, create, list, report), the count feels well-scoped for a specialized MCP server without being too few or too many.
The tool surface covers essential bookkeeping tasks (query, create expense/invoice, get balances, list invoices, P&L). Missing update/delete operations for expenses and invoices, but the core workflows are covered.