Peil MCP Server

Log hours, draft invoices and check where you stand — finance for Dutch freelancers.

Local serverstdioPython

What is the Peil MCP server?

If you already use Peil, the peil mcp server is the piece that lets your assistant work with it directly. Log hours, draft invoices and check where you stand — finance for Dutch freelancers.

What the server does

Connect Peil to Claude (or any MCP client): log hours, draft invoices from unbilled hours, and check where you stand — from a prompt.

Available tools

The toolset is worth reading before you wire it up, because it tells you what the integration is really for:

  • list_clients — List your clients
  • get_client_details — One client's details, incl. whether a default rate is set
  • list_unbilled — Unbilled hours per client for a period
  • list_invoices — List invoices, filterable by status / client
  • orientation_snapshot — Outstanding / overdue / drafts / YTD position
  • get_reminder_copy — Your custom reminder email copy + schedule
  • log_hours — Add a timesheet entry (client default rate unless given)
  • edit_hours — Edit an entry (only the fields you pass change)
  • delete_hours — Delete an entry (blocked if on a sent/paid invoice)
  • draft_invoice — Draft an invoice from unbilled hours (summary / by_project / per_day)
  • set_invoice_status — Change status (e.g. mark paid) — does not email anyone
  • update_invoice — Edit safe fields (due date, payment date, notes)

Installation

peil-mcp on PyPI is all you need. Most clients run it directly, so configuration is a few lines and a restart.

Credentials and setup notes

Configuration is passed through the environment: PEIL_API_KEY, PEIL_API_URL. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

Where it fits

Plenty of team communication servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Peil's toolset — list_clients, get_client_details, list_unbilled and 11 more — is a fair guide to whether it matches your workflow. It is maintained by app.peil; worth a glance at recent repository activity before you build anything load-bearing on it.

We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.

Worth knowing first

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Peil.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Available tools

ToolWhat it does
list_clientsList your clients
get_client_detailsOne client's details, incl. whether a default rate is set
list_unbilledUnbilled hours per client for a period
list_invoicesList invoices, filterable by status / client
orientation_snapshotOutstanding / overdue / drafts / YTD position
get_reminder_copyYour custom reminder email copy + schedule
log_hoursAdd a timesheet entry (client default rate unless given)
edit_hoursEdit an entry (only the fields you pass change)
delete_hoursDelete an entry (blocked if on a sent/paid invoice)
draft_invoiceDraft an invoice from unbilled hours (summary / by_project / per_day)
set_invoice_statusChange status (e.g. mark paid) — does **not** email anyone
update_invoiceEdit safe fields (due date, payment date, notes)
set_reminder_copyWrite custom reminder email copy for one tone/language
send_invoiceEmail an invoice to the client now

How to install the Peil MCP server

{
  "mcpServers": {
    "peil": {
      "command": "uvx",
      "args": ["peil-mcp"],
      "env": {
        "PEIL_API_KEY": "your-value",
        "PEIL_API_URL": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

VariableDescriptionRequired
PEIL_API_KEYCredential the server authenticates with.Yes
PEIL_API_URLEndpoint or connection string the server talks to.Yes

Example prompts to try

  • Use Peil to list clients.
  • Use Peil to get client details.
  • Use Peil to list unbilled.

Frequently asked questions

It connects Peil to MCP-compatible AI assistants such as Claude and Cursor, exposing 14 tools (list_clients, get_client_details, list_unbilled, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Peil directly.