Skip to main content
Glama
simple_invoicing-mcp

simple_invoicing-mcp

by nikhilb2

simple_invoicing-mcp

MCP (Model Context Protocol) server that acts as a bridge to any deployed simple_invoicing FastAPI instance.

This server exposes the simple_invoicing REST API as MCP tools, making it usable directly from Claude Desktop, Cursor, or any other MCP-compatible client.

Prerequisites

  • Node.js ≥ 18

  • A running simple_invoicing FastAPI backend

  • A long-lived bearer token (API token) for the backend

Related MCP server: mcp-buchhaltungsbutler

Setup

git clone https://github.com/nikhilb2/simple_invoicing-mcp.git
cd simple_invoicing-mcp
npm install
npm run build

Configuration

Set these environment variables before running:

export INVOICING_BASE_URL=https://your-invoicing-instance.example.com
export INVOICING_API_TOKEN=your-long-lived-bearer-token-here

Or copy .env.example to .env and fill in the values.

How to get an API token

  1. Open your simple_invoicing backend's Swagger UI (usually at /docs)

  2. Use the /api/auth/login endpoint with your credentials

  3. Copy the access_token from the response

  4. Use this token as INVOICING_API_TOKEN

Running locally (dev)

npm run dev

This starts the MCP server on stdio using tsx.

MCP Client Configuration

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "invoicing": {
      "command": "node",
      "args": ["/absolute/path/to/simple_invoicing-mcp/dist/index.js"],
      "env": {
        "INVOICING_BASE_URL": "https://invoicing.example.com",
        "INVOICING_API_TOKEN": "your-token-here"
      }
    }
  }
}

Cursor

Add to .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "invoicing": {
      "command": "node",
      "args": ["/absolute/path/to/simple_invoicing-mcp/dist/index.js"],
      "env": {
        "INVOICING_BASE_URL": "https://invoicing.example.com",
        "INVOICING_API_TOKEN": "your-token-here"
      }
    }
  }
}

Available Tools

Invoices

Tool

Description

Parameters

list_invoices

List all invoices with optional filtering

invoice_type? ("sales"|"purchase"), skip?, limit?

get_invoice

Get a single invoice by ID

id (number)

create_invoice

Create a new invoice

data (object)

get_invoice_pdf

Get the PDF for an invoice

id (number)

Products

Tool

Description

Parameters

list_products

List all products

skip?, limit?

get_product

Get a single product by ID

id (number)

create_product

Create a new product

data (object)

Ledgers

Tool

Description

Parameters

list_ledgers

List all ledgers

skip?, limit?

get_ledger_statement

Get the statement for a ledger

id, start_date?, end_date?

get_day_book

Get the day book entries

start_date?, end_date?

Inventory

Tool

Description

Parameters

list_inventory

List all inventory items

skip?, limit?

Buyers

Tool

Description

Parameters

list_buyers

List all buyers

skip?, limit?

get_buyer

Get a single buyer by ID

id (number)

Payments

Tool

Description

Parameters

list_payments

List all payments

skip?, limit?

create_payment

Create a new payment

data (object)

Development

npm install      # Install dependencies (set NODE_ENV=development for devDeps)
npm run build    # Compile TypeScript
npm test         # Run tests

License

MIT

Available Tools

15 tools
create_invoiceC

Create a new invoice

Inputs: data (required).

create_paymentD

Create a new payment

Inputs: data (required).

create_productC

Create a new product

Inputs: data (required).

get_buyerB

Get a single buyer by ID

Inputs: id (required).

get_day_bookC

Get the day book entries with optional date range

Inputs: start_date, end_date.

get_invoiceA

Get a single invoice by ID

Inputs: id (required).

get_invoice_pdfA

Get the PDF for an invoice (returns base64 if available)

Inputs: id (required).

get_ledger_statementB

Get the statement for a ledger with optional date range

Inputs: id (required), start_date, end_date.

get_productB

Get a single product by ID

Inputs: id (required).

list_buyersC

List all buyers

Inputs: skip, limit.

list_inventoryC

List all inventory items

Inputs: skip, limit.

list_invoicesC

List all invoices with optional filtering

Inputs: invoice_type, skip, limit.

list_ledgersC

List all ledgers

Inputs: skip, limit.

list_paymentsC

List all payments

Inputs: skip, limit.

list_productsC

List all products

Inputs: skip, limit.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 15 tools

    Disambiguation5/5

    Each tool targets a distinct resource (invoice, payment, product, buyer, ledger, inventory) with unique operations (create, get, list). No two tools have overlapping purposes, making it easy for an agent to select the correct one.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (e.g., create_invoice, get_buyer, list_invoices) using lowercase snake_case. No mixing of conventions or vague verbs like 'process' or 'do_thing'.

    Tool Count5/5

    With 15 tools, the surface is well-scoped for a simple invoicing system covering core entities (invoices, payments, products, buyers, ledgers, inventory). Each tool earns its place without unnecessary bloat or deficiency.

    Completeness3/5

    The tool set provides basic CRUD operations (create and read/list) for most entities but lacks update and delete functionalities (e.g., update_invoice, delete_product). While the core workflow of creating and reading is covered, agents may hit dead ends when needing to modify or remove records.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Model Context Protocol (MCP) server for Spanish Electronic Invoicing. Provides tools to generate, validate, and submit invoices across VERI\*FACTU, Facturae/FACe, SII, TicketBAI, and Crea y Crece B2B.
      20
      42 PyPI
      3
      Apache 2.0
    • F
      license
      Not graded
      quality
      B
      maintenance
      MCP server exposing BuchhaltungsButler API tools for accounting, invoicing, and receipt management with curated, token-efficient endpoints.
      1
      -
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables MCP-compatible clients to retrieve invoice and purchase order data live over stdio through tools for listing invoices, getting invoice details, and fetching purchase orders.
      -
    • A
      license
      B
      quality
      B
      maintenance
      Enables AI assistants to access the Billingo v3 invoicing API through MCP, providing 49 read/write tools for managing invoices, partners, and related data over stdio or HTTP transports.
      22
      63 npm
      3
      MIT