FreshBooks MCP Server
Complete Model Context Protocol server for FreshBooks with 80+ tools and 20 React apps.
Features
🛠️ Comprehensive Tool Coverage (80+ tools)
- Clients: CRUD, search, contacts management
- Invoices: Full lifecycle (create, update, send, mark paid, share links, line items)
- Estimates: CRUD, send, accept, line items
- Expenses: CRUD, categories, receipts, search
- Payments: Record and track invoice payments
- Projects: CRUD, services, time tracking integration
- Time Entries: CRUD, timers (start/stop), bulk operations
- Taxes: CRUD, tax defaults
- Items/Services: Product and service catalog management
- Staff: List and manage team members
- Bills: Vendor bills and bill payments
- Vendors: Vendor management
- Accounting: Chart of accounts, journal entries
- Retainers: Recurring retainer agreements
- Credit Notes: Customer credits
- Reports: P&L, tax summary, aging, expense reports
🎨 MCP Apps (20 React Apps)
- Dashboard Overview - Business metrics at a glance
- Invoice Dashboard - Invoice list and metrics
- Invoice Detail - Detailed invoice view
- Invoice Creator - Create and edit invoices
- Client Dashboard - Client list and overview
- Client Detail - Detailed client information
- Expense Tracker - Track and categorize expenses
- Expense Report - Expense reporting and analysis
- Project Dashboard - Active projects overview
- Project Detail - Project details and time entries
- Time Tracker - Log and manage time entries
- Time Report - Time tracking reports
- Payment Dashboard - Payment tracking
- Estimate Builder - Create and send estimates
- Profit & Loss Report - Financial P&L statements
- Tax Summary - Tax reporting
- Aging Report - Accounts receivable aging
- Item Catalog - Products and services catalog
- Bill Manager - Vendor bill management
- Staff Directory - Team member directory
Installation
npm install @mcpengine/freshbooks
Configuration
Environment Variables
FRESHBOOKS_ACCOUNT_ID=your_account_id
FRESHBOOKS_ACCESS_TOKEN=your_oauth_access_token
OAuth2 Setup
- Register your app at https://my.freshbooks.com/#/developer
- Obtain OAuth2 credentials
- Complete the OAuth2 authorization flow
- Use the access token in your MCP server configuration
MCP Settings (Claude Desktop)
Add to your claude_desktop_config.json:
{
"mcpServers": {
"freshbooks": {
"command": "npx",
"args": ["-y", "@mcpengine/freshbooks"],
"env": {
"FRESHBOOKS_ACCOUNT_ID": "your_account_id",
"FRESHBOOKS_ACCESS_TOKEN": "your_access_token"
}
}
}
}
Usage Examples
List Invoices
// Using the MCP tool
{
"tool": "freshbooks_list_invoices",
"arguments": {
"page": 1,
"per_page": 20,
"search": "Acme Corp"
}
}
Create an Invoice
{
"tool": "freshbooks_create_invoice",
"arguments": {
"customerid": 12345,
"create_date": "2024-01-15",
"due_offset_days": 30,
"notes": "Thank you for your business!",
"lines": [
{
"name": "Consulting Services",
"description": "January 2024 consulting",
"qty": "10",
"unit_cost": {
"amount": "150.00",
"code": "USD"
}
}
]
}
}
Send an Invoice
{
"tool": "freshbooks_send_invoice",
"arguments": {
"invoice_id": 98765
}
}
Track Time
// Start a timer
{
"tool": "freshbooks_start_timer",
"arguments": {
"project_id": 456,
"note": "Working on website redesign"
}
}
// Stop a timer
{
"tool": "freshbooks_stop_timer",
"arguments": {
"time_entry_id": 789
}
}
Generate Reports
// Profit & Loss Report
{
"tool": "freshbooks_profit_loss_report",
"arguments": {
"start_date": "2024-01-01",
"end_date": "2024-12-31"
}
}
// Aging Report
{
"tool": "freshbooks_aging_report",
"arguments": {}
}
Tool Reference
Client Tools (6 tools)
freshbooks_list_clients- List all clientsfreshbooks_get_client- Get client detailsfreshbooks_create_client- Create new clientfreshbooks_update_client- Update clientfreshbooks_delete_client- Delete clientfreshbooks_search_clients- Search clients
Invoice Tools (10 tools)
freshbooks_list_invoices- List invoicesfreshbooks_get_invoice- Get invoice detailsfreshbooks_create_invoice- Create invoicefreshbooks_update_invoice- Update invoicefreshbooks_delete_invoice- Delete invoicefreshbooks_send_invoice- Send invoice to clientfreshbooks_mark_invoice_paid- Mark as paidfreshbooks_get_invoice_share_link- Get shareable linkfreshbooks_add_invoice_line- Add line itemfreshbooks_search_invoices- Search invoices
Estimate Tools (8 tools)
freshbooks_list_estimates- List estimatesfreshbooks_get_estimate- Get estimate detailsfreshbooks_create_estimate- Create estimatefreshbooks_update_estimate- Update estimatefreshbooks_delete_estimate- Delete estimatefreshbooks_send_estimate- Send to clientfreshbooks_accept_estimate- Mark as acceptedfreshbooks_add_estimate_line- Add line item
Expense Tools (7 tools)
freshbooks_list_expenses- List expensesfreshbooks_get_expense- Get expense detailsfreshbooks_create_expense- Create expensefreshbooks_update_expense- Update expensefreshbooks_delete_expense- Delete expensefreshbooks_list_expense_categories- List categoriesfreshbooks_search_expenses- Search expenses
Payment Tools (5 tools)
freshbooks_list_payments- List paymentsfreshbooks_get_payment- Get payment detailsfreshbooks_create_payment- Record paymentfreshbooks_update_payment- Update paymentfreshbooks_delete_payment- Delete payment
Project Tools (6 tools)
freshbooks_list_projects- List projectsfreshbooks_get_project- Get project detailsfreshbooks_create_project- Create projectfreshbooks_update_project- Update projectfreshbooks_delete_project- Delete projectfreshbooks_mark_project_complete- Mark complete
Time Entry Tools (7 tools)
freshbooks_list_time_entries- List time entriesfreshbooks_get_time_entry- Get entry detailsfreshbooks_create_time_entry- Log timefreshbooks_update_time_entry- Update entryfreshbooks_delete_time_entry- Delete entryfreshbooks_start_timer- Start timerfreshbooks_stop_timer- Stop timer
Tax Tools (5 tools)
freshbooks_list_taxes- List taxesfreshbooks_get_tax- Get tax detailsfreshbooks_create_tax- Create taxfreshbooks_update_tax- Update taxfreshbooks_delete_tax- Delete tax
Item/Service Tools (5 tools)
freshbooks_list_items- List itemsfreshbooks_get_item- Get item detailsfreshbooks_create_item- Create itemfreshbooks_update_item- Update itemfreshbooks_delete_item- Delete item
Staff Tools (2 tools)
freshbooks_list_staff- List staff membersfreshbooks_get_staff_member- Get staff details
Bill Tools (8 tools)
freshbooks_list_bills- List billsfreshbooks_get_bill- Get bill detailsfreshbooks_create_bill- Create billfreshbooks_update_bill- Update billfreshbooks_delete_bill- Delete billfreshbooks_get_bill_payments- List paymentsfreshbooks_create_bill_payment- Record payment
Vendor Tools (5 tools)
freshbooks_list_vendors- List vendorsfreshbooks_get_vendor- Get vendor detailsfreshbooks_create_vendor- Create vendorfreshbooks_update_vendor- Update vendorfreshbooks_delete_vendor- Delete vendor
Accounting Tools (2 tools)
freshbooks_list_accounts- List chart of accountsfreshbooks_get_account- Get account details
Journal Entry Tools (3 tools)
freshbooks_list_journal_entries- List entriesfreshbooks_get_journal_entry- Get entry detailsfreshbooks_create_journal_entry- Create entry
Retainer Tools (5 tools)
freshbooks_list_retainers- List retainersfreshbooks_get_retainer- Get retainer detailsfreshbooks_create_retainer- Create retainerfreshbooks_update_retainer- Update retainerfreshbooks_delete_retainer- Delete retainer
Credit Note Tools (5 tools)
freshbooks_list_credit_notes- List credit notesfreshbooks_get_credit_note- Get credit notefreshbooks_create_credit_note- Create credit notefreshbooks_update_credit_note- Update credit notefreshbooks_delete_credit_note- Delete credit note
Report Tools (4 tools)
freshbooks_profit_loss_report- P&L reportfreshbooks_tax_summary_report- Tax summaryfreshbooks_aging_report- Accounts agingfreshbooks_expense_report- Expense report
Architecture
src/
├── server.ts # MCP server setup
├── main.ts # Entry point
├── clients/
│ └── freshbooks.ts # FreshBooks API client (OAuth2, rate limiting)
├── tools/ # Tool definitions (17 files)
│ ├── clients-tools.ts
│ ├── invoices-tools.ts
│ ├── estimates-tools.ts
│ ├── expenses-tools.ts
│ ├── payments-tools.ts
│ ├── projects-tools.ts
│ ├── time-entries-tools.ts
│ ├── taxes-tools.ts
│ ├── items-tools.ts
│ ├── staff-tools.ts
│ ├── bills-tools.ts
│ ├── vendors-tools.ts
│ ├── accounts-tools.ts
│ ├── journal-entries-tools.ts
│ ├── retainers-tools.ts
│ ├── credit-notes-tools.ts
│ └── reports-tools.ts
├── types/
│ └── index.ts # TypeScript interfaces
└── ui/
└── react-app/ # MCP Apps (20 apps)
├── src/
│ ├── apps/ # Individual apps
│ ├── components/ # Shared components
│ ├── hooks/ # Shared hooks
│ └── styles/ # Shared CSS
└── package.json
API Coverage
- ✅ Clients API (complete)
- ✅ Invoices API (complete)
- ✅ Estimates API (complete)
- ✅ Expenses API (complete)
- ✅ Payments API (complete)
- ✅ Projects API (complete)
- ✅ Time Tracking API (complete)
- ✅ Taxes API (complete)
- ✅ Items/Services API (complete)
- ✅ Staff API (read-only)
- ✅ Bills API (complete)
- ✅ Vendors API (complete)
- ✅ Accounting API (partial - read-only)
- ✅ Journal Entries API (create + read)
- ✅ Retainers API (complete)
- ✅ Credit Notes API (complete)
- ✅ Reports API (complete)
Development
Build from source
git clone https://github.com/BusyBee3333/mcpengine
cd mcpengine/servers/freshbooks
npm install
npm run build
Run tests
npm test
Type checking
npm run type-check
License
MIT
Support
For issues and feature requests, please visit: https://github.com/BusyBee3333/mcpengine/issues