Peil MCP server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
mcp-name: app.peil/peil-mcp
Connect Peil to Claude (or any MCP client): log hours,
draft invoices from unbilled hours, add expenses from a receipt, and check
where you stand — from a prompt.
- **Website:** https://peil.app
- **Docs:** https://peil.app/en/docs/mcp
- **Source:** https://github.com/Luminc/peil-mcp
The server is a pure client of Peil's public API. It authenticates with a
**scoped API key** you create in Peil under **Settings → Developer**. Keys and
this server are free on every plan; what is Pro in Peil (emailing invoices,
reminders, recurring invoices) stays Pro over a key too.
Draft-by-default
draft_invoice only ever creates a **draft** — nothing is sent to your
clients. Sending is a separate tool (send_invoice) that also requires the
separate **invoices:send** permission on your key. A key without that
permission can never email anything on your behalf.
Tools
**Reads** (read)
| Tool | What it does |
|---|---|
| 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 |
| list_expenses | A year's one-off expenses, and which have no receipt kept |
**Hours** (timesheet:write)
| Tool | What it does |
|---|---|
| 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) |
**Clients** (clients:write)
| Tool | What it does |
|---|---|
| create_client / update_client / delete_client | Client CRUD (delete blocked if it has projects/sent invoices) |
**Expenses** (expenses:write)
| Tool | What it does |
|---|---|
| create_expense | Add an expense as the receipt says it: total, Dutch btw, category (key or label). Your assistant can read the receipt; the photo itself is kept in the Peil app |
**Invoices** (invoices:write)
| Tool | What it does |
|---|---|
| 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) |
| delete_invoice / archive_invoice | Delete (paid ones blocked) / archive |
| set_reminder_copy | Write custom reminder email copy for one tone/language |
**Client-facing email** (invoices:send — irreversible, always confirm first)
| Tool | What it does |
|---|---|
| send_invoice | Email an invoice to the client now |
| schedule_send | Schedule a draft to be emailed at a future time |
| cancel_scheduled_send | Cancel a scheduled send |
| send_reminder | Email a payment reminder for a sent/overdue invoice |
---
1. Create your key
In Peil: **Settings → Developer** → create a key with the permissions you want.
Start with **read + Log hours + Draft invoices** (add **Add expenses** if you
want your assistant to file receipts); leave **Send invoices** off unless you
truly want an assistant emailing clients. You'll paste this key into
your assistant's config as PEIL_API_KEY below.
2. Install the server
**The easy way — no clone, no install:**
→ Your launch command is uvx peil-mcp (or pipx run peil-mcp). Skip to
step 3. Everything below is only needed if you're