# PaidPilot Invoice Tools (remote · api.paidpilot.io)

Invoice tools: reminders, late fees, terms, timesheets and a receivables health report (x402).

- Trust score: 74/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `api.paidpilot.io`: 74/100 (this document), [markdown](https://verifymcp.io/servers/io-paidpilot-api-invoice-tools/api.md), [page](https://verifymcp.io/servers/io-paidpilot-api-invoice-tools/api)

## Channel facts

- Endpoint: `https://api.paidpilot.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.2.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 59/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1793 tokens (~256/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 80/100
  - Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 90/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 71% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the PaidPilot Invoice Tools MCP server?

PaidPilot Invoice Tools is a hosted endpoint at https://api.paidpilot.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http io-paidpilot-api-invoice-tools 'https://api.paidpilot.io/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "io-paidpilot-api-invoice-tools": {
      "url": "https://api.paidpilot.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-paidpilot-api-invoice-tools": {
      "type": "http",
      "url": "https://api.paidpilot.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-paidpilot-api-invoice-tools]
url = "https://api.paidpilot.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-paidpilot-api-invoice-tools": {
      "type": "remote",
      "url": "https://api.paidpilot.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-paidpilot-api-invoice-tools --url 'https://api.paidpilot.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-paidpilot-api-invoice-tools:
    url: "https://api.paidpilot.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-paidpilot-api-invoice-tools": {
      "Transport": "http",
      "Url": "https://api.paidpilot.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-paidpilot-api-invoice-tools -t streamable-http -u 'https://api.paidpilot.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-paidpilot-api-invoice-tools": {
      "type": "http",
      "url": "https://api.paidpilot.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-02 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-26 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-24 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-22 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-20 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (7)

### `pricing` (~45 tokens)

Free. Return the price of every paid tool and of the HTTP invoice PDF route, the payment network (Base) and the receiving address. No input, no network request, no payment.

### `validate_invoice` (~101 tokens)

Free. Validate an invoice JSON (the body for POST /v1/invoice.pdf, or the output of invoice_from_timesheet) and return computed subtotal, discount, tax and total, or a list of field errors. Same checks as the paid PDF route. Offline, no payment.

Input parameters:

- `invoice` (object, required): Invoice object: from, to, number, issue_date, currency, line_items[{description, quantity, unit_price}], optional tax and discount

### `payment_reminder_draft` (~298 tokens)

Draft a payment reminder email for one unpaid invoice in a friendly, firm or final-notice tone. Returns a subject, plain-text body, days overdue and a suggested next step. Use late_fee_calc first if you want the fee amount quoted in the email. Draft only: nothing is sent. Pure calculation: no network request, nothing is sent or stored. Costs $0.01 USDC per call via x402 (payment goes in _meta["x402/payment"]); invalid input returns an error and is not charged.

Input parameters:

- `amount` (number): Amount due
- `as_of` (string): Today's date for the days-overdue count, YYYY-MM-DD (default: today, UTC)
- `client_name` (string): Client's name for the greeting
- `currency` (string): ISO-4217, default USD
- `due_date` (string): YYYY-MM-DD
- `final_deadline_days` (integer): Final notice: days the client has to pay
- `from_name` (string, required): Your name or business, used in the sign-off
- `invoice_number` (string)
- `late_fee_terms` (string): Your agreed late-fee terms, e.g. "1.5% per month"; mentioned in the final notice only
- `payment_link` (string)
- `tone` (string, required): "friendly" (alias "polite"), "firm", or "final"

### `late_fee_calc` (~327 tokens)

Calculate the late fee on one overdue invoice: flat fee, monthly % or annual %, simple or compounding, with optional grace days. Returns days late, the fee, the new total and a line to paste on the invoice. Use payment_terms_check instead to work out when an invoice is due. Not legal advice; it does not look up state caps. Pure calculation: no network request, nothing is sent or stored. Costs $0.01 USDC per call via x402 (payment goes in _meta["x402/payment"]); invalid input returns an error and is not charged.

Input parameters:

- `amount` (number, required): Unpaid invoice amount
- `as_of` (string): Date paid, or the date to calculate to, YYYY-MM-DD (default: today, UTC)
- `compounding` (boolean): false = simple interest (default); true = compounds (monthly: per 30 days; annual: daily)
- `currency` (string): ISO-4217, default USD
- `due_date` (string, required): Invoice due date, YYYY-MM-DD
- `fee_type` (string, required): flat = one fixed fee; monthly_percent e.g. 1.5; annual_percent e.g. 18
- `flat_fee` (number): Flat fee; required for fee_type=flat, optional one-time add-on otherwise
- `grace_days` (integer): Days after the due date before any fee applies
- `rate_percent` (number): Rate for monthly_percent / annual_percent
- `state` (string): US state (2-letter) for the legal note

### `payment_terms_check` (~233 tokens)

Work out the due date and status for payment terms such as Net 30, 2/10 Net 30, Due on receipt, EOM or Net 30 EOM. Returns the early-payment discount amount and deadline, the annualized cost of skipping the discount, and suggested reminder dates. Use late_fee_calc once the invoice is overdue. Pure calculation: no network request, nothing is sent or stored. Costs $0.01 USDC per call via x402 (payment goes in _meta["x402/payment"]); invalid input returns an error and is not charged.

Input parameters:

- `amount` (number): Invoice total (optional; enables the discount math)
- `as_of` (string): Date to compute status for, YYYY-MM-DD (default: today, UTC)
- `currency` (string): ISO-4217, default USD
- `invoice_date` (string, required): Invoice date, YYYY-MM-DD
- `terms` (string, required): Payment terms, e.g. "Net 30", "2/10 Net 30", "Due on receipt", "EOM", "Net 30 EOM"

### `invoice_from_timesheet` (~293 tokens)

Turn time entries (hours x rate, with optional rounding, grouping by task and expenses) into a validated invoice JSON with totals, ready for POST /v1/invoice.pdf. Use validate_invoice (free) instead if you already have an invoice. Pure calculation: no network request, nothing is sent or stored. Costs $0.02 USDC per call via x402 (payment goes in _meta["x402/payment"]); invalid input returns an error and is not charged.

Input parameters:

- `buyer` (object, required)
- `currency` (string)
- `default_rate` (number): Hourly rate for entries without their own rate
- `discount` (number)
- `due_date` (string): YYYY-MM-DD; or give terms instead
- `entries` (array, required)
- `expenses` (array): Reimbursable expenses, one line each
- `group_by` (string): entry = one line per entry; description = merge entries with the same description and rate
- `invoice_number` (string, required)
- `issue_date` (string, required)
- `notes` (string)
- `payment_instructions` (string)
- `rounding` (object)
- `seller` (object, required)
- `tax_rate` (number)
- `terms` (string): e.g. "Net 15"; sets due_date from issue_date (early-pay discounts are not applied to the invoice)

### `receivables_health_report` (~353 tokens)

Grade the health of a business's accounts receivable from its invoice list. Send a CSV export (QuickBooks, Xero, FreshBooks, Wave, Stripe or any CSV with customer and amount columns; columns are auto-detected) or JSON rows, up to 1000 invoices. Returns an A-F grade and 0-100 score with reasons, aging buckets (current, 1-30, 31-60, 61-90, 90+ days), overdue %, weighted days outstanding, DSO, average days to pay, customer concentration, a collection priority list with the next action per overdue invoice (pointing to payment_reminder_draft and late_fee_calc), and recommendations. Use it for a monthly AR review or before chasing payments. Not accounting or legal advice. Pure calculation: no network request, nothing is sent or stored. Costs $1 USDC per call via x402 (payment goes in _meta["x402/payment"]); invalid input returns an error and is not charged.

Input parameters:

- `as_of` (string): Report date, default today (UTC)
- `csv` (string): CSV export (QuickBooks, Xero, FreshBooks, Wave, Stripe or your own). Header row required. Recognized columns: invoice number, customer, amount/total, amount paid, balance/open balance, invoice date,…
- `currency` (string)
- `default_terms` (string): Used when a row has no due date and no terms
- `invoices` (array): Or JSON rows instead of CSV
- `revenue_window_days` (integer): Window for DSO: invoiced amount in the last N days

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-paidpilot-api-invoice-tools/api#diagnostics

## Score history

- 2026-11-05: 74
- 2026-11-04: 74
- 2026-11-03: 73
- 2026-11-02: 73
- 2026-11-01: 72
- 2026-10-31: 72
- 2026-10-30: 71
- 2026-10-29: 71
- 2026-10-28: 70
- 2026-10-27: 70
- 2026-10-26: 70
- 2026-10-25: 69
- 2026-10-24: 69
- 2026-10-23: 68
- 2026-10-22: 68
- 2026-10-21: 67
- 2026-10-20: 67
- 2026-10-19: 66
- 2026-10-18: 66
- 2026-10-17: 65
- 2026-10-16: 65
- 2026-10-15: 64
- 2026-10-14: 64
- 2026-10-13: 64
- 2026-10-12: 56

## Common questions

### What is the PaidPilot Invoice Tools MCP server?

PaidPilot Invoice Tools is an MCP server listed in the public MCP registry as io.paidpilot.api/invoice-tools. Invoice tools: reminders, late fees, terms, timesheets and a receivables health report (x402). This page covers its hosted endpoint (https://api.paidpilot.io/mcp).

### Is the PaidPilot Invoice Tools MCP server safe to use?

PaidPilot Invoice Tools scores 74 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the PaidPilot Invoice Tools MCP server expose?

PaidPilot Invoice Tools exposes 7 tools: pricing, validate_invoice, payment_reminder_draft, late_fee_calc, payment_terms_check, and 2 more. Their descriptions and schemas cost roughly 1,650 tokens of context every time the server is loaded.

### Does the PaidPilot Invoice Tools MCP server require authentication?

No. We connected to PaidPilot Invoice Tools without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the PaidPilot Invoice Tools MCP server still maintained?

PaidPilot Invoice Tools is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the PaidPilot Invoice Tools MCP server?

VerifyMCP ran 12 checks on PaidPilot Invoice Tools, covering TLS certificate, Authorization, HSTS header, DNSSEC and 8 more. One item could not be completed, a gap on our side rather than a finding about PaidPilot Invoice Tools: HTTPS. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://api.paidpilot.io/mcp
- Website: https://api.paidpilot.io/llms.txt
- Changelog RSS feed: https://verifymcp.io/servers/io-paidpilot-api-invoice-tools/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-paidpilot-api-invoice-tools/api/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/io-paidpilot-api-invoice-tools/api.json
- HTML version of this page: https://verifymcp.io/servers/io-paidpilot-api-invoice-tools/api
