# SolidInvoice MCP server

> Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.

- Listing: https://mcp.tc/i/solidinvoice
- Connect: use the server's own URL `https://solidinvoice.app/_mcp` (OAuth sign-in at the server); clients connect to it directly. The listing link is a page, not an MCP endpoint.
- Type: remote (Streamable HTTP)
- Auth: OAuth sign-in
- Category: [Finance & Payments](https://mcp.tc/c/finance-payments)
- Vendor: SolidInvoice
- Homepage: <https://solidinvoice.co/docs/ai/mcp-server/>
- Repository: <https://github.com/SolidInvoice/SolidInvoice>

## About

Connects to SolidInvoice, an open-source invoicing platform for freelancers and small businesses. An assistant can work with invoices, quotes, clients and payments in a SolidInvoice account, with read and write scopes.

The hosted endpoint uses streamable HTTP at solidinvoice.app/\_mcp and signs users in with OAuth2. The server is built into the SolidInvoice application, which can also be self-hosted.

## What it can do

- Create and send invoices
- Create and send quotes
- Manage clients
- Track payments

## Tools (36)

- `get_client_summary`: Summary of a client: totals invoiced, outstanding balance, total paid, and counts.
- `list_client_tax_identifiers`: List the tax identifiers (e.g.
- `add_contact`: Add a new contact (email + optional name) to an existing client.
- `add_client_tax_identifier`: Add a tax identifier (VAT, GSTIN, TIN, ABN, CNPJ, TRN, Other) to a client.
- `remove_client_tax_identifier`: Remove a tax identifier from a client by identifier ULID.
- `get_dashboard_stats`: Aggregate dashboard stats: outstanding and overdue totals per currency, invoice counts by status, client count.
- `get_total_outstanding`: Total outstanding invoiced amounts per currency, optionally filtered by client.
- `get_total_overdue`: Total overdue invoiced amounts per currency, optionally filtered by client.
- `get_invoice_status_distribution`: Count of invoices grouped by status.
- `get_revenue_by_period`: Revenue from captured payments between two dates, grouped by day, week, or month.
- `list_overdue_invoices`: List overdue invoices, optionally for a specific client.
- `list_invoices_by_status`: List invoices filtered by status.
- `create_invoice`: Create a new invoice for a client, with line items, optional discount, due date, contacts, and invoice-level taxes.
- `apply_invoice_transition`: Apply a workflow transition (accept, cancel, overdue, pay, reopen, archive) to an invoice.
- `apply_recurring_transition`: Apply a workflow transition to a recurring invoice.
- `clone_invoice`: Clone an existing invoice into a new draft with the same line items.
- `send_invoice_reminder`: Email a manual reminder for an invoice to its contacts.
- `list_recurring_invoices`: List recurring invoices, optionally filtered by status and/or client.
- `create_recurring_invoice`: Create a new recurring invoice for a client with a scheduled cadence (daily/weekly/monthly/yearly).
- `list_resource`: List records of a SolidInvoice resource with optional filters and pagination.
- `get_resource`: Fetch a single SolidInvoice record by ID.
- `create_resource`: Create a new record of a safe, flat resource (client, contact, tax).
- `update_resource`: Update scalar fields on an existing record (client, contact, tax).
- `delete_resource`: Delete a record (client, contact, tax) belonging to the active company.
- `list_workflow_transitions`: List transitions currently enabled on a record (invoice, quote, or recurring\_invoice).
- `list_payment_methods`: List configured payment methods for the current company.
- `record_payment`: Record an offline payment against an invoice; the invoice transitions to paid once its balance is settled, and any overpayment becomes client credit.
- `list_quotes_by_status`: List quotes filtered by status.
- `create_quote`: Create a new quote for a client, with line items, optional discount, due date, contacts, and invoice-level taxes.
- `apply_quote_transition`: Apply a workflow transition (send, accept, decline, cancel, reopen, archive) to a quote.
- `clone_quote`: Clone an existing quote into a new draft with the same line items.
- `convert_quote_to_invoice`: Convert a quote into a new invoice, copying client, line items, and totals.
- `get_company_info`: Return id, name, and default currency for the active company.
- `list_tax_rates`: List tax rates configured for the current company.
- `create_tax_rate`: Create a new tax rate (name, rate, type, category, compound flag).
- `update_tax_rate`: Update an existing tax rate.

## Example prompts

- "Create an invoice for Acme Ltd for 10 hours of consulting."
- "Which invoices are overdue?"
- "Add a new client called Northwind with a contact email."
- "Send the latest quote to my client."

## Install

### Claude Code

1. Run this in a terminal, in your project folder:

```bash
claude mcp add --transport http solidinvoice https://solidinvoice.app/_mcp
```

2. Start Claude Code, type `/mcp`, pick **solidinvoice** and choose **Authenticate**. A browser window opens for the SolidInvoice sign-in.

Add `--scope user` to make it available in every project, not just this one.

### Claude Desktop

1. Open **Customize → Connectors**, click **+ Add**, then **Add custom connector**.

2. Name it **SolidInvoice** and paste this URL:

```url
https://solidinvoice.app/_mcp
```

3. Click **Add**, then **Connect**, and sign in when SolidInvoice asks.

Claude Desktop’s JSON config file only starts local servers. Remote servers go through Connectors, and connectors you add on claude.ai show up here too.

### claude.ai

1. Open the connector form on claude.ai. This button fills in the name and URL for you:

[Add to claude.ai](<https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=SolidInvoice&connectorUrl=https%3A%2F%2Fsolidinvoice.app%2F_mcp>) (opens connector settings)

2. Check that the URL reads `https://solidinvoice.app/_mcp` and click **Add**.

3. Click **Connect** and sign in when SolidInvoice asks.

Free plans allow one custom connector. On Team and Enterprise plans an owner adds it under **Organization settings → Connectors**.

### ChatGPT

1. On chatgpt.com, go to **Plugins**, select **+**, then **Add custom MCP server**.

2. Enter a name for the server.

3. Under **Connection**, paste `https://solidinvoice.app/_mcp` as the server URL, then for authentication choose **OAuth**. ChatGPT sends you to SolidInvoice to sign in.

4. Check **I understand and want to continue**, then select **Create as a plugin**.

Whether you can add a custom MCP server depends on your ChatGPT plan and your workspace permissions (in Business workspaces, admins and owners can).

### Cursor

[Add to Cursor](<https://cursor.com/install-mcp?name=solidinvoice&config=eyJ1cmwiOiJodHRwczovL3NvbGlkaW52b2ljZS5hcHAvX21jcCJ9>) (opens Cursor)

Or add it by hand to `~/.cursor/mcp.json` (all projects) or `.cursor/mcp.json` (this project):

`mcp.json`:

```json
{
  "mcpServers": {
    "solidinvoice": {
      "url": "https://solidinvoice.app/_mcp"
    }
  }
}
```

Cursor shows **Needs authentication** next to the server. Click the button beside it to sign in.

### VS Code

[Install in VS Code](<https://vscode.dev/redirect/mcp/install?name=solidinvoice&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fsolidinvoice.app%2F_mcp%22%7D>) (opens VS Code)

Or from a terminal:

```bash
code --add-mcp '{"name":"solidinvoice","type":"http","url":"https://solidinvoice.app/_mcp"}'
```

Or commit it to the repo in `.vscode/mcp.json`:

`.vscode/mcp.json`:

```json
{
  "servers": {
    "solidinvoice": {
      "type": "http",
      "url": "https://solidinvoice.app/_mcp"
    }
  }
}
```

VS Code asks you to sign in the first time the server starts.

### Devin Desktop

1. Add it to `~/.config/devin/mcp_config.json` (macOS and Linux) or `%APPDATA%\devin\mcp_config.json` (Windows):

`mcp_config.json`:

```json
{
  "mcpServers": {
    "solidinvoice": {
      "serverUrl": "https://solidinvoice.app/_mcp"
    }
  }
}
```

2. Refresh the MCP server list in Cascade and sign in when asked.

Devin Desktop is the new name for Windsurf. It reads `serverUrl` (or `url`) for remote servers.

### Codex

```bash
codex mcp add solidinvoice --url https://solidinvoice.app/_mcp
codex mcp login solidinvoice
```

Or edit `~/.codex/config.toml` directly:

`config.toml`:

```toml
[mcp_servers.solidinvoice]
url = "https://solidinvoice.app/_mcp"
```

### Gemini CLI

```bash
gemini mcp add --transport http solidinvoice https://solidinvoice.app/_mcp
```

Then, inside Gemini CLI, run `/mcp auth solidinvoice` to sign in.

This adds it to the current project. Add `-s user` to use it everywhere.

### Any client

Most clients accept this shape. Some name the URL field differently: `serverUrl` in Devin Desktop, `httpUrl` in Gemini CLI’s settings file.

```json
{
  "mcpServers": {
    "solidinvoice": {
      "type": "http",
      "url": "https://solidinvoice.app/_mcp"
    }
  }
}
```

Zed puts servers under `context_servers` in its settings. Cline needs `"type": "streamableHttp"`, or it assumes SSE.

Client only starts local servers? Bridge it with `npx -y mcp-remote https://solidinvoice.app/_mcp`.

## Recent changes

- 2026-11-10 00:05 UTC: Tracking started: 36 tools read. Source: automatic check.

More on the History tab, with descriptions before and after for the newest entries: https://mcp.tc/i/solidinvoice#history (Atom feed: https://mcp.tc/i/solidinvoice/history.xml). It records what mcp.tc's anonymous checks saw, every 3 hours where the tool list can be read without sign-in; it is not a security review.

## Details

- Server version: 3.2.0-dev
- MCP protocol version: 2025-11-25
- Last checked: 2026-11-15 (reachable, asks for credentials)
- Listed: 2026-10-30
- Updated: 2026-11-10

---
Source: https://mcp.tc/i/solidinvoice (mcp.tc is an independent directory, not affiliated with this server's publisher). Corrections: https://mcp.tc/report
