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

Timix.AI

REMOTE · API.TIMIX.AI

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

Available components

0 this week 90 Trust /100

Last scanned (9 hours ago)

Scores higher than 98% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Finance and Payments

Trust breakdown (7 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 → Why this is hard to score →

Endpoint Security94
Transport & Reachability100
Schema Quality & AI Usability75
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 16833 tokens (~147/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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
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
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 19 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "recall_timesheet" implies "withdraw" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 115 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
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.

  • 4 Nov 26 0
    • Tool “remove_user_from_customer” rewrote its description, which is the text the model reads security
    • “get_employee_timesheet” reworded the description of “employee_name” cosmetic
    • “search” reworded the description of “query” cosmetic
  • 3 Nov 26 0
    • Tool “disable_user” rewrote its description, which is the text the model reads security
    • Tool “stop_timer” rewrote its description, which is the text the model reads security
  • 2 Nov 26 0
    • Tool “find_billing_work” rewrote its description, which is the text the model reads security
    • “find_billing_work” reworded the description of “query” cosmetic
  • 26 Oct 26 0
    • Tool “invite_user” rewrote its description, which is the text the model reads security
  • 14 Oct 26 0
    • Tool “list_my_time_entries” rewrote its description, which is the text the model reads security
    • “create_time_report” reworded the description of “start_time” cosmetic
    • “delete_time_report” reworded the description of “time_report_id” cosmetic
    • “log_time” reworded the description of “start_time” cosmetic
    • “update_time_report” reworded the description of “time_report_id” cosmetic
  • 13 Oct 26 0
    • Tool “bulk_create_time_reports” rewrote its description, which is the text the model reads security
    • Tool “create_time_report” rewrote its description, which is the text the model reads security
    • “create_time_report” reworded the description of “start_time” cosmetic
    • “log_time” reworded the description of “start_time” cosmetic
  • 12 Oct 26 0
    • Tool “find_billing_work” rewrote its description, which is the text the model reads security
    • “find_billing_work” reworded the description of “query” cosmetic
  • 10 Oct 26 +2
    • HSTS header: fail → pass ▲ security
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 5 Nov 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 19 Oct 2026 18 Jan 2027 RSA 2048 SHA256-RSA 438271f15d2f03a12ca4ef915718d2c
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

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.timix.ai. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 1814, 3799 8, 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
strict-transport-security max-age=31536000; includeSubDomains; preload
content-security-policy default-src 'self'; script-src 'self' 'nonce-6D2C+bxKNuyp0Kxjsp0pqg==' 'self'; style-src 'self' 'nonce-6D2C+bxKNuyp0Kxjsp0pqg==' 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

Background: How OAuth 2.1 works in the 2026 MCP spec →

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 · ~16,789 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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

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_idstring–Filter by customer id (optional).
statusstring–Filter 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)
scopestring–Scope 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 ~227

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). Once the user confirms, the invitation is created and the invitee is emailed an acceptance link. The result's mail_sent says whether that email went out: say the invitation was emailed ONLY when mail_sent is true. When mail_sent is false the invitation exists but its email could not be sent - say so, and that an admin can resend it or copy its link from the Users page.

NameTypeReqDescription
emailstringyesEmail address of the person to invite (required).
idempotency_keystring–Optional 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_tokenstring–Token returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keystring–Required 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_idstring–Optional: filter by customer ID.
page_numberinteger–Page number, 1-based (default 1).
page_sizeinteger–Number of results per page (default 20, max 100).
statusstring–Optional: filter by invoice status (e.g. Draft, Issued, Paid, Void).

No output schema declared.

No examples provided.

list_my_time_entries ~195

List the current user's own individual time entries for a date range: for each, its time_report_id (what update_time_report and delete_time_report take), date, start and end time of day on the organization's clock, project and subtask names and ids, hours, description, billable flag and status. Use this to see exactly what was logged (the per-entry detail), as opposed to aggregated totals, and to find the entry the user wants to change or delete.

NameTypeReqDescription
end_datestringyesEnd date of the range (ISO 8601 format, e.g. 2026-01-31)
limitinteger–Optional 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_idstring–Optional 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_typestring–Filter by type: Customer, Project, Task, or SubTask. Omit for all types.
pagenumber–1-based page number (default 1).
page_sizenumber–Items 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 ~264

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_timestring–Optional 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.
textstring–Optional 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_hoursnumber–Standard daily working hours for a simple schedule (e.g. 8).
idempotency_keystring–Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
is_activeboolean–Whether this schedule is active (create/update).
namestring–Optional schedule notes/name.
schedule_idstring–Id 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
confirmboolean–Set true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keystring–Optional 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_datestring–Optional 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
confirmboolean–Set true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keystring–Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
invoice_idstring–Optional 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_keystring–Optional 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_keystring–Optional 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_keystring–Optional 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_tokenstring–Token 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_keystring–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.

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_keystring–Optional 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_tokenstring–Token returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keystring–Required 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.
confirmboolean–Set true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keystring–Optional 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_tokenstring–Token returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keystring–Required 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 ~137

