peil-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PEIL_API_KEY | Yes | Scoped API key from Peil, created under Settings → Developer settings. Required for any tool that reads or writes your data. | |
| PEIL_API_URL | No | Override the API base URL. Defaults to https://api.peil.app/api/v1. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_clients | List the user's clients (names to use with the other Peil tools). |
| log_hoursA | Log worked hours for a client in Peil's timesheet. Omit |
| list_unbilled | List billable hours not yet on any invoice, grouped per client. |
| draft_invoice | Create a DRAFT invoice from a client's unbilled hours in a period. Nothing is sent to the client — the user reviews the draft in Peil (or asks explicitly to send it via send_invoice). Grouping: 'summary' (one line per description), 'by_project', or 'per_day'. Requires invoices:write. |
| send_invoiceA | Send an invoice to the client BY EMAIL. Irreversible and client-facing.
|
| orientation_snapshot | Where does the user stand financially? Outstanding, overdue, drafts, YTD. |
| edit_hoursA | Edit an existing time entry. Only the fields you pass are changed. Confirm with the user before editing an entry that's already on a sent/paid invoice (the server blocks it with INVOICE_LOCK). Requires timesheet:write. |
| delete_hours | Delete a time entry. Destructive — confirm with the user first. Entries on a sent/paid/archived invoice are blocked server-side. Requires timesheet:write. |
| get_client_details | Show a client's details, including whether a default rate is configured. |
| create_client | Create a new client. Requires clients:write. Set a default_rate so hours logged for this client aren't billed at €0. |
| update_clientA | Update a client's details. Only the fields you pass change. Requires clients:write. |
| delete_clientA | Delete a client. Destructive — confirm first. Blocked (409) if the client has projects or sent/paid invoices. Requires clients:write. |
| list_invoices | List invoices, most recent first. Optionally filter by status and/or client. |
| set_invoice_status | Change an invoice's status (e.g. mark paid). Requires invoices:write.
|
| update_invoice | Update safe invoice fields (due date, payment date, notes). Requires invoices:write. Line items and amounts are not edited here — redraft from hours for those. |
| delete_invoice | Delete an invoice. Destructive — confirm first. Paid invoices can't be deleted (archive instead); sent invoices are blocked unless the user is sure. Requires invoices:write. |
| archive_invoice | Archive an invoice (hidden from default views, kept for records). Requires invoices:write. |
| schedule_sendA | Schedule a DRAFT invoice to be emailed at a future time. Client-facing.
|
| cancel_scheduled_sendB | Cancel a previously scheduled send. Requires invoices:send. |
| send_reminderA | Email a payment reminder for a sent/overdue invoice. Irreversible, client-facing. Only call this when the user has explicitly confirmed reminding about this specific invoice. Requires invoices:send. |
| get_reminder_copyB | Show the user's custom reminder email copy and schedule. |
| set_reminder_copy | Set the reminder email copy for one tone/language. Requires invoices:write. Tones: pre_due (before due date), overdue (0–7 days late), formal (>7 days). Other tones/languages are preserved. Use {invoice_number}, {total_amount}, {due_date} placeholders as in Peil's editor. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Luminc/peil-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server