FreshBooks MCP Server for Cloudflare Workers
57 tools available in the FreshBooks MCP server. Each tool can be called by AI assistants to perform specific actions.
freshbooks_delete_invoiceDelete (archive) an invoice from FreshBooks.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Invoice ID to delete"
}
}
}freshbooks_convert_estimate_to_invoiceConvert an accepted estimate to an invoice.
Args:
Returns: The created invoice record.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Estimate ID to convert"
}
}
}freshbooks_delete_estimateDelete (archive) an estimate from FreshBooks.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Estimate ID to delete"
}
}
}freshbooks_send_estimateSend an estimate via email.
Args:
Returns: Confirmation of sending.
{
"type": "object",
"required": [
"id",
"recipients"
],
"properties": {
"id": {
"type": "integer",
"description": "Estimate ID to send"
},
"recipients": {
"type": "array",
"items": {
"type": "string"
},
"description": "Email recipients"
}
}
}freshbooks_list_clientsList clients from FreshBooks with pagination.
Returns a paginated list of clients.
Args:
Returns: JSON format: { items: Client[], count, total, page, pages, hasMore } Markdown format: Formatted table of clients
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"perPage": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page"
}
}
}freshbooks_get_clientGet a single client by ID.
Args:
Returns: The client record with all available fields.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Client ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}freshbooks_create_clientCreate a new client in FreshBooks.
Args:
Returns: The created client record.
{
"type": "object",
"properties": {
"note": {
"type": "string",
"description": "Notes about the client"
},
"email": {
"type": "string",
"description": "Email address"
},
"vatName": {
"type": "string",
"description": "VAT name"
},
"language": {
"type": "string",
"description": "Language code"
},
"lastName": {
"type": "string",
"description": "Last name"
},
"firstName": {
"type": "string",
"description": "First name"
},
"homePhone": {
"type": "string",
"description": "Home phone number"
},
"vatNumber": {
"type": "string",
"description": "VAT number"
},
"workPhone": {
"type": "string",
"description": "Work phone number"
},
"billingCity": {
"type": "string",
"description": "Billing city"
},
"mobilePhone": {
"type": "string",
"description": "Mobile phone number"
},
"currencyCode": {
"type": "string",
"description": "Currency code (e.g., USD, CAD)"
},
"organization": {
"type": "string",
"description": "Business/organization name"
},
"shippingCity": {
"type": "string",
"description": "Shipping city"
},
"billingStreet": {
"type": "string",
"description": "Billing street address"
},
"billingCountry": {
"type": "string",
"description": "Billing country"
},
"billingStreet2": {
"type": "string",
"description": "Billing street address line 2"
},
"shippingStreet": {
"type": "string",
"description": "Shipping street address"
},
"billingProvince": {
"type": "string",
"description": "Billing province/state"
},
"shippingCountry": {
"type": "string",
"description": "Shipping country"
},
"shippingProvince": {
"type": "string",
"description": "Shipping province/state"
},
"billingPostalCode": {
"type": "string",
"description": "Billing postal code"
},
"shippingPostalCode": {
"type": "string",
"description": "Shipping postal code"
}
}
}freshbooks_update_clientUpdate an existing client.
Args:
Returns: The updated client record.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Client ID to update"
},
"note": {
"type": "string"
},
"email": {
"type": "string"
},
"vatName": {
"type": "string"
},
"language": {
"type": "string"
},
"lastName": {
"type": "string"
},
"firstName": {
"type": "string"
},
"homePhone": {
"type": "string"
},
"vatNumber": {
"type": "string"
},
"workPhone": {
"type": "string"
},
"billingCity": {
"type": "string"
},
"mobilePhone": {
"type": "string"
},
"currencyCode": {
"type": "string"
},
"organization": {
"type": "string"
},
"shippingCity": {
"type": "string"
},
"billingStreet": {
"type": "string"
},
"billingCountry": {
"type": "string"
},
"billingStreet2": {
"type": "string"
},
"shippingStreet": {
"type": "string"
},
"billingProvince": {
"type": "string"
},
"shippingCountry": {
"type": "string"
},
"shippingProvince": {
"type": "string"
},
"billingPostalCode": {
"type": "string"
},
"shippingPostalCode": {
"type": "string"
}
}
}freshbooks_delete_clientDelete (archive) a client from FreshBooks.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Client ID to delete"
}
}
}freshbooks_list_estimatesList estimates from FreshBooks with pagination.
Returns a paginated list of estimates.
Args:
Returns: JSON format: { items: Estimate[], count, total, page, pages, hasMore } Markdown format: Formatted table of estimates
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"perPage": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page"
}
}
}freshbooks_get_estimateGet a single estimate by ID.
Args:
Returns: The estimate record with all available fields including line items.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Estimate ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}freshbooks_create_estimateCreate a new estimate in FreshBooks.
Args:
Returns: The created estimate record.
{
"type": "object",
"required": [
"clientId",
"createDate",
"lines"
],
"properties": {
"city": {
"type": "string",
"description": "Client city override"
},
"lines": {
"type": "array",
"items": {
"type": "string"
},
"description": "Line items"
},
"notes": {
"type": "string",
"description": "Estimate notes"
},
"terms": {
"type": "string",
"description": "Terms and conditions"
},
"street": {
"type": "string",
"description": "Client street address override"
},
"country": {
"type": "string",
"description": "Client country override"
},
"clientId": {
"type": "integer",
"description": "Client ID (required)"
},
"language": {
"type": "string",
"description": "Language code"
},
"poNumber": {
"type": "string",
"description": "Purchase order number"
},
"province": {
"type": "string",
"description": "Client province override"
},
"createDate": {
"type": "string",
"description": "Estimate date (YYYY-MM-DD)"
},
"postalCode": {
"type": "string",
"description": "Client postal code override"
},
"currencyCode": {
"type": "string",
"description": "Currency code"
},
"discountValue": {
"type": "number",
"description": "Discount percentage"
}
}
}freshbooks_update_estimateUpdate an existing estimate.
Args:
Returns: The updated estimate record.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Estimate ID to update"
},
"city": {
"type": "string"
},
"lines": {
"type": "array",
"items": {
"type": "string"
}
},
"notes": {
"type": "string"
},
"terms": {
"type": "string"
},
"street": {
"type": "string"
},
"country": {
"type": "string"
},
"clientId": {
"type": "integer"
},
"language": {
"type": "string"
},
"poNumber": {
"type": "string"
},
"province": {
"type": "string"
},
"createDate": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"actionEmail": {
"type": "boolean",
"description": "Send via email"
},
"currencyCode": {
"type": "string"
},
"discountValue": {
"type": "number"
},
"emailRecipients": {
"type": "array",
"items": {
"type": "string"
},
"description": "Email recipients"
},
"actionMarkAsSent": {
"type": "boolean",
"description": "Mark as sent"
}
}
}freshbooks_list_expense_categoriesList expense categories from FreshBooks with pagination.
Returns a paginated list of expense categories used to classify expenses.
Args:
Returns: JSON format: { items: ExpenseCategory[], count, total, page, pages, hasMore } Markdown format: Formatted table of expense categories
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"perPage": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page"
}
}
}freshbooks_get_expense_categoryGet a single expense category by ID.
Args:
Returns: The expense category record with all available fields.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Expense category ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}freshbooks_list_expensesList expenses from FreshBooks with pagination.
Returns a paginated list of expenses.
Args:
Returns: JSON format: { items: Expense[], count, total, page, pages, hasMore } Markdown format: Formatted table of expenses
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"perPage": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page"
}
}
}freshbooks_get_expenseGet a single expense by ID.
Args:
Returns: The expense record with all available fields.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Expense ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}freshbooks_update_invoiceUpdate an existing invoice.
Args:
Returns: The updated invoice record.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Invoice ID to update"
},
"city": {
"type": "string"
},
"lines": {
"type": "array",
"items": {
"type": "string"
}
},
"notes": {
"type": "string"
},
"terms": {
"type": "string"
},
"street": {
"type": "string"
},
"country": {
"type": "string"
},
"clientId": {
"type": "integer"
},
"language": {
"type": "string"
},
"poNumber": {
"type": "string"
},
"province": {
"type": "string"
},
"emailBody": {
"type": "string",
"description": "Email body"
},
"createDate": {
"type": "string"
},
"postalCode": {
"type": "string"
},
"actionEmail": {
"type": "boolean",
"description": "Send via email"
},
"currencyCode": {
"type": "string"
},
"emailSubject": {
"type": "string",
"description": "Email subject"
},
"depositAmount": {
"type": "number"
},
"discountValue": {
"type": "number"
},
"dueOffsetDays": {
"type": "integer"
},
"emailRecipients": {
"type": "array",
"items": {
"type": "string"
},
"description": "Email recipients"
},
"actionMarkAsSent": {
"type": "boolean",
"description": "Mark as sent"
},
"depositPercentage": {
"type": "number"
},
"discountDescription": {
"type": "string"
}
}
}freshbooks_create_expenseCreate a new expense in FreshBooks.
Args:
Returns: The created expense record.
{
"type": "object",
"required": [
"date",
"categoryId",
"staffId"
],
"properties": {
"date": {
"type": "string",
"description": "Expense date (YYYY-MM-DD)"
},
"notes": {
"type": "string",
"description": "Notes"
},
"vendor": {
"type": "string",
"description": "Vendor name"
},
"staffId": {
"type": "integer",
"description": "Staff member ID"
},
"clientId": {
"type": "integer",
"description": "Client ID"
},
"taxName1": {
"type": "string",
"description": "First tax name"
},
"taxName2": {
"type": "string",
"description": "Second tax name"
},
"projectId": {
"type": "integer",
"description": "Project ID"
},
"categoryId": {
"type": "integer",
"description": "Expense category ID"
},
"taxAmount1": {
"type": "number",
"description": "First tax amount"
},
"taxAmount2": {
"type": "number",
"description": "Second tax amount"
},
"taxPercent1": {
"type": "number",
"description": "First tax percentage"
},
"taxPercent2": {
"type": "number",
"description": "Second tax percentage"
},
"markupPercent": {
"type": "number",
"description": "Markup percentage"
}
}
}freshbooks_update_expenseUpdate an existing expense.
Args:
Returns: The updated expense record.
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Expense ID to update"
},
"date": {
"type": "string"
},
"notes": {
"type": "string"
},
"vendor": {
"type": "string"
},
"staffId": {
"type": "integer"
},
"clientId": {
"type": "integer"
},
"taxName1": {
"type": "string"
},
"taxName2": {
"type": "string"
},
"projectId": {
"type": "integer"
},
"categoryId": {
"type": "integer"
},
"taxAmount1": {
"type": "number"
},
"taxAmount2": {
"type": "number"
},
"taxPercent1": {
"type": "number"
},
"taxPercent2": {
"type": "number"
},
"markupPercent": {
"type": "number"
}
}
}freshbooks_delete_expenseDelete (archive) an expense from FreshBooks.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Expense ID to delete"
}
}
}freshbooks_list_invoicesList invoices from FreshBooks with pagination.
Returns a paginated list of invoices.
Args:
Returns: JSON format: { items: Invoice[], count, total, page, pages, hasMore } Markdown format: Formatted table of invoices
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"perPage": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page"
}
}
}freshbooks_get_invoiceGet a single invoice by ID.
Args:
Returns: The invoice record with all available fields including line items.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Invoice ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}freshbooks_get_paymentGet a single payment by ID.
Args:
Returns: The payment record with all available fields.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Payment ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}freshbooks_create_paymentRecord a new payment in FreshBooks.
Args:
Returns: The created payment record.
{
"type": "object",
"required": [
"invoiceId",
"date"
],
"properties": {
"date": {
"type": "string",
"description": "Payment date (YYYY-MM-DD)"
},
"note": {
"type": "string",
"description": "Notes"
},
"type": {
"type": "string",
"description": "Payment type"
},
"invoiceId": {
"type": "integer",
"description": "Invoice ID"
}
}
}freshbooks_create_invoiceCreate a new invoice in FreshBooks.
Args:
Returns: The created invoice record.
{
"type": "object",
"required": [
"clientId",
"createDate",
"lines"
],
"properties": {
"city": {
"type": "string",
"description": "Client city override"
},
"lines": {
"type": "array",
"items": {
"type": "string"
},
"description": "Line items"
},
"notes": {
"type": "string",
"description": "Invoice notes"
},
"terms": {
"type": "string",
"description": "Payment terms"
},
"street": {
"type": "string",
"description": "Client street address override"
},
"country": {
"type": "string",
"description": "Client country override"
},
"clientId": {
"type": "integer",
"description": "Client ID (required)"
},
"language": {
"type": "string",
"description": "Language code"
},
"poNumber": {
"type": "string",
"description": "Purchase order number"
},
"province": {
"type": "string",
"description": "Client province override"
},
"createDate": {
"type": "string",
"description": "Invoice date (YYYY-MM-DD)"
},
"estimateId": {
"type": "integer",
"description": "Associated estimate ID"
},
"postalCode": {
"type": "string",
"description": "Client postal code override"
},
"currencyCode": {
"type": "string",
"description": "Currency code"
},
"depositAmount": {
"type": "number",
"description": "Deposit amount"
},
"discountValue": {
"type": "number",
"description": "Discount percentage"
},
"dueOffsetDays": {
"type": "integer",
"description": "Days until due"
},
"depositPercentage": {
"type": "number",
"description": "Deposit percentage"
},
"discountDescription": {
"type": "string",
"description": "Discount description"
}
}
}freshbooks_send_invoiceSend an invoice via email.
Args:
Returns: Confirmation of sending.
{
"type": "object",
"required": [
"id",
"recipients"
],
"properties": {
"id": {
"type": "integer",
"description": "Invoice ID to send"
},
"body": {
"type": "string",
"description": "Email body"
},
"subject": {
"type": "string",
"description": "Email subject"
},
"recipients": {
"type": "array",
"items": {
"type": "string"
},
"description": "Email recipients"
}
}
}freshbooks_list_itemsList items/products from FreshBooks with pagination.
Returns a paginated list of items that can be used on invoices.
Args:
Returns: JSON format: { items: Item[], count, total, page, pages, hasMore } Markdown format: Formatted table of items
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"perPage": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page"
}
}
}freshbooks_get_itemGet a single item by ID.
Args:
Returns: The item record with all available fields.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Item ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}freshbooks_create_itemCreate a new item/product in FreshBooks.
Args:
Returns: The created item record.
{
"type": "object",
"required": [
"name"
],
"properties": {
"qty": {
"type": "number",
"description": "Default quantity"
},
"sku": {
"type": "string",
"description": "SKU code"
},
"name": {
"type": "string",
"description": "Item name"
},
"tax1": {
"type": "number",
"description": "First tax ID"
},
"tax2": {
"type": "number",
"description": "Second tax ID"
},
"inventory": {
"type": "number",
"description": "Inventory count"
},
"description": {
"type": "string",
"description": "Item description"
}
}
}freshbooks_update_itemUpdate an existing item.
Args:
Returns: The updated item record.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Item ID to update"
},
"qty": {
"type": "number"
},
"sku": {
"type": "string"
},
"name": {
"type": "string"
},
"tax1": {
"type": "number"
},
"tax2": {
"type": "number"
},
"inventory": {
"type": "number"
},
"description": {
"type": "string"
}
}
}freshbooks_delete_itemDelete (archive) an item from FreshBooks.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Item ID to delete"
}
}
}freshbooks_list_paymentsList payments from FreshBooks with pagination.
Returns a paginated list of payments.
Args:
Returns: JSON format: { items: Payment[], count, total, page, pages, hasMore } Markdown format: Formatted table of payments
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"perPage": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page"
}
}
}freshbooks_update_paymentUpdate an existing payment.
Args:
Returns: The updated payment record.
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Payment ID to update"
},
"date": {
"type": "string"
},
"note": {
"type": "string"
},
"type": {
"type": "string"
}
}
}freshbooks_delete_paymentDelete a payment from FreshBooks.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Payment ID to delete"
}
}
}freshbooks_list_projectsList projects from FreshBooks with pagination.
Returns a paginated list of projects.
Args:
Returns: JSON format: { items: Project[], count, total, page, pages, hasMore } Markdown format: Formatted table of projects
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"perPage": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page"
}
}
}freshbooks_get_projectGet a single project by ID.
Args:
Returns: The project record with all available fields.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Project ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}freshbooks_create_projectCreate a new project in FreshBooks.
Args:
Returns: The created project record.
{
"type": "object",
"required": [
"title"
],
"properties": {
"rate": {
"type": "number",
"description": "Hourly rate"
},
"title": {
"type": "string",
"description": "Project title"
},
"budget": {
"type": "number",
"description": "Budget amount"
},
"dueDate": {
"type": "string",
"description": "Due date (YYYY-MM-DD)"
},
"clientId": {
"type": "integer",
"description": "Client ID"
},
"internal": {
"type": "boolean",
"description": "Internal project"
},
"fixedPrice": {
"type": "number",
"description": "Fixed price"
},
"description": {
"type": "string",
"description": "Project description"
},
"projectType": {
"type": "string",
"description": "Project type"
},
"billingMethod": {
"type": "string",
"description": "Billing method"
}
}
}freshbooks_update_projectUpdate an existing project.
Args:
Returns: The updated project record.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Project ID to update"
},
"rate": {
"type": "number"
},
"title": {
"type": "string"
},
"budget": {
"type": "number"
},
"dueDate": {
"type": "string"
},
"clientId": {
"type": "integer"
},
"complete": {
"type": "boolean",
"description": "Mark as complete"
},
"internal": {
"type": "boolean"
},
"fixedPrice": {
"type": "number"
},
"description": {
"type": "string"
},
"projectType": {
"type": "string"
},
"billingMethod": {
"type": "string"
}
}
}freshbooks_delete_projectDelete a project from FreshBooks.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Project ID to delete"
}
}
}freshbooks_list_servicesList services/task types from FreshBooks with pagination.
Services are used to categorize time entries (e.g., "Development", "Design", "Meetings").
Args:
Returns: JSON format: { items: Service[], count, total, page, pages, hasMore } Markdown format: Formatted table of services
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"perPage": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page"
}
}
}freshbooks_get_serviceGet a single service by ID.
Args:
Returns: The service record with all available fields.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Service ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}freshbooks_create_serviceCreate a new service/task type in FreshBooks.
Args:
Returns: The created service record.
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Service name"
},
"billable": {
"type": "boolean",
"description": "Billable by default"
},
"projectDefault": {
"type": "boolean",
"description": "Add to new projects by default"
}
}
}freshbooks_list_staffList staff members from FreshBooks with pagination.
Returns a paginated list of staff/team members in the account.
Args:
Returns: JSON format: { items: Staff[], count, total, page, pages, hasMore } Markdown format: Formatted table of staff members
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"perPage": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page"
}
}
}freshbooks_get_staffGet a single staff member by ID.
Args:
Returns: The staff record with all available fields.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Staff member ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}freshbooks_get_current_userGet the current authenticated user's information.
Returns: The current user's profile including identity and business memberships.
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
}
}
}freshbooks_test_connectionTest the connection to FreshBooks API.
Verifies that the access token and account ID are valid.
Returns: Connection status and current user information if successful.
{
"type": "object",
"properties": {}
}freshbooks_list_taxesList taxes from FreshBooks with pagination.
Returns a paginated list of tax rates that can be applied to invoices.
Args:
Returns: JSON format: { items: Tax[], count, total, page, pages, hasMore } Markdown format: Formatted table of taxes
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"perPage": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page"
}
}
}freshbooks_get_taxGet a single tax by ID.
Args:
Returns: The tax record with all available fields.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Tax ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}freshbooks_create_taxCreate a new tax rate in FreshBooks.
Args:
Returns: The created tax record.
{
"type": "object",
"required": [
"name",
"amount"
],
"properties": {
"name": {
"type": "string",
"description": "Tax name"
},
"amount": {
"type": "number",
"description": "Tax percentage"
},
"number": {
"type": "string",
"description": "Tax registration number"
},
"compound": {
"type": "boolean",
"description": "Compound tax"
}
}
}freshbooks_update_taxUpdate an existing tax rate.
Args:
Returns: The updated tax record.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Tax ID to update"
},
"name": {
"type": "string"
},
"amount": {
"type": "number"
},
"number": {
"type": "string"
},
"compound": {
"type": "boolean"
}
}
}freshbooks_delete_taxDelete a tax rate from FreshBooks.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Tax ID to delete"
}
}
}freshbooks_list_time_entriesList time entries from FreshBooks with pagination.
Returns a paginated list of time entries.
Args:
Returns: JSON format: { items: TimeEntry[], count, total, page, pages, hasMore } Markdown format: Formatted table of time entries
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Page number"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"perPage": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Items per page"
}
}
}freshbooks_get_time_entryGet a single time entry by ID.
Args:
Returns: The time entry record with all available fields.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Time entry ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}freshbooks_create_time_entryCreate a new time entry in FreshBooks.
Args:
Returns: The created time entry record.
{
"type": "object",
"required": [
"isLogged",
"duration",
"startedAt"
],
"properties": {
"note": {
"type": "string",
"description": "Description of work"
},
"billable": {
"type": "boolean",
"description": "Billable time"
},
"clientId": {
"type": "integer",
"description": "Client ID"
},
"duration": {
"type": "integer",
"description": "Duration in seconds"
},
"internal": {
"type": "boolean",
"description": "Internal time"
},
"isLogged": {
"type": "boolean",
"description": "Whether time is logged (true) or timer (false)"
},
"projectId": {
"type": "integer",
"description": "Project ID"
},
"serviceId": {
"type": "integer",
"description": "Service ID"
},
"startedAt": {
"type": "string",
"description": "Start time (ISO format)"
}
}
}freshbooks_update_time_entryUpdate an existing time entry.
Args:
Returns: The updated time entry record.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Time entry ID to update"
},
"note": {
"type": "string"
},
"billable": {
"type": "boolean"
},
"clientId": {
"type": "integer"
},
"duration": {
"type": "integer"
},
"internal": {
"type": "boolean"
},
"isLogged": {
"type": "boolean"
},
"projectId": {
"type": "integer"
},
"serviceId": {
"type": "integer"
},
"startedAt": {
"type": "string"
}
}
}freshbooks_delete_time_entryDelete a time entry from FreshBooks.
Args:
Returns: Confirmation of deletion.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"description": "Time entry ID to delete"
}
}
}