Remove a user's assignment from a customer, revoking their access to the customer's projects and tasks. You cannot target a user more privileged than yourself. Requires confirm=true to proceed.

NameTypeReqDescription
confirmboolean–Set 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_keystring–Optional 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_keystring–Optional 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_tokenstring–Token returned by the preview (call this tool once with no token to get it). Required to commit; expires in ~10 minutes.
idempotency_keystring–Required 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
commentstring–Optional comment explaining why the period is being reopened. Shown to the reporter.
confirmboolean–Set true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keystring–Optional 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_keystring–Optional 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_keystring–Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice.

No output schema declared.

No examples provided.

search ~182

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

NameTypeReqDescription
limitnumber–Maximum results to return (default 30).
querystringyesSearch text — matches by entity id (prefix) and name (contains). To find a PERSON (a member), pass their name exactly as the user wrote it, in the script they wrote it - do not translate or translite…

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
confirmboolean–Set true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keystring–Optional 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_percentinteger–Utilization % at which a project is flagged Over-Budget (must be greater than the warning threshold, 2-100).
budget_warning_threshold_percentinteger–Utilization % at which a project is flagged At-Risk (must be less than the critical threshold, 1-99).
idempotency_keystring–Optional 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_keystring–Optional 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_countriesstring–Optional comma-separated ISO-2 country codes this profile is the default for, e.g. "US,CA".
first_day_of_weekinteger–First day of the week: 0=Sunday .. 6=Saturday (1=Monday default).
idempotency_keystring–Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
is_activeboolean–Whether the profile is active. Defaults to true on create.
namestring–Schedule name (required when creating).
notesstring–Optional free-text notes.
schedule_idstring–Id of an existing schedule to UPDATE. Omit to CREATE a new one.
weekly_schedulestring–A 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
currencystring–Optional ISO 4217 currency code (e.g. USD, EUR). Defaults to USD.
effective_fromstring–Optional date this rate takes effect (YYYY-MM-DD). Defaults to today.
effective_tostring–Optional date this rate stops applying (YYYY-MM-DD). Omit for an open-ended rate.
hourly_ratenumberyesThe hourly cost rate, a positive number (required).
idempotency_keystring–Optional 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
descriptionstring–Optional description of the work being tracked.
idempotency_keystring–Optional 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 ~78

Stop your running timer (a paused one too). The time it ran - its pauses left out - is saved as a Draft time entry automatically. Returns the created time entry. No arguments needed.

NameTypeReqDescription
idempotency_keystring–Optional 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_keystring–Optional 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
confirmboolean–Set true to perform the action. Omit or false returns a preview only — nothing is written.
idempotency_keystring–Optional 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_keystring–Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
is_mandatoryboolean–Whether a value is required when creating/updating the entity.
list_of_valuesarray–New options (for a ListOfValues field; at least one non-blank option).
titlestring–New human-readable label.
typestring–New 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_emailstring–Primary contact email address.
contact_namestring–Primary contact person name.
contact_phonestring–Primary contact phone number.
countrystring–Customer country.
currencystring–ISO 4217 currency code (e.g. USD, EUR).
customer_idstringyesId of the customer to update (required). Must be a customer in your organization.
descriptionstring–Customer description (max 200 characters).
idempotency_keystring–Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
namestring–New customer name (2-50 characters).
statusstring–Customer 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_datestring–Due date override (ISO 8601).
idempotency_keystring–Optional caller-supplied key; retrying with the same key returns the original result instead of acting twice.
internal_notesstring–Internal notes (not on the printed invoice).
invoice_idstringyesId of the draft invoice to update.
notesstring–Notes to appear on the invoice.
payment_instructionsstring–Bank / payment instructions for the customer.
payment_termsstring–Payment terms, e.g. "Net 30".
purchase_order_numberstring–Customer PO number to reference on the invoice.

No output schema declared.

No examples provided.

Install

How do I install the Timix.AI MCP server?

Timix.AI is a hosted endpoint at https://api.timix.ai/api/integration/v1/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

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'
Common questions

What is the Timix.AI MCP server?

Timix.AI is an MCP server listed in the public MCP registry as ai.timix/time-tracking. Time tracking, live project budgets, and billing exports for service firms. This page covers its hosted endpoint (https://api.timix.ai/api/integration/v1/mcp).

Is the Timix.AI MCP server safe to use?

Timix.AI scores 90 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Timix.AI MCP server expose?

Timix.AI exposes 114 tools: get_hours_summary, get_dashboard_metrics, get_customer_info, get_project_status, get_billing_report, and 109 more. Their descriptions and schemas cost roughly 16,789 tokens of context every time the server is loaded.

Does the Timix.AI MCP server require authentication?

Yes. Timix.AI asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Timix.AI MCP server still maintained?

Timix.AI is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.