Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

Timix.AI

REMOTE · API.TIMIX.AI · SCANNED AUG 3

Time tracking, live project budgets, and billing exports for service firms.

Available components

+6 this week 75 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability63
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 16024 tokens (~140/item across 114 items; 114 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · api.timix.ai

# add to Claude Code
claude mcp add --transport http ai-timix-time-tracking https://api.timix.ai/api/integration/v1/mcp
# ~/.codex/config.toml
[mcp_servers.ai-timix-time-tracking]
url = "https://api.timix.ai/api/integration/v1/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-timix-time-tracking": {
      "type": "remote",
      "url": "https://api.timix.ai/api/integration/v1/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add ai-timix-time-tracking --url https://api.timix.ai/api/integration/v1/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  ai-timix-time-tracking:
    url: "https://api.timix.ai/api/integration/v1/mcp"
// mcp.json
{
  "mcpServers": {
    "ai-timix-time-tracking": {
      "type": "http",
      "url": "https://api.timix.ai/api/integration/v1/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 2 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +5
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −2
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 69

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://api.timix.ai/api/integration/v1/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=api.timix.ai CN=WR3,O=Google Trust Services,C=US 1 Jul 2026 29 Sept 2026 RSA 2048 SHA256-RSA 9a8126b91b1bfeb909ff0edf4643fc6a
SANs: api.timix.ai
CN=WR3,O=Google Trust Services,C=US (CA) CN=GTS Root R1,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 RSA 2048 SHA256-RSA 7ff005a91568d63abc22861684aa4b5a
CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 19 Jun 2020 28 Jan 2028 RSA 4096 SHA256-RSA 77bd0d6cdb36f91aea210fc4f058d30d
DNSSEC insecure

Validation of api.timix.ai. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 3799 8 Verified
timix.ai. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://api.timix.ai/.well-known/oauth-protected-resource/api/integration/v1/mcp"

Bearer resource_metadata="https://api.timix.ai/.well-known/oauth-protected-resource/api/integration/v1/mcp"
Header Value
content-security-policy default-src 'self'; script-src 'self' 'nonce-CoIExtzimYUJeaGXSpwQ9Q==' 'self'; style-src 'self' 'nonce-CoIExtzimYUJeaGXSpwQ9Q==' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https:; connect-src 'self' 'self' https://api.timix.ai wss://api.timix.ai; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests;
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), display-capture=(), document-domain=(), encrypted-media=(), execution-while-not-rendered=(), execution-while-out-of-viewport=(), fullscreen=(self), geolocation=(), gyroscope=(), layout-animations=(self), legacy-image-formats=(), magnetometer=(), microphone=(), midi=(), navigation-override=(), oversized-images=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), sync-xhr=(), usb=(), vr=(), wake-lock=(), screen-wake-lock=(), web-share=(), xr-spatial-tracking=()

Protected resource metadata

Document https://api.timix.ai/.well-known/oauth-protected-resource/api/integration/v1/mcp
Retrieved Yes
Resource https://api.timix.ai/api/integration/v1/mcp
Authorisation server https://api.timix.ai
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.timix.ai/api/integration/v1/mcp Verified 200
http (plaintext) http://api.timix.ai/api/integration/v1/mcp HTTPS enforced 302 https://api.timix.ai/api/integration/v1/mcp
MCP tools — 114 exposed · ~15,980 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
get_frame_order_utilization ~74

Report each frame order's contracted cap vs billed draw-down vs remaining, for both hours and amount, with utilization percentage. Optionally filtered by customer and/or status.

NameTypeReqDescription
customer_idstringFilter by customer id (optional).
statusstringFilter by status: Open or Closed (optional).

No output schema declared.

No examples provided.

get_hours_summary ~119

Get a summary of hours logged for a user or team over a date range

NameTypeReqDescription
end_datestringyesEnd date for the summary period (ISO 8601 format, e.g. 2026-01-31)
scopestringScope of the summary: 'user' for individual user hours, 'team' for organization-wide overview. Defaults to 'user'.
start_datestringyesStart date for the summary period (ISO 8601 format, e.g. 2026-01-01)

No output schema declared.

No examples provided.

get_import_template ~41

Return the CSV template for bulk-importing the work hierarchy (customers, projects, tasks, subtasks). Fill the template and call validate_import before commit_import.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_invoice ~35

Get the full details of a specific invoice by ID.

NameTypeReqDescription
invoice_idstringyesID of the invoice to retrieve (required).

No output schema declared.

No examples provided.

get_my_time_entries ~105

Get the current user's time entry analytics for a date range, including hours breakdown by project and customer, billable vs non-billable split, and target comparison

NameTypeReqDescription
end_datestringyesEnd date for the analytics period (ISO 8601 format, e.g. 2026-01-31)
start_datestringyesStart date for the analytics period (ISO 8601 format, e.g. 2026-01-01)

No output schema declared.

No examples provided.

get_project_status ~40

Get detailed project status including budget, hours, and task breakdown

NameTypeReqDescription
project_idstringyesThe unique identifier of the project to retrieve status for

No output schema declared.

No examples provided.

get_project_team ~121

Get the people associated with a project: who is ASSIGNED to it (formally responsible / accountable) and the TOP CONTRIBUTORS by hours logged (who is actually doing the work and driving the budget/overrun). Use this to answer 'who is responsible for / working on a project', especially when a project is over budget. Budget-alert results include the project_id you can pass directly into this tool.

NameTypeReqDescription
project_idstringyesThe unique identifier of the project. Resolve a project name to its ID with find_billing_work or list_projects first.

No output schema declared.

No examples provided.

get_resource_utilization ~95

Get team resource utilization summary showing target hours, actual hours, billable hours, and utilization percentage for the organization

NameTypeReqDescription
end_datestringyesEnd date for the utilization period (ISO 8601 format, e.g. 2026-01-31)
start_datestringyesStart date for the utilization period (ISO 8601 format, e.g. 2026-01-01)

No output schema declared.

No examples provided.

get_unbilled_time ~38

Get a summary of unbilled time across the organization, including total hours, total amount, number of entries, and aging information

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

invite_user ~160

Invite a person to join your organization by email at a chosen role. The organization is fixed by your context - never pass an organization id. Valid roles: Admin, Finance, Manager, Member, Viewer (you can only invite at a role no more privileged than your own). The invitee receives an email with an acceptance link.

NameTypeReqDescription
emailstringyesEmail address of the person to invite (required).
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
rolestringyesRole to grant on acceptance (required). One of: Admin, Finance, Manager, Member, Viewer. You cannot invite at a role more privileged than your own.

No output schema declared.

No examples provided.

issue_invoice ~152

Issue a Draft invoice: assigns a gapless invoice number, locks the invoice as immutable, and marks source hours as Invoiced. IRREVERSIBLE — corrections require void + reissue. Call once with no token to preview; re-call with the returned confirm_token and an idempotency_key to commit.

NameTypeReqDescription
confirm_tokenstringToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keystringRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.
invoice_idstringyesId of the Draft invoice to issue.

No output schema declared.

No examples provided.

list_customers ~16

List all customers in the organization

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_favorites ~22

List the current user's saved time-entry favorites (quick-entry shortcuts).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_invoices ~100

List invoices for your organization, optionally filtered by customer and status.

NameTypeReqDescription
customer_idstringOptional: filter by customer ID.
page_numberintegerPage number, 1-based (default 1).
page_sizeintegerNumber of results per page (default 20, max 100).
statusstringOptional: filter by invoice status (e.g. Draft, Issued, Paid, Void).

No output schema declared.

No examples provided.

list_my_time_entries ~152

List the current user's own individual time entries for a date range, with project name, task/subtask ids, hours, description, billable flag and status. Use this to see exactly what was logged (the per-entry detail), as opposed to aggregated totals.

NameTypeReqDescription
end_datestringyesEnd date of the range (ISO 8601 format, e.g. 2026-01-31)
limitintegerOptional maximum number of entries to return (1-200, default 200). Entries are returned most-recent first.
start_datestringyesStart date of the range (ISO 8601 format, e.g. 2026-01-01)

No output schema declared.

No examples provided.

list_projects ~37

List all projects in the organization with their status and budget information

NameTypeReqDescription
customer_idstringOptional customer ID to filter projects by customer

No output schema declared.

No examples provided.

list_recycle_bin ~88

List soft-deleted entities currently in the recycle bin, optionally filtered by entity type and paged.

NameTypeReqDescription
entity_typestringFilter by type: Customer, Project, Task, or SubTask. Omit for all types.
pagenumber1-based page number (default 1).
page_sizenumberItems per page (default 20).

No output schema declared.

No examples provided.

list_scheduled_reports ~19

List all scheduled report definitions for the organization.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

log_time ~189

Create a single time entry on a subtask for the current user. Requires permission to log time.

NameTypeReqDescription
datestringyesDate of the work (ISO 8601 format, e.g. 2026-01-15).
hoursnumberyesNumber of hours worked (greater than 0 and at most 24).
start_timestringOptional start time of day in 24-hour HH:mm (e.g. "12:00"). Set this when the user gives a specific time or a time range (and put the range length in 'hours'); the entry then runs from this time for…
subtask_idstringyesId of the subtask to log time against. All time entries are recorded at the subtask level.
textstringOptional description of the work performed.

No output schema declared.

No examples provided.

manage_user_work_schedule ~200

Manage YOUR OWN personal work schedule. action is one of: create, update, delete, assign (assign = make a schedule your active one). For update/delete/assign, provide schedule_id. default_hours is your standard daily hours (for a simple schedule). The organization is fixed by your context, and you can only manage your own schedule.

NameTypeReqDescription
actionstringyesWhat to do (required): create, update, delete, or assign.
default_hoursnumberStandard daily working hours for a simple schedule (e.g. 8).
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
is_activebooleanWhether this schedule is active (create/update).
namestringOptional schedule notes/name.
schedule_idstringId of your schedule (required for update, delete, assign).

No output schema declared.

No examples provided.

mark_invoice_paid ~130

Mark an issued or sent invoice as Paid. Optionally record the paid amount and payment date. Returns a preview unless confirm=true is set.

NameTypeReqDescription
confirmbooleanSet true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
invoice_idstringyesId of the invoice to mark as paid.
paid_datestringOptional payment date (ISO 8601). Defaults to today.

No output schema declared.

No examples provided.

mark_time_invoiced ~137

Mark one or more time reports as invoiced, optionally linking them to an existing invoice. Requires Manager role or above.

NameTypeReqDescription
confirmbooleanSet true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
invoice_idstringOptional ID of an existing invoice to link these time reports to.
time_report_idsarrayyesList of time report IDs to mark as invoiced (required, at least one).

No output schema declared.

No examples provided.

move_project ~108

Move a billing project to a different customer within your organization. Both the project and the destination customer must belong to your organization. Requires Manager role or above.

NameTypeReqDescription
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
new_customer_idstringyesID of the destination customer (required, must belong to your organization).
project_idstringyesID of the project to move (required).

No output schema declared.

No examples provided.

move_subtask ~112

Move a subtask to a different task within your organization. Both the subtask and the destination task must belong to your organization. Requires Manager role or above.

NameTypeReqDescription
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
new_task_idstringyesID of the destination task (required, must belong to your organization).
subtask_idstringyesID of the subtask to move (required).

No output schema declared.

No examples provided.

move_task ~108

Move a task to a different billing project within your organization. Both the task and the destination project must belong to your organization. Requires Manager role or above.

NameTypeReqDescription
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
new_project_idstringyesID of the destination project (required, must belong to your organization).
task_idstringyesID of the task to move (required).

No output schema declared.

No examples provided.

permanent_delete_entity ~196

Permanently and IRREVERSIBLY hard-delete an entity from the recycle bin. The entity and all its children are removed from the database — this cannot be undone. Requires Admin role. Call once with no token to preview; re-call with the returned confirm_token and an idempotency_key to commit. entity_type must be one of: Customer, Project, Task, SubTask.

NameTypeReqDescription
confirm_tokenstringToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
entity_idstringyesId of the recycle-bin entity to permanently delete.
entity_typestringyesType of entity to permanently delete. One of: Customer, Project, Task, SubTask.
idempotency_keystringRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.

No output schema declared.

No examples provided.

recall_timesheet ~123

Withdraw your submitted timesheet for a given month back to Draft (un-submit), reopening entries for editing. Only valid while the period is Submitted — after approval ask a manager to reopen it. Supply year and month (1-12).

NameTypeReqDescription
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
monthintegeryesCalendar month to recall (1-12).
yearintegeryesCalendar year of the month to recall (e.g. 2026).

No output schema declared.

No examples provided.

reissue_invoice ~167

Void an issued invoice and clone it into a new editable Draft (void + reissue). The original is voided and retained for audit; the new Draft can be edited then re-issued. The void is IRREVERSIBLE. Call once with no token to preview; re-call with the returned confirm_token and an idempotency_key to commit.

NameTypeReqDescription
confirm_tokenstringToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keystringRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.
invoice_idstringyesId of the issued invoice to void and reissue as a new Draft.

No output schema declared.

No examples provided.

reject_timesheet ~178

Reject a submitted timesheet period, returning it to the reporter for correction. The period and its time reports revert to Rejected (editable). A rejection comment is required. Use confirm=true to proceed. Requires Manager or Admin/Owner role (Finance is excluded — timesheet approval is PM work, not finance).

NameTypeReqDescription
commentstringyesRejection reason shown to the reporter. Required so they know what to fix.
confirmbooleanSet true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
submission_period_idstringyesId of the submission period to reject (from get_pending_approvals or list_approval_history).

No output schema declared.

No examples provided.

remove_user ~143

Permanently remove an organization member. This action is IRREVERSIBLE — the user must be re-invited to rejoin. Returns a preview; re-call with the confirm_token and an idempotency_key to commit.

NameTypeReqDescription
confirm_tokenstringToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keystringRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.
org_user_idstringyesId of the OrganizationUser record to remove (not the Firebase userId).

No output schema declared.

No examples provided.

remove_user_from_customer ~127

Remove a user's assignment from a customer, revoking their access to the customer's projects and tasks. Requires confirm=true to proceed.

NameTypeReqDescription
confirmbooleanSet true to perform the action. Omit or false returns a preview only — nothing is written.
customer_idstringyesId of the customer to remove the user from.
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
org_user_idstringyesOrganizationUsers.Id of the member to unassign.

No output schema declared.

No examples provided.

remove_user_project ~147

Remove an organization member's assignment from a specific project. The user will no longer have direct visibility to that project (they may still see it via a customer assignment). Requires org_user_id and project_id. The organization is fixed by your context — never pass an organization id. You cannot target a user more privileged than yourself.

NameTypeReqDescription
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
org_user_idstringyesId of the OrganizationUser to remove from the project (not the Firebase user id).
project_idstringyesId of the project to remove the user from.

No output schema declared.

No examples provided.

reopen_month ~160

Reopen a previously closed billing month, allowing time to be logged and edited again. Call once with no token to preview; re-call with the returned confirm_token and an idempotency_key to commit. Reversible only by closing the month again.

NameTypeReqDescription
confirm_tokenstringToken returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keystringRequired when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice.
monthintegeryesCalendar month to reopen (1-12).
yearintegeryesCalendar year of the month to reopen (e.g. 2026).

No output schema declared.

No examples provided.

reopen_timesheet ~194

Reopen a Submitted or Approved timesheet period for corrections. The period and its time reports revert to Rejected (editable), allowing the reporter to edit and resubmit. Use this when an approved period needs fixing. An optional comment can be provided. Use confirm=true to proceed. Requires Manager or Admin/Owner role (Finance is excluded — timesheet approval is PM work, not finance).

NameTypeReqDescription
commentstringOptional comment explaining why the period is being reopened. Shown to the reporter.
confirmbooleanSet true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
submission_period_idstringyesId of the submission period to reopen (from get_pending_approvals or list_approval_history).

No output schema declared.

No examples provided.

resend_invite ~99

Re-send a pending invitation email to the invitee and reset its status to Pending. Requires the invite_id (discover it via list of pending invites). The organization is fixed by your context — never pass an organization id.

NameTypeReqDescription
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
invite_idstringyesId of the pending invitation to resend.

No output schema declared.

No examples provided.

restore_entity ~125

Restore a soft-deleted entity (customer, project, task, or subtask) and all its children from the recycle bin. Requires Admin role. entity_type must be one of: Customer, Project, Task, SubTask.

NameTypeReqDescription
entity_idstringyesId of the deleted entity to restore.
entity_typestringyesType of entity to restore. One of: Customer, Project, Task, SubTask.
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.

No output schema declared.

No examples provided.

search ~77

Search the organization's work-structure entities (customers, projects, tasks, subtasks, users) by id or name. Returns a flat, assignment-scoped result list.

NameTypeReqDescription
limitnumberMaximum results to return (default 30).
querystringyesSearch text — matches by entity id (prefix) and name (contains).

No output schema declared.

No examples provided.

send_invoice ~111

Mark an issued invoice as Sent to the customer. The invoice must already be in Issued status. Returns a preview unless confirm=true is set.

NameTypeReqDescription
confirmbooleanSet true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
invoice_idstringyesId of the issued invoice to mark as sent.

No output schema declared.

No examples provided.

set_budget_thresholds ~197

Set the organization-level budget alert thresholds. budget_warning_threshold_percent is the utilization % at which a project is flagged At-Risk; budget_critical_threshold_percent is the % at which it is flagged Over-Budget. The warning threshold must be strictly less than the critical threshold. Supply one or both — only the fields you provide are changed (PATCH semantics). The organization is fixed by your context — never pass an organization id.

NameTypeReqDescription
budget_critical_threshold_percentintegerUtilization % at which a project is flagged Over-Budget (must be greater than the warning threshold, 2-100).
budget_warning_threshold_percentintegerUtilization % at which a project is flagged At-Risk (must be less than the critical threshold, 1-99).
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.

No output schema declared.

No examples provided.

set_custom_field_value ~226

Set the value of a custom field on a specific entity (a project, task, subtask, time report, or customer). The custom field must already be defined for that entity type. The organization is fixed by your context. You must have permission to update the target entity.

NameTypeReqDescription
entitystringyesThe entity type (required). One of: billing_projects, billing_tasks, billing_sub_tasks, sub_tasks_time_reports, billing_customers.
entity_idstringyesId of the specific entity instance to set the value on (required). Must be in your organization.
field_idstringyesThe field_id of the custom field definition (required). Must be defined for this entity type.
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
valuestringyesThe value to set, as a string. It is validated/coerced to the field's declared type (Number, Date, DateTime, or one of the list options).

No output schema declared.

No examples provided.

set_org_work_schedule ~335

Create or update a named organization-level work schedule (a weekly working-time profile). Provide schedule_id to update an existing one, or omit it to create a new one. weekly_schedule is a JSON object mapping lowercase day names to a working window, e.g. {"monday":{"start":"09:00","end":"18:00"},"saturday":null}. The organization is fixed by your context. On update, only the fields you supply are changed.

NameTypeReqDescription
default_for_countriesstringOptional comma-separated ISO-2 country codes this profile is the default for, e.g. "US,CA".
first_day_of_weekintegerFirst day of the week: 0=Sunday .. 6=Saturday (1=Monday default).
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
is_activebooleanWhether the profile is active. Defaults to true on create.
namestringSchedule name (required when creating).
notesstringOptional free-text notes.
schedule_idstringId of an existing schedule to UPDATE. Omit to CREATE a new one.
weekly_schedulestringA JSON object (as a string) mapping lowercase day names (sunday..saturday) to a {"start":"HH:mm","end":"HH:mm"} window, or null for a non-working day. Example: {"monday":{"start":"09:00","end":"18:00…

No output schema declared.

No examples provided.

set_user_cost_rate ~219

Set the internal hourly COST rate for one member of your organization (used for profit/margin reporting). The organization is fixed by your context - never pass an organization id. You cannot set your own cost rate. The rate value is never echoed back.

NameTypeReqDescription
currencystringOptional ISO 4217 currency code (e.g. USD, EUR). Defaults to USD.
effective_fromstringOptional date this rate takes effect (YYYY-MM-DD). Defaults to today.
effective_tostringOptional date this rate stops applying (YYYY-MM-DD). Omit for an open-ended rate.
hourly_ratenumberyesThe hourly cost rate, a positive number (required).
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
user_idstringyesId (or Firebase UID) of the member whose cost rate is being set (required). Must be a member of your organization; cannot be yourself.

No output schema declared.

No examples provided.

start_timer ~130

Start (or replace) your running timer on a subtask. There is at most one running timer per user; starting a new one replaces any existing. Stop it later with stop_timer to create a Draft time entry, or cancel it with cancel_timer to discard it. Supply subtask_id.

NameTypeReqDescription
descriptionstringOptional description of the work being tracked.
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
subtask_idstringyesId of the subtask to track time against.

No output schema declared.

No examples provided.

stop_timer ~68

Stop your running timer. The elapsed time is computed and a Draft time entry is created automatically. Returns the created time entry. No arguments needed.

NameTypeReqDescription
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.

No output schema declared.

No examples provided.

submit_timesheet ~119

Submit your time entries for a given month for manager approval. Draft and Rejected entries in the month are transitioned to Submitted. A billing-closed month cannot be submitted. Supply year and month (1-12).

NameTypeReqDescription
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
monthintegeryesCalendar month to submit (1-12).
yearintegeryesCalendar year of the month to submit (e.g. 2026).

No output schema declared.

No examples provided.

suggest_holiday_profile ~165

Look up the official public/national holidays for a country (ISO-2 code, e.g. US, IL, GB) and year from an authoritative public source (Hebcal for Israel, Nager.Date for everywhere else). Returns a DRAFT list of holiday dates: each is either a full day off or a half/partial working day (with a start/end working window). Use this to PROPOSE a holiday profile — never invent holiday dates from memory. The dates returned are authoritative for that exact year.

NameTypeReqDescription
countrystringyesISO-2 country code (two letters), e.g. "US", "IL", "GB", "DE".
yearintegeryesThe calendar year to look up holidays for (e.g. 2026).

No output schema declared.

No examples provided.

undo_write_off ~128

Reverse the most-recent write-off on a time report, restoring the written-off hours to the billable pool. The billing month must still be open. Requires Finance role or above.

NameTypeReqDescription
confirmbooleanSet true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
time_report_idstringyesID of the time report whose most-recent write-off should be reversed (required).

No output schema declared.

No examples provided.

update_custom_field ~202

Update an existing custom field definition (title, type, options, or mandatory flag) in your organization. The organization is fixed by your context. You cannot change a field's field_id or the entity it applies to. Only the properties you supply are changed.

NameTypeReqDescription
field_definition_idstringyesId of the custom field definition to update (required). Must belong to your organization.
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
is_mandatorybooleanWhether a value is required when creating/updating the entity.
list_of_valuesarrayNew options (for a ListOfValues field; at least one non-blank option).
titlestringNew human-readable label.
typestringNew field data type. One of: String, Number, Date, DateTime, ListOfValues.

No output schema declared.

No examples provided.

update_customer ~217

Update an existing billing customer in your organization. Only the fields you provide are changed; everything else is left as-is (PATCH semantics). Discover ids with find_billing_work - never ask the user for an id.

NameTypeReqDescription
contact_emailstringPrimary contact email address.
contact_namestringPrimary contact person name.
contact_phonestringPrimary contact phone number.
countrystringCustomer country.
currencystringISO 4217 currency code (e.g. USD, EUR).
customer_idstringyesId of the customer to update (required). Must be a customer in your organization.
descriptionstringCustomer description (max 200 characters).
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
namestringNew customer name (2-50 characters).
statusstringCustomer status. One of: Active, Inactive.

No output schema declared.

No examples provided.

update_draft_invoice ~189

Update editable fields on a DRAFT invoice (notes, internal notes, payment terms, payment instructions, due date, purchase order number). Only valid while the invoice is still a Draft.

NameTypeReqDescription
due_datestringDue date override (ISO 8601).
idempotency_keystringOptional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
internal_notesstringInternal notes (not on the printed invoice).
invoice_idstringyesId of the draft invoice to update.
notesstringNotes to appear on the invoice.
payment_instructionsstringBank / payment instructions for the customer.
payment_termsstringPayment terms, e.g. "Net 30".
purchase_order_numberstringCustomer PO number to reference on the invoice.

No output schema declared.

No examples provided.