add_invoice_line_items
Appends line items to an existing invoice WITHOUT touching its other line items (safer than update_invoice's full-replacement LineItems). Line items can link uninvoiced timesheets/expenses/fixed amounts via TimesheetEntryIDs/ExpenseIDs/FixedAmountIDs - amounts, descriptions and taxes are calculated from the linked records unless supplied, and the records are marked invoiced. Atomic: if anything is invalid, nothing is added and every problem is reported. If a retry returns 'already linked to' this same invoice, the original call succeeded. Returns the updated invoice, the new line item IDs, and warnings (e.g. status changes). The invoice must not be Void.
add_project_member
Adds a user as a member of a project, setting their rates, budget, and permissions. Financial amounts assume the currency of the Customer company.
add_schedule_booking
Creates a new project work schedule booking for a user over a date range with specified hours per day or total duration.
add_schedule_leave
Creates a new leave/time-off schedule booking for a user over a date range.
add_task_comment
Adds a new comment (message) to a task's discussion thread. Either responseBody or fileAttachmentIDs must be provided. Optionally mark as an internal note (only visible to team members; requires team member rights), reply to an existing comment, or attach files previously uploaded via upload_file_from_url (max 8 attachments). To @mention a user (which notifies them and adds them as a follower of the task), embed a mention span in responseBody — see the responseBody parameter for the exact required markup.
add_uninvoiced_to_invoice
Finds ALL currently-eligible uninvoiced records for the invoice's customer matching the filters (timesheets, expenses and/or fixed amounts), groups them per the requested grouping, appends the generated line items to the invoice and marks the records invoiced - one call instead of list + construct + add. Only eligible records are ever selected, so it never double-bills and a repeat call returns zero counts (safe to retry). Use preview_uninvoiced_items first for a dry run. Provide at least one of time/expenses/fixedAmounts. The invoice must not be Void.
approve_timesheets
Approves one or more submitted timesheet entries. Requires both APIApproveTimesheet and ApproveTimesheets rights on the calling user. Returns a batch result with per-entry status (Approved, AlreadyApproved, or Failed with ErrorCode/Message). Already-approved entries do not error — they are counted under Summary.AlreadyInTargetState.
confirm_delete_estimate
Execute a previously-previewed estimate deletion. Requires the confirmation_token from DeleteEstimate. The token expires after 5 minutes. Estimates that have been converted to an invoice cannot be deleted.
confirm_delete_expenses
Execute a previously-previewed expense deletion. Requires the confirmation_token returned by DeleteExpenses. The token expires after 5 minutes. If the token is invalid or expired, call DeleteExpenses again to get a fresh preview and token.
confirm_delete_schedule_series
Execute a previously-previewed schedule series deletion. Requires the confirmation_token from DeleteScheduleSeries. The token expires after 5 minutes.
confirm_delete_section
Execute a previously-previewed section deletion. Requires the confirmation_token from DeleteSection. The token expires after 5 minutes.
confirm_delete_task
Execute a previously-previewed task deletion. Requires the confirmation_token from DeleteTask. The token expires after 5 minutes.
confirm_delete_timesheet
Execute a previously-previewed timesheet entry deletion. Requires the confirmation_token from DeleteTimesheet. The token expires after 5 minutes.
confirm_delete_webhook_by_id
Execute a previously-previewed webhook deletion by ID. Requires the confirmation_token from DeleteWebhookById. The token expires after 5 minutes.
confirm_delete_webhook_by_url
Execute a previously-previewed webhook deletion by URL. Requires the confirmation_token from DeleteWebhookByUrl. The token expires after 5 minutes.
create_bill
Creates a new draft supplier bill (purchase invoice). Optionally creates a new supplier company and contact if no matching company is found.
create_bill_payment
Records a new supplier bill payment. Optionally include allocations to apply the payment against specific bills.
create_company
Creates a new customer company record in Avaza.
create_contact
Creates a new external contact, optionally linked to an existing company. If CompanyName is provided and not matched, a new company is created.
create_estimate
Creates a new draft estimate (quote). Optionally creates a new customer company and contact if no matching company is found.
create_expense
Creates a new expense entry. Primarily for automated/programmatic use. When a user is interacting via a chat UI, prefer NewExpense instead which provides an interactive form. Requires at minimum an expense date, amount, and expense category (by ID or name).
create_fixed_amount
Creates a new fixed-amount billing entry against a task. The project is always derived from the task, and the amount is in the currency of the customer the task's project belongs to (rounded to that currency's decimal places). Fixed amounts cannot be added to tasks on internal or archived projects. The created entry is immediately visible to list_fixed_amounts and can be invoiced by linking its FixedAmountID on an invoice line.
create_inventory_item
Creates a new inventory/product item. Name is required and must be unique in the account; SKU (when provided) must also be unique. Use list_taxes to find tax IDs.
create_invoice
Creates a new draft invoice. Optionally creates a new customer company and contact if no matching company is found. Use list_inventory to find InventoryItemIDFK values for line items. Line items can link uninvoiced timesheets/expenses/fixed amounts via TimesheetEntryIDs/ExpenseIDs/FixedAmountIDs - amounts, descriptions and taxes are calculated from the linked records unless supplied, and the records are marked invoiced. Atomic: if any link is invalid the whole invoice is rejected with per-ID reasons. If a retry returns 'already linked to' the invoice you just created, the original call succeeded. Links cannot be used when creating a new customer.
create_payment
Records a new customer payment. Optionally include allocations to apply the payment against specific invoices.
create_project
Creates a new project in Avaza, linked to a customer company. Optionally creates a new company if CompanyName is provided and not matched. If ProjectStatusCode is omitted, the project is created with the account's default-for-new-projects status. If projectBillableTypeCode / projectBudgetTypeCode are omitted, the account's default billing and budget methods for new projects are applied. Response includes ProjectStatusCode, ProjectStatusName, ProjectStatusColor, ProjectStatusIsNotStarted, and ProjectStatusIsComplete.
create_section
Creates a new section (task group) within a project.
create_task
Creates a new task in a project section. Requires ProjectIDFK, SectionIDFK, and Title. Optionally assign users, set dates, priority, estimated effort, tags, and a parent task (to create a subtask).
create_timesheet
Creates a new timesheet entry. If Duration is null or 0, a timer will be started automatically. Requires ProjectIDFK and TimesheetCategoryIDFK.
create_webhook
Creates a new webhook subscription for a single event type. Call once per event type. On success, returns the ID of the new webhook subscription. Valid event codes: company_created, company_deleted, company_updated, contact_created, contact_deleted, contact_updated, invoice_created, invoice_sent, invoice_updated, invoice_deleted, project_created, project_deleted, project_updated, task_created, task_updated, task_deleted, timesheet_created, timesheet_deleted, timesheet_updated, bill_created, bill_updated, estimate_created, estimate_updated, estimate_deleted, expense_created, expense_updated, expense_deleted, scheduleseries_created, scheduleseries_updated, scheduleseries_deleted, team_member_created, team_member_updated, team_member_deleted.
delete_estimate
Preview deletion of an estimate (quote). Returns estimate details and a confirmation_token (valid 5 minutes). Call ConfirmDeleteEstimate with the same estimateId and token to execute. Only estimates in Draft, Sent, Accepted or Rejected status can be deleted; estimates that have been converted to an invoice are protected. Clients that support MCP Apps will see an interactive confirmation card.
delete_expenses
Request deletion of expense entries. Returns a preview of what will be deleted and a confirmation_token (valid 5 minutes). To execute the deletion, call ConfirmDeleteExpenses with the same expenseIDs and the returned confirmation_token. Clients that support MCP Apps will see an interactive confirmation card.
delete_schedule_series
Preview deletion of a schedule series (booking or leave). Also removes all associated daily schedule assignments. Returns a confirmation_token (valid 5 minutes). Call ConfirmDeleteScheduleSeries with the same ID and token to execute. Clients that support MCP Apps will see an interactive confirmation card.
delete_section
Preview deletion of a section. Cannot delete a Section that contains Tasks. Returns a confirmation_token (valid 5 minutes). Call ConfirmDeleteSection with the same sectionID and token to execute. Clients that support MCP Apps will see an interactive confirmation card.
delete_task
Preview deletion of a task. Returns task details and a confirmation_token (valid 5 minutes). Call ConfirmDeleteTask with the same taskID and token to execute. Clients that support MCP Apps will see an interactive confirmation card.
delete_timesheet
Preview deletion of a timesheet entry. Returns entry details and a confirmation_token (valid 5 minutes). Call ConfirmDeleteTimesheet with the same timesheetId and token to execute. Clients that support MCP Apps will see an interactive confirmation card.
delete_webhook_by_id
Preview deletion of a webhook subscription by its numeric ID. Returns webhook details and a confirmation_token (valid 5 minutes). Call ConfirmDeleteWebhookById to execute. Clients that support MCP Apps will see an interactive confirmation card.
delete_webhook_by_url
Preview deletion of a webhook subscription by its callback URL. Returns a confirmation_token (valid 5 minutes). Call ConfirmDeleteWebhookByUrl with the same URL and token to execute. Clients that support MCP Apps will see an interactive confirmation card.
edit_schedule_booking
Updates an existing project work schedule booking.
edit_schedule_leave
Updates an existing leave schedule booking.
edit_task_comment
Edits an existing task comment (message) that the CURRENT USER authored. Replaces the comment body and, optionally, its attachment set. Author-only — you can only edit your own comments, and system/auto-generated messages cannot be edited. The edit is silent (it does not re-fire the original 'new comment' notification), but any NEWLY-added @mentions are notified and followed. Use list_task_comments to find the TaskResponseID (and its current attachments) first.
expense_summary
Retrieves aggregated expense statistics for a date range, with optional grouping by up to three dimensions. GroupBy values: Category, ChargeableStatus, Merchant, ApprovalStatus, ReimbursementStatus, Customer, Project, User, Task, Year, Month, Day, Week.
get_account
Retrieves configuration details for the authenticated Avaza account, including timesheet settings, currency, branding, and feature flags.
get_bill
Retrieves a single supplier bill by its Transaction ID, including line items, issuer/recipient address details, and web links.
get_bill_payment
Retrieves a single supplier bill payment by its Transaction ID, including allocations to bills.
get_company
Retrieves a single customer company by its Company ID, including contacts and billing address details.
get_contact
Retrieves a single external contact by their Contact ID.
get_credit_note
Retrieves a single credit note by its Transaction ID, including line items and invoice allocations.
get_estimate
Retrieves a single estimate by its Estimate ID, including line items, issuer/recipient details, and web links.
get_expense
Retrieves a single expense entry by its Expense ID, including category, project, tax, attachment, and approval details.
get_inventory_item
Retrieves a single inventory/product item by its Inventory Item ID.
get_invoice
Retrieves a single invoice by its Transaction ID, including line items, issuer/recipient address details, and web links. Each line item includes TimesheetEntryIDs, ExpenseIDs and FixedAmountIDs arrays listing the source records it invoices (empty when the line has no linked records).
get_payment
Retrieves a single customer payment by its Transaction ID, including allocations to invoices.
get_project
Retrieves full project details by Project ID, including sections, team members with rates and permissions, and project tags. Payload includes ProjectStatusCode plus ProjectStatusName, ProjectStatusColor, ProjectStatusIsNotStarted, and ProjectStatusIsComplete. Project Statuses are per-account configurable.
get_recurring_invoice
Retrieves a single recurring invoice profile by its ID, including line items, schedule configuration, and next invoice date.
get_running_timer
Checks if there is a currently running timer for the authenticated user (or an impersonated user). Returns timer start time, timesheet entry ID, and server time for clock synchronisation.
get_task
Retrieves full task details by Task ID, including project context, section, assignees, dates, status, priority, tags, and time tracking information. Response includes ParentTaskIDFK, ParentTaskTitle, SubtaskCount, and SubtaskProgress for tasks that are part of a parent/child hierarchy.
get_timesheet
Retrieves a single timesheet entry by its Timesheet Entry ID, including user, project, category, approval, and timer details.
get_uninvoiced_summary
Aggregated 'what is ready to bill?' view: uninvoiced billable hours and indicative time value, uninvoiced chargeable expense value, and uninvoiced fixed amount totals, grouped per customer (default) or per project. Time and fixed amounts are in each customer's currency; expense values are in the account's base currency (before markup). Use preview_uninvoiced_items for exact invoice-ready amounts for one customer's invoice.
list_bill_payments
Retrieves a paginated list of supplier bill payments, including payment allocations to specific bills.
list_bills
Retrieves a paginated list of supplier bills with line items, status, and address details. TransactionStatusCode values: Draft, Verified, Late, Paid, Partial, Void.
list_companies
Retrieves a paginated list of customer companies with full details including contacts, billing address, and financial settings.
list_contacts
Retrieves a paginated list of external contacts (customer contacts) with company association details.
list_credit_notes
Retrieves a paginated list of customer credit notes, including line items and allocations against invoices.
list_currencies
Retrieves the list of currencies configured in the Avaza account, including currency codes, names, symbols, and decimal places.
list_custom_fields
Retrieves the account's active custom field definitions mapped to an entity type (e.g. Task or Project), in display order, including data type, multi-select flag, required flag, visibility, and the active options for Dropdown fields. Use the returned CustomFieldDefinitionID (or Name) when setting values via the customFields parameter on create_task / update_task / create_project / update_project. Custom field definitions and options CANNOT be created or modified via MCP or the public API — values only; definitions are managed by account admins in Avaza settings. Returns an empty list when the account's Custom Fields feature is disabled.
list_deleted_timesheets
Retrieves deleted (tombstone) timesheet entries for synchronisation purposes. Admin access only. Supports filtering by deletion date, entry date range, and user.
list_estimates
Retrieves a paginated list of estimates/quotes. EstimateStatusCode values: Draft, Sent, Accepted, Converted, Expired, Rejected.
list_expense_categories
Retrieves the list of expense categories configured in the account, including unit price settings for per-unit expense tracking (e.g. Mileage).
list_expenses
Retrieves a paginated list of expense entries with rich filtering by date range, user, project, category, chargeable/invoiced status, approval status, and merchant.
list_fixed_amounts
Retrieves a paginated list of fixed-amount billing entries used for fixed-price project invoicing. Can filter by project, task, customer company, invoiced status, and updated date. Entries include InvoiceLineItemIDFK when they have been invoiced; use isInvoiced=false to find uninvoiced fixed amounts ready for billing.
list_inventory
Retrieves a paginated list of inventory/product items configured in the account, used as line items on invoices, bills, and estimates.
list_invoices
Retrieves a paginated list of invoices. TransactionStatusCode values: Draft, Sent, Late, Paid, Partial, Void.
list_payments
Retrieves a paginated list of customer payments, including allocations to specific invoices. Can filter by invoice or updated date.
list_project_members
Retrieves a list of project members with rates and permissions. Include at least one of ProjectID or UserID parameters.
list_project_tags
Retrieves all project tags in the account (the account-wide tag pool) as an array of { ProjectTagID, Name }, sorted alphabetically by name. Includes tags not currently assigned to any project — useful for populating tag pickers/filters. Requires project create or update permission.
list_projects
Retrieves a paginated list of projects with details including status, billing type, budget, category, and date range. Each project payload includes ProjectStatusCode plus ProjectStatusName, ProjectStatusColor, ProjectStatusIsNotStarted, and ProjectStatusIsComplete. Project Statuses are per-account configurable: default codes (NotStarted, InProgress, Complete, OnHold) are seeded for every account, but admins may add custom codes. Codes are unique within an account and stable once created — safe to use as durable references. Each project payload also includes its assigned ProjectTags (alphabetical); filter by tag with the tags / tagMatchMode parameters.
list_recurring_invoices
Retrieves a paginated list of recurring invoice profiles.
list_schedule_assignments
Retrieves a paginated list of per-day schedule assignments. Schedule assignments are per-day and link to a parent Schedule Series.
list_schedule_series
Retrieves a paginated list of schedule series. A Schedule Series represents a strip of time assigned to a user over a date range, for a certain number of hours per day. They can be for Leave or for project work Bookings.
list_sections
Retrieves a list of sections (task groups) within a project. Requires a ProjectID parameter.
list_task_comments
Retrieves the comments (discussion messages) on a specific task, including replies, attachments, and system messages. Supports pagination via startItem.
list_task_priorities
Retrieves all task priority definitions configured in the account, including priority code, display name, color, and display order. Results are ordered by DisplayOrder ascending.
list_task_statuses
Retrieves all task status definitions configured in the account, grouped by task type. Includes status codes, display names, colors, sort order, and whether the status represents a completed state.
list_task_types
Retrieves all task type definitions (workflow types) configured in the account, including name, icon, and whether it is the default type.
list_tasks
Retrieves a paginated list of tasks with details including assignees, dates, status, priority, tags, and time tracking. Supports filtering by project, status, priority, due date range, assigned user, and completion state. Response items include ParentTaskIDFK, ParentTaskTitle, SubtaskCount, and SubtaskProgress for tasks that are part of a parent/child hierarchy.
list_taxes
Retrieves all tax rates configured in the Avaza account, including tax components for compound taxes.
list_timesheet_categories
Retrieves the list of timesheet/billing categories assigned to projects. Default sort order is by isBillable desc, Name asc.
list_timesheets
Retrieves a paginated list of timesheet entries with rich filtering by date range, user, project, task, category, billable/invoiced status, approval status, and running timer state.
list_users
Get users (team members) in the current Avaza account. Admin and Finance Managers can see all users; other roles are limited to seeing their own profile.
list_webhooks
Retrieves all active webhook subscriptions for the authenticated account.
lookup_companies
Retrieves a paginated dropdown list of companies. Admins see all companies; non-admins see only companies from projects they are a member of.
lookup_expense_groups
Retrieves a paginated list of expense group/trip names for categorising expenses, with optional search filtering.
lookup_expense_merchants
Retrieves a minimal dropdown list of expense merchant names for search/autocomplete.
lookup_expense_payment_methods
Retrieves the list of expense payment methods configured in the Avaza account.
lookup_projects
Retrieves a minimal dropdown list of active projects grouped by customer company, for search/autocomplete. Supports filtering by user timesheet access, company, project code, and search term.
lookup_tasks
Retrieves tasks grouped by section within a project for dropdown/autocomplete use. Default sort is by Section Title followed by Task Title.
new_expense
Opens the Create Expense form UI pre-populated with dropdown data for users, expense categories, taxes, currencies, and customers. The user fills in the form and submits to create a new expense. This tool should always be preferred when a user is interacting via a chat UI. Clients that support MCP Apps will see an interactive form. If no userIDFK is provided, the form defaults to the currently authenticated user.
new_project
Opens the Create Project form UI pre-populated with the customer dropdown and account-level configuration (e.g. whether Project Code is manually editable). The user fills in the form and submits to create a new project. This tool should always be preferred when a user is interacting via a chat UI. Clients that support MCP Apps will see an interactive form.
new_task
Opens the Create Task form UI pre-populated with dropdown data for projects, task types, priorities, sections, and project members. The user fills in the form and submits to create a new task. This tool should always be preferred when a user is interacting via a chat UI. Clients that support MCP Apps will see an interactive form.
new_timesheet
Opens the Create Timesheet form UI pre-populated with dropdown data for projects, timesheet categories, and tasks. The user fills in the form and submits to create a new timesheet entry. If Duration is left blank, the form submits as a Start Timer action; if Duration is set, a saved entry is created. This tool should always be preferred when a user is interacting via a chat UI. Clients that support MCP Apps will see an interactive form.
preview_uninvoiced_items
DRY RUN: computes the line items add_uninvoiced_to_invoice would create for the given filters - quantities, blended rates, converted expense amounts with markup, generated descriptions and the source record IDs each line covers - WITHOUT saving anything or marking any record invoiced. Use it to answer 'what is ready to bill onto this invoice?' and to confirm with the user before adding. Provide at least one of time/expenses/fixedAmounts.
reject_timesheets
Rejects one or more submitted timesheet entries. Requires both APIApproveTimesheet and ApproveTimesheets rights on the calling user. By default sends a rejection notification email to each affected timesheet user — pass sendNotifications=false to suppress. Returns a batch result with per-entry status; already-rejected entries are counted under Summary.AlreadyInTargetState.
remove_invoice_line_items
Deletes specific line items from an invoice and releases any timesheets/expenses/fixed amounts linked to them back to uninvoiced (they can then be invoiced again). Only the named line items are touched. The invoice must not be Void and must retain at least one line item; totals, balance and status are recalculated. Returns the updated invoice and the released source record IDs.
start_timer
Starts a timer on an existing timesheet entry. If the entry is not on the current day or start/end times are enabled, a new timesheet entry is created for the timer.
stop_timer
Stops the running timer on a timesheet entry. The elapsed time is added to the entry's duration.
submit_expenses
Submit expenses for approval. If no ExpenseIDs are provided, submits all verified expenses for approval.
submit_timesheets
Submits timesheet entries for approval. Either provide a specific day (WholeDayOf) or any day within a week (WholeWeekOf) to submit all draft timesheets in that day or week.
timesheet_summary
Retrieves aggregated timesheet statistics for a date range, with optional grouping by up to three dimensions. GroupBy values: Customer, Project, Category, User, Task, Year, Month, Day, Week.
update_company
Updates an existing company record. Only fields listed in the FieldsToUpdate array will be modified.
update_expense
Updates an existing expense entry. Only fields listed in the FieldsToUpdate array will be modified. Requires the ExpenseID and FieldsToUpdate properties.
update_fixed_amount
Updates an existing fixed-amount billing entry. Only fields listed in the FieldsToUpdate array will be modified. Valid FieldsToUpdate values: Amount, InventoryItemIDFK, Notes. A fixed amount that has already been invoiced cannot be updated - remove it from the invoice first to release it. The task and project links cannot be changed. To clear Notes, include "Notes" in fieldsToUpdate and omit the notes value.
update_invoice
Updates an existing draft invoice. Only fields listed in the FieldsToUpdate array will be modified. Valid FieldsToUpdate values: CustomerPONumber, DateIssued, PaymentTerms, DueDate, Subject, Notes, TransactionTaxConfigCode, ExchangeRate, InvoiceTemplateIDFK, InvoiceNumber, LineItems. WARNING: when LineItems is included this is a FULL REPLACEMENT - every existing line item not present in the array is DELETED, and any timesheets/expenses/fixed amounts linked to a deleted line are released back to uninvoiced. To APPEND line items safely, prefer add_invoice_line_items. NEW lines in the array may link uninvoiced source records via TimesheetEntryIDs/ExpenseIDs/FixedAmountIDs.
update_project
Updates an existing project. Only fields listed in the FieldsToUpdate array will be modified. Response includes ProjectStatusCode plus ProjectStatusName, ProjectStatusColor, ProjectStatusIsNotStarted, and ProjectStatusIsComplete.
update_project_member
Updates a project member's rates, budget, or permissions. Only fields listed in the FieldsToUpdate array will be modified. Financial amounts assume the currency of the parent Company.
update_task
Updates an existing task. Requires TaskID and a list of field names to update. Only fields in FieldsToUpdate will be modified.
update_timesheet
Updates an existing timesheet entry. Only fields listed in FieldsToUpdate will be modified. ProjectIDFK is always required.
upload_file_from_url
Uploads a file to Avaza by fetching it from a public https URL. Returns FileAttachments[] with the new FileAttachmentID. Optionally link the upload inline to a Task, Expense, Estimate, or Invoice by supplying linkToEntityType + linkToEntityId; otherwise the file is created as a Draft. The server fetches the URL with no auth headers and applies SSRF protection (blocks private/loopback/link-local IPs, AWS metadata 169.254.169.254, IPv6 ULA). Max 50 MB download.
https://mcp.avaza.com/mcp