Timix.AI
REMOTE · API.TIMIX.AI · SCANNED AUG 3
Time tracking, live project budgets, and billing exports for service firms.
Available components
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
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
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
claude mcp add --transport http ai-timix-time-tracking https://api.timix.ai/api/integration/v1/mcp
[mcp_servers.ai-timix-time-tracking] url = "https://api.timix.ai/api/integration/v1/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-timix-time-tracking": {
"type": "remote",
"url": "https://api.timix.ai/api/integration/v1/mcp",
"enabled": true
}
}
} openclaw mcp add ai-timix-time-tracking --url https://api.timix.ai/api/integration/v1/mcp --transport streamable-http
mcp_servers:
ai-timix-time-tracking:
url: "https://api.timix.ai/api/integration/v1/mcp" {
"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.
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.
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 |
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.
approve_timesheet ~144
Approve a submitted timesheet period for a team member. The period and its time reports transition to Approved. Use confirm=true to proceed. Requires Manager or Admin/Owner role (Finance is excluded — timesheet approval is PM work, not finance).
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| submission_period_id | string | yes | Id of the submission period to approve (from get_pending_approvals or list_approval_history). |
No output schema declared.
No examples provided.
assign_user_to_customer ~162
Assign an organization member to a billing customer so they can see that customer and all its projects. Requires the org_user_id (discover it with get_project_team or get_employee_timesheet) and the customer_id. The organization is fixed by your context — never pass an organization id. You cannot target a user more privileged than yourself (Owner is not targetable by Admin).
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | string | yes | Id of the customer to assign the user to. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| org_user_id | string | yes | Id of the OrganizationUser to assign (not the Firebase user id — use get_project_team to discover it). |
No output schema declared.
No examples provided.
assign_user_to_project ~175
Assign a member to a project so they can see it and log time against its tasks. Identify the member by email (preferred) or by org_user_id, and the project by project_id (discover ids with find_billing_work - never ask the user for an id). The organization is fixed by your context.
| Name | Type | Req | Description |
|---|---|---|---|
| string | — | Email of the member to assign (preferred). Provide this OR org_user_id. | |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| org_user_id | string | — | Organization-user id of the member to assign. Provide this OR email. |
| project_id | string | yes | Id of the project to assign the member to (required). Must be a project in your organization. |
No output schema declared.
No examples provided.
bulk_create_time_reports ~141
Create multiple time entries in one call. Supply an 'entries' array where each item has subtask_id, date (YYYY-MM-DD), and hours (> 0 and ≤ 24); optionally start_time (HH:mm, defaults to 09:00) and text. Entries are always attributed to you. Returns per-item results (partial failures are reported rather than aborting the batch). Max 50 entries.
| Name | Type | Req | Description |
|---|---|---|---|
| entries | array | yes | List of time entries to create (max 50). |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
No output schema declared.
No examples provided.
bulk_update_cost_rates ~204
Apply an organization-wide adjustment to every member's hourly COST rate, effective from a date. Supply EITHER adjustment_percentage (e.g. 5 to raise all rates by 5%, -3 to cut 3%) OR fixed_amount (set every rate to this exact amount), not both. The organization is fixed by your context - never pass an organization id. Rate values are never echoed back.
| Name | Type | Req | Description |
|---|---|---|---|
| adjustment_percentage | number | — | Percentage to adjust every rate by (e.g. 5 = +5%, -3 = -3%). Provide this OR fixed_amount, not both. |
| effective_from | string | yes | Date the adjusted rates take effect (YYYY-MM-DD) (required). |
| fixed_amount | number | — | Set every rate to this exact amount. Provide this OR adjustment_percentage, not both. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
No output schema declared.
No examples provided.
bulk_update_time_reports ~131
Apply a common text description update to multiple of your own time entries. Supply ids (list of time-report ids, max 100) and text (the new description). Returns per-id results — partial failures are reported rather than aborting the whole batch.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| ids | array | yes | Ids of the time entries to update (max 100). |
| text | string | yes | New description to apply to all entries (max 1000 characters). |
No output schema declared.
No examples provided.
cancel_invite ~116
Cancel a pending invitation so the invite link is no longer valid. The email address can be re-invited at any time. Returns a preview unless confirm=true is set.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| invite_id | string | yes | Id of the pending invitation to cancel. |
No output schema declared.
No examples provided.
cancel_scheduled_report ~95
Permanently delete a scheduled report definition. Requires confirm=true to proceed.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| id | string | yes | Id of the scheduled report to delete. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
No output schema declared.
No examples provided.
cancel_timer ~62
Cancel (discard) your running timer without creating a time entry. The elapsed time is lost. No arguments needed.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
No output schema declared.
No examples provided.
change_user_role ~160
Change an organization member's role. Returns a preview; re-call with the confirm_token and an idempotency_key to commit. Cannot assign the Owner role. Cannot escalate beyond your own role.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm_token | string | — | Token returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes. |
| idempotency_key | string | — | Required when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice. |
| new_role | string | yes | New role to assign: Admin, Finance, Manager, Member, or Viewer. |
| org_user_id | string | yes | Id of the OrganizationUser record to update (not the Firebase userId). |
No output schema declared.
No examples provided.
check_budget_limits ~65
Check whether logging additional hours on a subtask would exceed its budget limits. Returns whether the budget is exceeded and a message.
| Name | Type | Req | Description |
|---|---|---|---|
| additional_hours | number | yes | Hours to check against the budget limit. |
| sub_task_id | string | yes | Id of the subtask to check. |
No output schema declared.
No examples provided.
close_frame_order ~119
Close an Open frame order so no new invoices may link to it. Returns a preview unless confirm=true is set. Closing is not directly reversible; the order remains in the Closed state.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| frame_order_id | string | yes | Id of the frame order to close. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
No output schema declared.
No examples provided.
close_month ~158
Close a billing month so no further time can be logged or edited in it. Call once with no token to preview; re-call with the returned confirm_token and an idempotency_key to commit. Reversible only by reopening the month.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm_token | string | — | Token returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes. |
| idempotency_key | string | — | Required when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice. |
| month | integer | yes | Calendar month to close (1-12). |
| year | integer | yes | Calendar year of the month to close (e.g. 2026). |
No output schema declared.
No examples provided.
commit_import ~94
Commit a bulk-import CSV, creating the work hierarchy (customers, projects, tasks, subtasks) in the organization. Call validate_import first to verify the file.
| Name | Type | Req | Description |
|---|---|---|---|
| csv_content | string | yes | The CSV content to import. Must pass validate_import with no errors first. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
No output schema declared.
No examples provided.
copy_period ~184
Copy your own time entries from a source date range into a target date range, preserving each entry's weekday offset relative to the source start (e.g. copy last week to this week). New entries are created as Draft. The source range cannot exceed 31 days. Supply source_start_date, source_end_date, and target_start_date (all ISO 8601 YYYY-MM-DD).
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| source_end_date | string | yes | Inclusive end of the range to copy FROM (YYYY-MM-DD). |
| source_start_date | string | yes | Inclusive start of the range to copy FROM (YYYY-MM-DD). |
| target_start_date | string | yes | The first date of the target range (source_start_date maps here, YYYY-MM-DD). |
No output schema declared.
No examples provided.
create_credit_note ~139
Create a credit note against an existing invoice, reducing the amount owed. Requires Finance role or above.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| credit_amount | number | yes | Total credit amount (required, must be > 0 and ≤ invoice total). |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| invoice_id | string | yes | ID of the invoice to credit (required). |
| reason | string | yes | Reason for the credit note (required). |
No output schema declared.
No examples provided.
create_custom_field ~291
Define a new custom field on a billing entity type (project, task, subtask, time report, or customer) for your organization. The organization is fixed by your context - never pass an organization id. type is one of String, Number, Date, DateTime, ListOfValues; ListOfValues requires at least one option. Marking a field mandatory blocks creating that entity type until a value is provided.
| Name | Type | Req | Description |
|---|---|---|---|
| entity | string | yes | The entity type this field is defined on (required). One of: billing_projects, billing_tasks, billing_sub_tasks, sub_tasks_time_reports, billing_customers. |
| field_id | string | yes | A unique, stable key for the field (required, max 50 chars), e.g. "po_number". |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| is_mandatory | boolean | — | Whether a value is required when creating/updating the entity. Defaults to false. |
| list_of_values | array | — | Options for a ListOfValues field (required for that type; at least one non-blank option). |
| title | string | yes | Human-readable label shown in the UI (required). |
| type | string | yes | Field data type (required). One of: String, Number, Date, DateTime, ListOfValues. |
No output schema declared.
No examples provided.
create_customer ~135
Create a new billing customer in your organization. The organization is fixed by your context - never pass an organization id.
| Name | Type | Req | Description |
|---|---|---|---|
| contact_email | string | — | Optional primary contact email address. |
| country | string | — | Optional country. |
| currency | string | — | Optional ISO 4217 currency code (e.g. USD, EUR). Defaults to USD. |
| description | string | — | Optional customer description (max 200 characters). |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| name | string | yes | Customer name (required). |
No output schema declared.
No examples provided.
create_favorite ~136
Save a time-entry combination as a favorite for quick reuse. Returns the created favorite.
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | string | yes | Customer id. |
| description | string | — | Default time-entry description (optional). |
| display_name | string | yes | Short label for the favorite (e.g. 'Daily standup on Acme'). |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| project_id | string | yes | Project id. |
| sub_task_id | string | yes | Subtask id. |
| task_id | string | yes | Task id. |
No output schema declared.
No examples provided.
create_frame_order ~271
Create a new Open frame order (blanket PO / commercial envelope) for a customer. A frame order tracks a contracted hours or amount cap that invoices can draw down against. Reversible — the frame order can be deleted while it is still Open.
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | — | ISO 4217 currency code (e.g. USD). Defaults to the customer's currency when omitted. |
| customer_id | string | yes | Id of the customer this frame order belongs to. |
| description | string | — | Optional human-readable description (max 500 chars). |
| end_date | string | — | Optional end date in YYYY-MM-DD format (must be >= start_date). |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| notes | string | — | Optional free-text notes (max 2000 chars). |
| reference | string | yes | Unique reference string per (org, customer), e.g. 'PO-2026-001'. Max 100 chars. |
| start_date | string | — | Optional start date in YYYY-MM-DD format. |
| total_amount | number | — | Optional contracted amount cap (must be > 0). |
| total_hours | number | — | Optional contracted hours cap (must be > 0). |
No output schema declared.
No examples provided.
create_holiday_profile ~411
Create and SAVE a national-holiday profile for the organization for a specific year, AFTER the user has explicitly reviewed and confirmed the holiday list. Each holiday is either a full day off or a half/partial working day (with a start/end working window). Holiday dates MUST come from suggest_holiday_profile or the user — never invent dates. Only call this once the user has confirmed; do not call it to preview.
| Name | Type | Req | Description |
|---|---|---|---|
| default_for_countries | string | — | Optional comma-separated ISO-2 country codes this profile is the country-default for (for its year), e.g. "US" or "US,CA". |
| holidays | string | yes | A JSON array (as a string) of the confirmed holidays, each an object: {"date":"YYYY-MM-DD","name":"...","full_day_off":true|false,"window_start":"HH:mm","window_end":"HH:mm"}. Dates must be within th… |
| name | string | yes | A descriptive profile name, e.g. "US Holidays 2026" or "Israel 2026". |
| notes | string | — | Optional free-text notes about this profile. |
| set_as_default | boolean | — | Optional. Set this profile as the organization's default holiday set for its year. |
| source | string | — | Provenance of the dates: "hebcal", "nager", "manual", or "ai". Use the source returned by suggest_holiday_profile. |
| year | integer | yes | The calendar year this profile governs (e.g. 2026). It applies only to its year. |
No output schema declared.
No examples provided.
create_project ~215
Create a new billing project under one of your customers. The organization is fixed by your context; customer_id must be a customer in your organization. Discover ids with find_billing_work - never ask the user for an id.
| Name | Type | Req | Description |
|---|---|---|---|
| billing_type | string | yes | Billing type to allow on the project (required). One of: TM, Fix, OVH. |
| create_general_activity | boolean | — | Optional. When true (the default for this tool), also create a default visible "General" task + activity so time can be logged on the project immediately. Set false to create an empty project with no… |
| customer_id | string | yes | Id of the customer this project belongs to (required). Must be a customer in your organization. |
| description | string | — | Optional project description (max 500 characters). |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| name | string | yes | Project name (required). |
No output schema declared.
No examples provided.
create_scheduled_report ~140
Create a new scheduled report definition. The report will be generated and emailed to recipients on the configured cadence.
| Name | Type | Req | Description |
|---|---|---|---|
| cadence | string | yes | Schedule cadence: Daily, Weekly, or Monthly. |
| format | string | — | Output format: pdf (default) or csv. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| name | string | yes | Name for this scheduled report (max 150 chars). |
| recipients | string | yes | Comma-separated recipient email addresses. |
| report_type | string | yes | Report type: DailySummary or MonthlyHours. |
No output schema declared.
No examples provided.
create_subtask ~140
Create a subtask under a task. All time entries are logged against subtasks, so every task needs at least one. The subtask inherits a valid billing type from the parent task. Discover ids with find_billing_work - never ask the user for an id.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | Optional subtask description. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| name | string | yes | Subtask name (required). |
| task_id | string | yes | Id of the parent task (required). Must be a task in your organization. |
No output schema declared.
No examples provided.
create_task ~178
Create a task under a project. Tasks group the subtasks that time is logged against. The task inherits its allowed billing types from the parent project. Discover ids with find_billing_work - never ask the user for an id.
| Name | Type | Req | Description |
|---|---|---|---|
| create_general_activity | boolean | — | Optional. When true (the default for this tool), also create a default visible "General" activity under the task so time can be logged immediately. Set false to create a task with no activities yet. |
| description | string | — | Optional task description. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| name | string | yes | Task name (required). |
| project_id | string | yes | Id of the parent project (required). Must be a project in your organization. |
No output schema declared.
No examples provided.
create_time_report ~211
Create a new time entry on a subtask for the current user. The entry is always attributed to you — you cannot create entries on behalf of another user. Supply subtask_id, the date (ISO 8601 YYYY-MM-DD), start_time (HH:mm, defaults to 09:00), and hours.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | yes | Date of the work (ISO 8601 YYYY-MM-DD, e.g. 2026-01-15). |
| hours | number | yes | Hours worked (> 0 and ≤ 24). |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| start_time | string | — | Optional start time in 24-h HH:mm (defaults to 09:00). |
| subtask_id | string | yes | Id of the subtask to log time against. |
| text | string | — | Optional description of the work performed (max 1000 characters). |
No output schema declared.
No examples provided.
delete_api_key ~137
Permanently revoke one of your Integration API keys. Any MCP clients or integrations using the key will lose access immediately and cannot be restored. Returns a preview; re-call with the confirm_token and an idempotency_key to commit.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm_token | string | — | Token returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes. |
| idempotency_key | string | — | Required when committing (confirm_token present): retrying with the same key returns the original result instead of acting twice. |
| key_id | string | yes | Id of the API key to permanently revoke. |
No output schema declared.
No examples provided.
delete_custom_field ~128
Delete a custom-field definition from the organization. If the field is mandatory and already has values stored on entities the service will reject the delete with a clear reason. Returns a preview unless confirm=true is set. Admin role required.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| custom_field_id | string | yes | Id of the custom field definition to delete. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
No output schema declared.
No examples provided.
delete_customer ~117
Soft-delete a billing customer and its whole hierarchy (projects, tasks, subtasks) into the recycle bin, where an admin can restore it. Returns a preview unless confirm=true is set.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| customer_id | string | yes | Id of the customer to delete. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
No output schema declared.
No examples provided.
delete_draft_invoice ~111
Delete a DRAFT invoice permanently. Only draft invoices can be deleted; issued invoices are permanent records. Returns a preview unless confirm=true is set.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| invoice_id | string | yes | Id of the draft invoice to delete. |
No output schema declared.
No examples provided.
delete_favorite ~93
Delete a saved time-entry favorite. Requires confirm=true to proceed.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| favorite_id | string | yes | Id of the favorite to delete. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
No output schema declared.
No examples provided.
delete_frame_order ~127
Soft-delete an Open frame order into the recycle bin (restorable by an Admin). Blocked when Issued/Sent/Paid invoices are linked — void or unlink those first. Returns a preview unless confirm=true is set.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| frame_order_id | string | yes | Id of the frame order to delete. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
No output schema declared.
No examples provided.
delete_holiday_profile ~119
Delete a named national-holiday profile from the organization. The year's holidays will no longer be applied to time calculations. Returns a preview unless confirm=true is set. Admin role required.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| holiday_profile_id | string | yes | Id of the holiday profile to delete. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
No output schema declared.
No examples provided.
delete_organization ~131
Soft-delete this organization. All members will be locked out and the org will be hidden until a platform admin restores it within the retention window. Call once with no token to preview; re-call with the returned confirm_token and an idempotency_key to commit. Owner role required.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm_token | string | — | Token returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes. |
| idempotency_key | string | — | Required 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.
delete_project ~112
Soft-delete a billing project and its whole task/subtask hierarchy into the recycle bin, where an admin can restore it. Returns a preview unless confirm=true is set.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| project_id | string | yes | Id of the project to delete. |
No output schema declared.
No examples provided.
delete_subtask ~109
Soft-delete a billing subtask into the recycle bin, where an admin can restore it. Returns a preview unless confirm=true is set.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| subtask_id | string | yes | Id of the subtask to delete. |
No output schema declared.
No examples provided.
delete_task ~110
Soft-delete a billing task and its subtask hierarchy into the recycle bin, where an admin can restore it. Returns a preview unless confirm=true is set.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| task_id | string | yes | Id of the task to delete. |
No output schema declared.
No examples provided.
delete_time_report ~118
Delete a time report entry. Members can delete their own reports; Managers/Admins can delete others' (subject to org settings). Returns a preview unless confirm=true is set.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| time_report_id | string | yes | Id of the time report entry to delete. |
No output schema declared.
No examples provided.
delete_work_schedule ~116
Delete a named organization work schedule profile. Users assigned to this schedule will fall back to the default schedule. Returns a preview unless confirm=true is set. Admin role required.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| work_schedule_id | string | yes | Id of the work schedule to delete. |
No output schema declared.
No examples provided.
disable_user ~145
Disable an organization member so they can no longer sign in or use the app. Reversible — the user can be re-enabled from the web application. Returns a preview unless confirm=true is set.
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | — | Set true to perform the action. Omit or false returns a preview only — nothing is written. |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| org_user_id | string | yes | Id of the OrganizationUser record to disable (not the Firebase userId). |
| reason | string | — | Optional reason for disabling the user (stored for audit purposes). |
No output schema declared.
No examples provided.
enable_user ~103
Re-enable a previously disabled organization member so they can log in and use the platform again. Requires the org_user_id. The organization is fixed by your context — never pass an organization id. You cannot target a user more privileged than yourself.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| org_user_id | string | yes | Id of the OrganizationUser to enable. |
No output schema declared.
No examples provided.
find_billing_work ~121
Find the projects, tasks and subtasks in your organization where time can be tracked, optionally filtered by a name fragment. Use this to locate where to record work. Returns ids and names only.
| Name | Type | Req | Description |
|---|---|---|---|
| max_results | integer | — | Optional maximum number of rows to return (1-50, default 50). |
| project_id | string | — | Optional project id to drill into. When supplied, returns that project's tasks and subtasks. |
| query | string | — | Optional case-insensitive name fragment to filter projects (or tasks when project_id is supplied). |
No output schema declared.
No examples provided.
generate_invoice ~223
Generate a DRAFT invoice from a customer's approved billable hours over a billing period. The draft is editable and can be deleted before it is issued.
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | string | yes | Id of the customer to invoice. |
| due_date | string | — | Optional explicit due date (ISO 8601). Overrides payment_terms-based calculation. |
| grouping | string | — | How to group approved hours into line items: "project" (default) or "task". |
| idempotency_key | string | — | Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice. |
| notes | string | — | Optional notes to include on the invoice. |
| payment_terms | string | — | Payment terms string, e.g. "Net 30" (default). |
| period_end | string | yes | Billing period end date (ISO 8601, e.g. 2026-05-31). |
| period_start | string | yes | Billing period start date (ISO 8601, e.g. 2026-05-01). |
No output schema declared.
No examples provided.
get_billing_report ~67
Get billing summary for a customer over a date range
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | string | yes | The customer ID to get billing report for |
| end_date | string | yes | End date in YYYY-MM-DD format |
| start_date | string | yes | Start date in YYYY-MM-DD format |
No output schema declared.
No examples provided.
get_budget_alerts ~26
Get all budget alerts for the organization showing projects that are over or near budget
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_budget_health ~40
Get overall budget health summary for the organization, including project counts by status (on-track, warning, critical), total remaining budget hours, and active alerts
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_cost_rate_history ~48
Get the cost-rate history for a specific user in the organization. Requires Finance role or higher.
| Name | Type | Req | Description |
|---|---|---|---|
| user_id | string | yes | Firebase UID of the user whose cost-rate history to retrieve. |
No output schema declared.
No examples provided.
get_customer_info ~39
Get detailed information about a customer including health score and portfolio
| Name | Type | Req | Description |
|---|---|---|---|
| customer_id | string | yes | The unique identifier of the customer to retrieve information for |
No output schema declared.
No examples provided.
get_dashboard_metrics ~55
Get organization dashboard metrics including utilization, revenue, and active projects
| Name | Type | Req | Description |
|---|---|---|---|
| month | string | — | Month to get metrics for in YYYY-MM format (e.g. 2026-01). Defaults to current month if not provided. |
No output schema declared.
No examples provided.
get_employee_timesheet ~99
Get an employee's timesheet report showing target hours, actual hours logged, and variance. Can look up by employee name or default to the requesting user.
| Name | Type | Req | Description |
|---|---|---|---|
| employee_name | string | — | Name of the employee to look up. Leave empty or say 'me' for your own timesheet. |
| end_date | string | yes | End date in YYYY-MM-DD format |
| start_date | string | yes | Start date in YYYY-MM-DD format |
No output schema declared.
No examples provided.