Back to Directory/Developer Tools

io.github.CWhittemore1010/penni-mcp

AI bookkeeper. Connect QuickBooks to Claude Desktop.

Developer ToolsJavaScriptv1.0.1

penni-mcp

Penni — AI bookkeeper for small businesses. Connect your QuickBooks and manage your books through Claude Desktop or Cursor.

Quick Start

npx penni-mcp

On first run, you'll be prompted for your API key. Get yours at app.penni.so/dashboard/mcp.

Claude Desktop Setup

Add to your claude_desktop_config.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)

  • "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:

PENNI_API_KEY=your_key_here npx penni-mcp

Or pass it as a flag:

npx penni-mcp --key your_key_here

The key is saved to ~/.penni/config.json after first run.

Links

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y penni-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-cwhittemore1010-penni-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "penni-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

penni-mcpnpm

Compatible MCP Clients

io.github.CWhittemore1010/penni-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More