mcp-freshbooks
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FRESHBOOKS_CLIENT_ID | Yes | The Client ID of your FreshBooks OAuth app. | |
| FRESHBOOKS_REDIRECT_URI | Yes | The Redirect URI set for your FreshBooks OAuth app (e.g., https://localhost:8555/callback). | |
| FRESHBOOKS_CLIENT_SECRET | Yes | The Client Secret of your FreshBooks OAuth app. |
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 |
|---|---|
| freshbooks_authenticateA | Start FreshBooks OAuth2 authentication. Returns a URL to open in your browser. After authorizing, tokens are saved automatically. |
| freshbooks_authenticate_with_codeA | Complete authentication with an authorization code (if callback server isn't used). Paste the code from the redirect URL. |
| freshbooks_whoamiA | Get the current authenticated user's identity, account ID, and business info. |
| list_invoicesC | List invoices with optional filters. Status: draft, sent, viewed, outstanding, paid. |
| get_invoiceB | Get full details of a specific invoice including line items. |
| create_invoiceC | Create a new invoice. Lines format: [{"name": "Service", "description": "...", "qty": 1, "unit_cost": {"amount": "100.00", "code": "USD"}}] |
| update_invoiceC | Update an invoice. Pass any writable invoice fields as updates dict. |
| send_invoiceB | Send an invoice by email to the client. |
| delete_invoiceB | Delete an invoice permanently. |
| list_clientsC | List clients. Optional search by name or organization. |
| get_clientB | Get full details of a specific client. |
| create_clientC | Create a new client. |
| update_clientC | Update a client. Pass any writable client fields. |
| list_expensesB | List expenses with optional client filter. |
| get_expenseB | Get full details of a specific expense. |
| create_expenseC | Create a new expense. Amount as string (e.g. '150.00'). Date as YYYY-MM-DD. |
| list_paymentsC | List all payments. |
| create_paymentC | Record a payment against an invoice. Amount as string. Date as YYYY-MM-DD. Types: Check, Credit, Cash, Bank Transfer, Credit Card, PayPal, ACH, Other. |
| list_time_entriesD | List time entries. |
| create_time_entryC | Create a time entry. started_at as ISO8601 (e.g. '2026-03-20T09:00:00'). Duration in seconds. |
| list_projectsD | List projects. |
| create_projectC | Create a project. project_type: hourly_rate or fixed_price. billing_method: business_rate, project_rate, service_rate, team_member_rate. |
| list_estimatesD | List estimates. |
| create_estimateC | Create an estimate. Lines format same as invoices. |
| get_reportC | Get a financial report. Types: profitloss_entity, taxsummary, payments_collected. Dates as YYYY-MM-DD. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 25 tools
Every tool has a clearly distinct purpose targeting specific resources and actions in the FreshBooks domain. Tools like create_client, get_client, update_client, and list_clients form a coherent set around clients, with no overlap or ambiguity between different resource types (e.g., invoices, expenses, time entries). The descriptions reinforce distinct operations.
Tool names follow a highly consistent verb_noun pattern throughout, using snake_case uniformly. All CRUD operations use create_, get_, update_, delete_, or list_ prefixes, and domain-specific actions like send_invoice and freshbooks_authenticate maintain clear, predictable naming. No deviations or mixed conventions are present.
With 25 tools, the count is borderline high for a single server, potentially feeling heavy. However, given FreshBooks' broad domain (clients, invoices, expenses, projects, time tracking, authentication, reports), the tools cover many aspects, so it's not extreme but may overwhelm agents with its scope.
The tool set provides comprehensive coverage for core FreshBooks workflows, including CRUD operations for clients, invoices, expenses, projects, and time entries, plus authentication, reporting, and actions like sending invoices. Minor gaps exist, such as no update/delete for expenses or projects, but agents can work around these with the available tools.