MCP Server
Available Tools
Every action an AI app can take in PineBill through the MCP server.
Your AI app picks the right tool from your request, so you don't need to name them. Tools marked Edit need view and edit access.
| Tool | What it does | Access |
|---|
list_invoices | Find invoices by status or search text | View |
fetch_invoice | Get one invoice with its items, customer, and totals | View |
get_invoice_pdf_url | Get a download link for an invoice PDF (valid for 1 hour) | View |
list_invoice_payments | List the payments recorded on an invoice | View |
create_invoice | Create an invoice with any template, language, or format option | Edit |
update_invoice | Change an invoice's items, dates, customer, or options | Edit |
send_invoice_email | Email an invoice to the customer | Edit |
delete_invoice | Delete an invoice | Edit |
| Tool | What it does | Access |
|---|
list_estimates | Find estimates by status or search text | View |
fetch_estimate | Get one estimate with its items and totals | View |
get_estimate_pdf_url | Get a download link for an estimate PDF (valid for 1 hour) | View |
create_estimate | Create an estimate | Edit |
update_estimate | Change an estimate | Edit |
send_estimate_email | Email an estimate to the customer | Edit |
delete_estimate | Delete an estimate | Edit |
Creating or updating an invoice or estimate also returns a link to its PDF, so you can ask "Create the invoice and give me the PDF" and open it straight from the chat. For an existing document, ask for its link, for example "Get me the PDF for INV-0042".
- Links are private and expire after 1 hour. Anyone with the link can open the PDF until then, so don't post it publicly. After it expires, ask for a new one.
- To send a document to a customer, email it with
send_invoice_email or send_estimate_email, or create a share link from the invoice or estimate page in PineBill. Don't paste a download link into an email, because it stops working after an hour.
| Tool | What it does | Access |
|---|
list_customers | Search customers | View |
fetch_customer | Get one customer's details | View |
create_customer | Add a customer | Edit |
update_customer | Change a customer's details | Edit |
delete_customer | Delete a customer | Edit |
list_products | Search products and services | View |
fetch_product | Get one product's details | View |
create_product | Add a product or service | Edit |
update_product | Change a product | Edit |
delete_product | Delete a product | Edit |
| Tool | What it does | Access |
|---|
list_expenses | Find expenses by search text or date | View |
fetch_expense | Get one expense and its receipt info | View |
create_expense | Add an expense with its amount, date, category, and vendor | Edit |
update_expense | Change an expense | Edit |
delete_expense | Delete an expense | Edit |
| Tool | What it does | Access |
|---|
list_projects | Find projects by status or search text | View |
fetch_project | Get one project with its tasks, invoices, estimates, and expenses | View |
create_project | Create a project for a customer, with a budget and dates | Edit |
update_project | Change a project's details or status | Edit |
delete_project | Delete a project | Edit |
| Tool | What it does | Access |
|---|
list_tasks | Find tasks by status, project, assignee, or due date | View |
fetch_task | Get one task with its tracked time, project, and assignee | View |
create_task | Create a task, optionally in a project, assigned, with a rate | Edit |
update_task | Change a task, including moving it to another status | Edit |
delete_task | Delete a task | Edit |
| Tool | What it does | Access |
|---|
list_running_timers | Every task with a timer running right now, and for how long | View |
get_task_time_history | Each start, pause, stop, and manual change on a task, and who did it | View |
control_task_timer | Start, pause, resume, or stop a task's timer | Edit |
adjust_task_time | Add or remove minutes by hand, with an optional note | Edit |
Pausing and stopping both add the elapsed time to the task's total. Use pause for a break and stop when you're done.
| Tool | What it does | Access |
|---|
list_calendar | Events, task due dates, invoice due dates, project deadlines, and expenses by date | View |
create_calendar_event | Add an event, such as a client meeting | Edit |
update_calendar_event | Move, rename, or change an event | Edit |
delete_calendar_event | Delete an event | Edit |
Only calendar events can be changed with the calendar tools. Tasks, invoices, projects, and expenses that appear on the calendar are changed with their own tools.
| Tool | What it does | Access |
|---|
get_business_overview | Revenue, outstanding balance, and key numbers | View |
get_revenue_report | Revenue over a period | View |
get_invoice_aging | Unpaid invoices grouped by how overdue they are | View |
get_customer_growth | New customers over time | View |
get_expense_report | Spending and expense count over a period | View |
Reports follow your plan, the same as in the dashboard.
| Tool | What it does | Access |
|---|
list_payment_methods | Saved payment methods to put on an invoice (no account details) | View |
list_employees | Employees an invoice or estimate can be assigned to | View |
get_date | Today's date, for due dates and date ranges | View |
- Look things up first. Ask the app to find the customer or product before creating an invoice, so it uses the right record.
- Be specific with amounts. Say the currency, quantity, and rate, for example "12 hours at $90".
- Ask for the PDF when you need it. Download links expire after an hour, so ask for a fresh one instead of reusing an old link.
- Review before approving. Check the details your app shows before you approve an email or a delete. Neither can be undone.
- Emails are limited. Apps can send up to 30 invoice and estimate emails an hour for you. See Usage limits.