Skip to main content

MCP tool reference

Every tool the Rize MCP server exposes, with its parameters and defaults.

Read tools never modify anything. Write tools create, update, or delete records in your workspace, and clients that surface MCP annotations will ask you to confirm the destructive ones. Two tools — sign_up and get_login_url — work before you have authenticated; everything else requires a connected account.

Every response includes a _user_timezone field. Use it to interpret and build timestamps rather than assuming UTC. Tools that return lists page with cursor and return has_more and next_cursor.

note

This page is generated from the server's tool definitions, so it always matches what is deployed. Numbers, defaults, and enum values come straight from the schemas the MCP client sees.

Session and discovery

get_current_user

Read

Get the authenticated user's profile including name, email, timezone, default team, team memberships (team id, name, role, status), and organization info (id, name, logo, role, finance permission). Call this first to get your org_id and team_id for other tools.

Takes no parameters.

list_teams

Read

List the teams the authenticated user can access — org admins see every team in their orgs. The user's default team is returned first. Use this to obtain a team_id for other tools (time entries, allocations, team members). Each team includes agent_context (the standing guidance applied to its members' agent runs) when the caller can edit it — team admins and org admins; null otherwise.

ParameterTypeRequiredDescription
limitnumbernoMax teams to return. Default 50.
cursorstringnoPagination cursor.

get_help

Read

Get documentation on how to use Rize MCP tools. Pass a topic to get specific help, or omit for an overview. Topics: time_tracking, profitability, team_management, clients_projects, keywords, skills, reports_routines.

ParameterTypeRequiredDescription
topicstringnoOne of overview, time_tracking, profitability, team_management, clients_projects, keywords, skills, reports_routines. Help topic. Default "overview".

get_product_docs

Read

Get documentation about the Rize product itself: what Rize can do, which integrations are supported, and where to find help articles. Use this to answer questions about Rize features, integrations, platforms, or setup — never guess. Pass a query to search all documentation pages and get the matching ones back with their URLs — prefer this over the static topics when the question is about a specific feature. Use topic "support" whenever the docs don't cover the question, the user hit a bug, or they want to request a feature — it returns where to reach a human instead of guessing. Topics: overview, integrations, docs_index, support.

ParameterTypeRequiredDescription
topicstringnoOne of overview, integrations, docs_index, support. Documentation topic. Default "overview".
querystringnoSearch the full documentation index by keyword. Takes precedence over topic.

list_skills

Read

List the reusable prompt skills visible to the authenticated user.

Takes no parameters.

get_skill

Read

Get one reusable prompt skill by ID. Use this when the user references a skill chip or a rize://skill/:id link.

ParameterTypeRequiredDescription
idstringyesSkill ID from a rize://skill/:id reference or list_skills result.

get_login_url

Read · no authentication required

Returns the Rize login URL so the user can authenticate in their browser. No authentication required. Use this when the user needs to log in or connect their Rize account.

Takes no parameters.

sign_up

Write · no authentication required

Create a new Rize account via magic link. Sends a sign-in link to the user's email. After clicking the link, the user should download the Rize desktop app to start tracking time automatically.

ParameterTypeRequiredDescription
emailstringyesUser's email address.
namestringnoUser's full name.
timezonestringnoIANA timezone (e.g. America/New_York). Defaults to UTC.

Time entries

list_my_time_entries

Read

List the current user's own time entries for a date range. For team-wide entries (admin only), use list_team_time_entries instead. Returns all statuses except rejected by default (tracking, segmenting, active, pending, generating, failed), so you can see live tracked and unprocessed time as well as reviewable suggestions. Sorted by start time with client/project/task details and formatted durations.

ParameterTypeRequiredDescription
datestringyesStart date in YYYY-MM-DD format.
end_datestringnoEnd date in YYYY-MM-DD format (defaults to date for single-day query).
querystringnoSearch time entries by title or description.
statusesstring[]noAny of tracking, segmenting, active, pending, generating, failed, rejected. Array of time entry statuses to include, for example ["active", "pending"]. "tracking" is time currently being tracked live, "segmenting"/"generating" are being processed into suggestions, "pending"/"failed" are suggestions awaiting review. Do not pass a single string.
client_idsstring[]noFilter by client IDs.
project_idsstring[]noFilter by project IDs.
task_idsstring[]noFilter by task IDs.
sourcesstring[]noFilter by entry source, for example ["ai", "click_up", "user", "timer", "meeting"]. Useful for finding duplicates or verifying sync.
label_idsstring[]noFilter by label IDs.
team_idstringnoFilter by team ID (defaults to user's default workspace).
include_activitybooleannoInclude expanded activity evidence per entry: top apps/websites, top window titles, and overlapping keyword-rule matches. Slower — only set when tagging or inspecting entries.
limitnumbernoMax entries to return. Default 100.
cursorstringnoPagination cursor from previous response.

Scoped to the authenticated user regardless of role. Use list_team_time_entries for other people's time.

list_team_time_entries

Read

List time entries across all team members (team admin only). Returns entries for the entire team by default. Use creator_emails to filter to specific people. Non-admins will only see their own entries. Sorted by start time.

ParameterTypeRequiredDescription
datestringyesStart date in YYYY-MM-DD format.
end_datestringnoEnd date in YYYY-MM-DD format (defaults to date for single-day query).
querystringnoSearch time entries by title or description.
creator_emailsstring[]noFilter to specific team members by email (e.g. ['macgill@rize.io']).
creator_idsstring[]noFilter to specific team members by identity ID (alternative to creator_emails).
statusesstring[]noAny of tracking, segmenting, active, pending, generating, failed, rejected. Array of time entry statuses to include, for example ["active", "pending"]. "tracking" is time currently being tracked live, "segmenting"/"generating" are being processed into suggestions, "pending"/"failed" are suggestions awaiting review. Do not pass a single string.
client_idsstring[]noFilter by client IDs.
project_idsstring[]noFilter by project IDs.
task_idsstring[]noFilter by task IDs.
sourcesstring[]noFilter by entry source, for example ["ai", "click_up", "user", "timer", "meeting"]. Useful for finding duplicates or verifying sync.
label_idsstring[]noFilter by label IDs.
team_idstringnoFilter by team ID (defaults to user's default workspace).
limitnumbernoMax entries to return. Default 100.
cursorstringnoPagination cursor from previous response.

get_time_entry

Read

Get a single time entry by ID with all details including client, project, task, billing info, and AI confidence data.

ParameterTypeRequiredDescription
idstringyesThe time entry ID.

create_time_entry

Write

Create a new time entry with optional client, project, and task assignment. Supports idempotency keys to prevent duplicate entries on retry. Times must be in ISO 8601 format — convert user-local times to their timezone (provided as _user_timezone in responses) before sending.

ParameterTypeRequiredDescription
start_timestringyesStart time in ISO 8601 format (e.g. 2024-01-15T09:00:00Z).
end_timestringyesEnd time in ISO 8601 format.
titlestringnoTitle for the time entry.
descriptionstringnoDescription of work performed.
client_idstringnoClient ID to assign.
project_idstringnoProject ID to assign.
task_idstringnoTask ID to assign.
team_idstringnoTeam ID (defaults to user's default workspace).
billablebooleannoWhether this entry is billable.
idempotency_keystringnoUnique key to prevent duplicate entries on retry. Recommended for all creates.

update_time_entry

Write

Update an existing time entry. Supports changing times, title, description, billing, label, and entity reassignment (client, project, task). Changing team_id clears entity assignments.

ParameterTypeRequiredDescription
idstringyesThe time entry ID to update.
start_timestringnoNew start time in ISO 8601 format.
end_timestringnoNew end time in ISO 8601 format.
titlestringnoNew title.
descriptionstringnoNew description.
client_idstringnoReassign to this client.
project_idstringnoReassign to this project.
task_idstringnoReassign to this task.
label_idstringnoAssign this label to the time entry.
team_idstringnoMove to this team (clears entity assignments).
billablebooleannoSet billable status.

delete_time_entry

Write

Delete a time entry by ID. Works on entries of any status (active, pending, failed, etc.).

ParameterTypeRequiredDescription
idstringyesThe time entry ID to delete.

AI suggestions and notes

generate_time_entries

Write

Generate AI time entries for a time range. Analyzes the user's actual activity — apps, websites, meetings — and uses clustering to create multiple entries based on natural activity groups. By default, skips time slots where previous entries were rejected. Rate limited: 15 per minute.

ParameterTypeRequiredDescription
start_timestringyesStart time in ISO 8601 format (e.g. 2024-01-15T00:00:00-04:00).
end_timestringyesEnd time in ISO 8601 format (e.g. 2024-01-15T23:59:59-04:00).
team_idstringnoTeam ID (defaults to user's default workspace).
retry_rejectedbooleannoIf true, also generates entries in time slots where previous entries were rejected. Default false.

Generation is asynchronous. The call returns immediately; poll list_my_time_entries with statuses: ["generating", "pending"] until the entries settle. Shares a quota with regenerate_time_entry: 15 calls per minute and 100 per day.

regenerate_time_entry

Write

Regenerate AI content for a pending or failed time entry. Useful when generation failed or you want a better title/description. Optionally provide custom instructions to guide the AI. Rate limited: max 3 regenerations per entry, 15 per minute.

ParameterTypeRequiredDescription
idstringyesThe time entry ID to regenerate.
instructionsstringnoCustom instructions to guide the AI regeneration (e.g. 'focus on the meeting with Client X').

Regeneration is asynchronous and capped at 3 attempts per entry — the 4th call returns an error. Shares the generation quota above.

approve_time_entries

Write

Approve pending AI-generated time entry suggestions, making them active entries. Optionally assign client/project/task during approval in a single operation.

ParameterTypeRequiredDescription
idsstring[]yesArray of time entry IDs to approve.
client_idstringnoAssign this client to all approved entries.
project_idstringnoAssign this project to all approved entries.
task_idstringnoAssign this task to all approved entries.

reject_time_entries

Write

Reject pending AI-generated time entry suggestions. Rejected entries are kept but hidden from active views.

ParameterTypeRequiredDescription
idsstring[]yesArray of time entry IDs to reject.

approve_tag_suggestion

Write

Approve an AI-generated tag suggestion (client, project, or task) on a time entry. This assigns the suggested entity to the time entry. Use list_my_time_entries to see tag suggestions with confidence scores on pending entries.

ParameterTypeRequiredDescription
idstringyesThe tag suggestion ID to approve.

add_note

Write

Add a note about what you're working on. Notes give Rize context to improve time tracking accuracy.

ParameterTypeRequiredDescription
textstringyesWhat did you work on? Natural language.
datestringnoReference date YYYY-MM-DD. Defaults to today.
savebooleannoSet true to save time entries after previewing. Only relevant when blocks are provided. Default false.
billablebooleannoOverride billable status for created entries.
blocksobject[]noPre-parsed time blocks. When provided with durations > 0, time entries will be created in addition to the note. Tag each block with any combination of client, project, and/or task.

Each entry in blocks is an object: description (string, required), durationMin (number, 0–1440, required), and optional client, project, and task names matched against your existing entities. A block with durationMin: 0 records context without creating an entry. Blocks are laid out backwards from the anchor time, so list them in the order the work happened.

With blocks and save: false (the default) the tool returns a preview — the entries it would create, the client/project/task it matched each block to, and any overlap with entries that already exist. Call again with save: true to commit.

dictate

Write

DEPRECATED: Use add_note instead. This tool now delegates to add_note.

ParameterTypeRequiredDescription
textstringyesNatural language time description.
datestringnoReference date YYYY-MM-DD. Defaults to today.
savebooleannoSet true to save after previewing. Defaults to false (preview). Default false.
billablebooleannoOverride billable status.
blocksobject[]noPre-parsed blocks. Tag each block with any combination of client, project, and/or task.

Deprecated. It delegates to add_note and takes the same arguments — call add_note directly.

Raw activity

list_my_apps_used

Read

List the authenticated user's own apps and websites used in a date range, sorted by time spent. Returns app name, URL, time spent, and category.

ParameterTypeRequiredDescription
datestringyesStart date in YYYY-MM-DD format.
end_datestringnoEnd date in YYYY-MM-DD format (defaults to date).

list_my_events

Read

List raw tracking events (app switches, website visits) for the authenticated user in a date range. Max 7-day range. Returns app name, URL, URL host, title, source, and timestamps. Use list_my_apps_used for aggregated summaries instead.

ParameterTypeRequiredDescription
datestringyesStart date in YYYY-MM-DD format.
end_datestringnoEnd date in YYYY-MM-DD format (defaults to date for single-day query).
limitnumbernoMax events per page. Default 200.
cursorstringnoPagination cursor from previous response.

The date range is capped at 7 days. For an aggregated view, use list_my_apps_used.

list_my_calendar_events

Read

List calendar events (meetings, appointments) for a single day from the user's connected calendars. Returns title, start/end times, attendees, location, and video conference link per event. For raw tracked activity (app switches, website visits) use list_my_events instead.

ParameterTypeRequiredDescription
datestringyesDate in YYYY-MM-DD format.

list_my_keyword_matches

Read

List deterministic keyword-rule matches over the user's tracked time in a date range. Each match is a time window where a keyword rule fired, naming the client/project/task/label it points at. Use these as ground truth when tagging or creating time entries — a keyword match covering an entry's time range is strong evidence for that tag.

ParameterTypeRequiredDescription
datestringyesStart date in YYYY-MM-DD format.
end_datestringnoEnd date in YYYY-MM-DD format (defaults to date for single-day query).

Analytics

get_my_time_allocation

Read

Get the current user's own time allocation summary. By default returns the full view — breakdowns by client, project, task, AND label — plus totals and billable hours. Pass group_by to fetch a single breakdown. For team-wide allocation (admin only), use get_team_time_allocation instead.

ParameterTypeRequiredDescription
datestringyesStart date in YYYY-MM-DD format.
end_datestringnoEnd date in YYYY-MM-DD format (defaults to date).
group_bystringnoOne of client, project, task, label. Single breakdown to return. Omit for the full view (client + project + task + label breakdowns).
client_idsstring[]noFilter by client IDs.
project_idsstring[]noFilter by project IDs.
task_idsstring[]noFilter by task IDs.
label_idsstring[]noFilter by label IDs.
team_idstringnoFilter by team ID.
statusesstring[]noAny of active, pending, generating, failed, rejected. Array of time entry statuses to include, for example ["active"]. Do not pass a single string. Default ["active"].

get_team_time_allocation

Read

Get time allocation summary across all team members (team admin only). Returns total hours, billable hours, and breakdown by grouping. Use creator_emails to filter to specific people. Non-admins will only see their own allocation.

ParameterTypeRequiredDescription
datestringyesStart date in YYYY-MM-DD format.
end_datestringnoEnd date in YYYY-MM-DD format (defaults to date).
creator_emailsstring[]noFilter to specific team members by email (e.g. ['macgill@rize.io']).
creator_idsstring[]noFilter to specific team members by identity ID (alternative to creator_emails).
group_bystringnoOne of client, project, task, label. How to group results. Default "client".
client_idsstring[]noFilter by client IDs.
project_idsstring[]noFilter by project IDs.
task_idsstring[]noFilter by task IDs.
label_idsstring[]noFilter by label IDs.
team_idstringnoFilter by team ID.
statusesstring[]noAny of active, pending, generating, failed, rejected. Array of time entry statuses to include, for example ["active"]. Do not pass a single string. Default ["active"].

get_ai_effectiveness_stats

Read

Get AI effectiveness metrics for time entry creation and tagging. Shows acceptance rates, tagging coverage, label coverage, AI vs manual breakdown, confidence scores, and trends. Use to assess how well Rize's AI is performing for a team or user.

ParameterTypeRequiredDescription
start_timestringyesStart of date range (ISO 8601 datetime, e.g. 2025-01-01T00:00:00Z).
end_timestringyesEnd of date range (ISO 8601 datetime, e.g. 2025-06-01T00:00:00Z).
team_idstringnoTeam ID to filter by. Defaults to the user's default workspace.
creator_idsstring[]noFilter by specific identity IDs.
creator_emailsstring[]noFilter by creator emails (resolved to identity IDs).
exclude_identity_idsstring[]noIdentity IDs to exclude from results (e.g. admin accounts).
include_weekly_trendbooleannoInclude week-over-week trend data. Default false.
include_member_breakdownbooleannoInclude per-member stats breakdown. Default false.
week_countnumbernoNumber of weeks for trend data (max 52). Default 12.

get_my_time_tracking_signals

Read

Get your recent time tracking signals — the individual AI actions and user feedback events that make up your time tracking history. Returns events like entry accepts/rejects, tag suggestions, label changes, and manual edits with full metadata (reasoning, confidence, tag_type, before/after values). Use alongside get_ai_effectiveness_stats to drill into the 'why' behind aggregate metrics.

ParameterTypeRequiredDescription
event_typesstring[]noFilter by event types. Available: time_entry_accepted, time_entry_rejected, time_entry_deleted, time_entry_auto_approved, time_entry_regenerated, time_entry_split, time_entry_merged, time_entry_created_manually, title_changed, description_changed, tag_suggestion_accepted, tag_suggestion_rejected, tag_suggestion_auto_approved, manual_tag_change, batch_tag_applied, time_entry_created, tag_suggestion_created, tag_rule_created, tag_rule_removed.
time_entry_idstringnoFilter signals for a specific time entry.
start_timestringnoStart of date range (ISO 8601 datetime). Defaults to 30 days ago.
end_timestringnoEnd of date range (ISO 8601 datetime). Defaults to now.
limitnumbernoNumber of signals to return (max 50). Default 25.
offsetnumbernoOffset for pagination. Default 0.

Clients, projects, and tasks

list_clients

Read

List clients (customers/accounts) with their hourly rates and team associations. Use client IDs when creating or updating time entries.

ParameterTypeRequiredDescription
querystringnoSearch clients by name.
queriesstring[]noSearch clients by multiple names. Cannot be combined with query; cursor is ignored and next_cursor is null.
statusesstring[]noArray of client statuses to include, for example ["active"]. Do not pass a single string. Default ["active"].
limitnumbernoMax clients to return. Default 50.
cursorstringnoPagination cursor.
include_keywordsbooleannoInclude keywords (auto-tagging rules) for each client. Off by default for performance. Default false.

create_client

Write

Create a new client (customer/account). Clients are top-level entities that projects and time entries can be assigned to.

ParameterTypeRequiredDescription
namestringyesClient name.
hourly_ratenumbernoDefault hourly rate for billing.
colorstringnoColor hex code (e.g. #FF5733).
team_namestringnoTeam name to associate with (defaults to user's default team).

update_client

Write

Update an existing client's name, hourly rate, color, status, keywords (for auto-tagging keyword matching), or prompt (AI context for tagging).

ParameterTypeRequiredDescription
idstringyesThe client ID to update.
namestringnoNew name.
hourly_ratenumbernoNew hourly rate.
colorstringnoNew color hex code.
statusstringnoNew status (e.g. active, archived).
keywordsstring[]noKeywords for auto-tagging. When the AI sees these strings in window titles, URLs, or app names, it matches the time entry to this client. Use specific terms like client names, domains, or project codes.
promptstringnoAI context prompt for tagging. Describes the client so the AI can better match time entries. Example: 'Acme Corp — SaaS company. Google Ads campaigns, Shopify store management, Klaviyo email flows.'.

list_projects

Read

List projects with their client associations and team info. Use project IDs when creating or updating time entries.

ParameterTypeRequiredDescription
querystringnoSearch projects by name.
queriesstring[]noSearch projects by multiple names. Cannot be combined with query; cursor is ignored and next_cursor is null.
client_idstringnoFilter by client ID.
statusesstring[]noArray of project statuses to include, for example ["in_progress", "completed"]. Do not pass a single string. Default ["in_progress","completed"].
limitnumbernoMax projects to return. Default 50.
cursorstringnoPagination cursor.
include_keywordsbooleannoInclude keywords (auto-tagging rules) for each project. Off by default for performance. Default false.

create_project

Write

Create a new project, optionally under a client. Projects organize time entries and can be assigned to time entries directly.

ParameterTypeRequiredDescription
namestringyesProject name.
client_idstringnoClient ID to associate with.
client_namestringnoClient name to associate with (creates client if it doesn't exist).
colorstringnoColor hex code.
team_namestringnoTeam name to associate with (defaults to user's default team).

update_project

Write

Update an existing project's name, client, color, status, keywords (for auto-tagging keyword matching), or prompt (AI context for tagging).

ParameterTypeRequiredDescription
idstringyesThe project ID to update.
namestringnoNew name.
client_idstringnoClient ID to associate with.
client_namestringnoClient name to associate with (creates if doesn't exist).
colorstringnoNew color hex code.
statusstringnoNew status (e.g. in_progress, completed, archived).
keywordsstring[]noKeywords for auto-tagging. When the AI sees these strings in window titles, URLs, or app names, it matches the time entry to this project. Use specific terms like repo names, Jira codes, or unique identifiers.
promptstringnoAI context prompt for tagging. Describes the project so the AI can better match time entries. Example: 'Website Redesign — Next.js migration. Work in Figma, VS Code with repo acme/website-v2, Vercel deploys.'.

list_tasks

Read

List tasks with their project and assignee associations. Use task IDs when creating or updating time entries.

ParameterTypeRequiredDescription
querystringnoSearch tasks by name.
queriesstring[]noSearch tasks by multiple names. Cannot be combined with query; cursor is ignored and next_cursor is null.
project_idsstring[]noFilter tasks by project IDs.
assigned_to_mebooleannoOnly return tasks assigned to the current user.
statusesstring[]noArray of task statuses to include, for example ["in_progress", "completed"]. Do not pass a single string. Default ["in_progress","completed"].
limitnumbernoMax tasks to return. Default 50.
cursorstringnoPagination cursor.
include_keywordsbooleannoInclude keywords (auto-tagging rules) for each task. Off by default for performance. Default false.

create_task

Write

Create a new task, optionally under a project. Tasks are the most granular unit of work and can be assigned to team members.

ParameterTypeRequiredDescription
namestringyesTask name.
project_idstringnoProject ID to associate with.
project_namestringnoProject name to associate with (creates project if it doesn't exist).
assignee_emailstringnoEmail of team member to assign (defaults to authenticated user).
colorstringnoColor hex code.
team_namestringnoTeam name to associate with (defaults to user's default team).

update_task

Write

Update an existing task's name, project, assignee, color, status, or keywords (for auto-tagging keyword matching).

ParameterTypeRequiredDescription
idstringyesThe task ID to update.
namestringnoNew name.
project_idstringnoProject ID to associate with.
project_namestringnoProject name to associate with (creates if doesn't exist).
assignee_emailstringnoEmail of team member to assign.
colorstringnoNew color hex code.
statusstringnoNew status (e.g. in_progress, completed).
keywordsstring[]noKeywords for auto-tagging. When the AI sees these strings in window titles, URLs, or app names, it matches the time entry to this task. Use specific terms like ticket IDs, branch names, or unique identifiers.

Labels

list_labels

Read

List labels available for tagging time entries. Use label IDs when updating time entries.

ParameterTypeRequiredDescription
querystringnoSearch labels by name.
statusesstring[]noArray of label statuses to include, for example ["active"]. Do not pass a single string. Default ["active"].
limitnumbernoMax labels to return. Default 50.
cursorstringnoPagination cursor.

create_label

Write

Create a new label for categorizing time entries. Requires team admin role. Labels have a name, description, and AI prompt used for automatic classification.

ParameterTypeRequiredDescription
namestringyesLabel name.
descriptionstringyesHuman-readable description of what this label represents.
promptstringyesAI prompt used for automatic time entry classification.
colorstringnoColor hex code (e.g. #FF5733).
team_idstringnoTeam ID to associate with.
team_namestringnoTeam name to associate with (defaults to user's default team).

update_label

Write

Update an existing label's name, description, prompt, color, or status. Requires team admin role.

ParameterTypeRequiredDescription
idstringyesThe label ID to update.
namestringnoNew name.
descriptionstringnoNew description.
promptstringnoNew AI classification prompt.
colorstringnoNew color hex code.
statusstringnoNew status (active or archived).

delete_label

Write

Delete a label by ID. Requires team admin role. The label is soft-deleted and will no longer appear in label lists.

ParameterTypeRequiredDescription
idstringyesThe label ID to delete.

Keywords and tagging settings

list_keywords

Read

List active keywords (auto-tagging rules) for the current user. Keywords map text patterns to clients, projects, or tasks — when a keyword appears in a window title, URL, or app name, the time entry is auto-tagged to the parent entity. Must specify tag_type to scope the query.

ParameterTypeRequiredDescription
tag_typestringyesOne of client, project, task. Required: filter by entity type — client, project, or task.
tag_idstringnoFilter by specific client/project/task ID.

create_keyword

Write

Create a new keyword (auto-tagging rule). Keywords auto-tag time entries when the keyword text matches in window titles, URLs, or app names. Each keyword maps to a client, project, or task.

ParameterTypeRequiredDescription
keywordstringyesThe keyword to match (e.g. 'acme', 'acme.com', 'jira.atlassian.net').
tag_typestringyesOne of client, project, task. The entity type to tag to: client, project, or task.
tag_idstringyesThe ID of the client, project, or task to tag to.
match_typestringnoOne of contains, starts_with, ends_with, equals. How to match: contains (default), starts_with, ends_with, or equals. Default "contains".
fieldstringnoOne of any, app_name, url, window_title, calendar_event. Which field to match against: any (default), app_name, url, window_title, or calendar_event. Default "any".

update_keyword

Write

Update an existing keyword's text, match type, or field. Use list_keywords to find the keyword ID first.

ParameterTypeRequiredDescription
idstringyesThe keyword ID to update.
keywordstringnoNew keyword text.
match_typestringnoOne of contains, starts_with, ends_with, equals. New match type.
fieldstringnoOne of any, app_name, url, window_title, calendar_event. New field to match against.

delete_keyword

Write

Delete (archive) a keyword. The keyword will no longer be used for auto-tagging. Use list_keywords to find the keyword ID first.

ParameterTypeRequiredDescription
idstringyesThe keyword ID to delete.

get_tagging_settings

Read

Get the current user's auto-tagging settings: generation mode, entry duration preferences, auto-approve threshold, which tag dimensions are automated, the custom instructions for tagging and activity summaries, and the agent guidance layered onto their runs (personal, plus their default team/workspace guidance). Read-only — use update_tagging_settings to change your own settings. Admins: manage other members via get/update_member_agent_settings, teams via update_team_agent_context, and the workspace via update_workspace_agent_context.

Takes no parameters.

update_tagging_settings

Write

Update your AI tagging settings: tracking mode, minimum entry duration, auto-approve threshold, and custom instructions for how the AI should tag your time entries and generate activity summaries. Which tag dimensions are automated is user-managed and not changeable here. Use get_tagging_settings to read current values first.

ParameterTypeRequiredDescription
tracking_generation_modestringnoOne of tag_rules_and_clustering, tag_rules_only, clustering. How time entries are matched to tags. 'tag_rules_and_clustering' (recommended) combines keyword matching with AI. 'clustering' uses AI only. 'tag_rules_only' uses keywords only.
minimum_time_entry_minutesnumbernoMinimum duration in minutes for a time entry (default 8, recommend 2-5 for detailed tracking).
auto_approve_thresholdnumbernoConfidence threshold (0-100) for auto-approving AI tag suggestions. Default 95 (very strict). Recommend 70-85 for most users.
custom_instructions_for_taggingstringnoCustom instructions for how the AI should tag your time entries to clients/projects/tasks. Describe your workflow, main clients, and how to identify which client from window titles. Example: 'I manage Google Ads for 3 clients. Match by ad account name in browser title.'.
custom_instructions_for_activity_summarystringnoCustom instructions for how the AI should generate activity summaries (time entry titles/descriptions). Example: 'Use task names from ClickUp. Keep titles under 60 chars. Include client name prefix.'.
agent_contextstringnoPersonal guidance injected into every agent run (chat, reports, routines, tagging). May embed skills as markdown links like Name; they are expanded at run time. Team/org guidance is admin-managed and read-only here.

update_team_agent_context

Write

Set a team's standing agent guidance — injected into every team member's agent runs (chat, reports, routines, tagging). Team admins and org admins only. Read current values via list_teams. May embed skills as markdown links like Name; only team- or workspace-visible skills are accepted. Pass an empty string to clear.

ParameterTypeRequiredDescription
team_idstringyesThe team to update (from list_teams).
agent_contextstringyesThe new team guidance. Empty string clears it.

update_workspace_agent_context

Write

Set the workspace's standing agent guidance — injected into every member's agent runs (chat, reports, routines, tagging). Workspace admins only. Read the current value via get_tagging_settings (org_agent_context). May embed skills as markdown links like Name; only workspace-visible skills are accepted. Pass an empty string to clear.

ParameterTypeRequiredDescription
agent_contextstringyesThe new workspace guidance. Empty string clears it.
org_idstringnoThe workspace to update. Defaults to the caller's active workspace (see get_current_user).

Contracts and profitability

list_contracts

Read

List contracts for an organization. Contracts track billing arrangements with clients including hourly rates, retainers, and profitability metrics. Archived contracts are excluded by default — pass status to filter. Use contract IDs with get_contract_profitability.

ParameterTypeRequiredDescription
org_idstringyesOrganization (billing) ID.
querystringnoSearch contracts by name.
statusstringnoOne of draft, active, paused, completed, archived. Filter by contract status.
limitnumbernoMax contracts to return. Default 50.
cursorstringnoPagination cursor.

get_contract

Read

Get a single contract with all its periods and profitability details.

ParameterTypeRequiredDescription
org_idstringyesOrganization (billing) ID.
idstringyesContract ID.

create_contract

Write

Create a new contract for profitability tracking. Contracts define billing arrangements (hourly, retainer, fixed fee) with clients. Automatically creates the first contract period. Use get_current_user to get org_id. Pass client_name or org_client_id to link a client.

ParameterTypeRequiredDescription
org_idstringyesOrganization (billing) ID.
namestringyesContract name.
contract_typestringnoOne of client, internal, pro_bono. Contract type. Default "client".
billing_modelstringnoOne of hourly, retainer, hybrid, fixed_fee, internal, custom. Billing model. Default "hourly".
billing_periodstringnoOne of monthly, quarterly, yearly, one_time. Billing period. Default "monthly".
hourly_ratenumbernoHourly rate.
retainer_amount_centsnumbernoRetainer amount in cents.
hours_includednumbernoHours included in retainer.
overage_hourly_ratenumbernoOverage hourly rate.
currencystringnoCurrency code. Default "USD".
notesstringnoContract notes.
org_client_idstringnoOrganization client ID to link.
client_namestringnoClient name to look up (alternative to org_client_id).
period_start_datestringnoFirst period start date (ISO 8601, defaults to start of current month).
period_end_datestringnoFirst period end date (ISO 8601, defaults to end of current month).

update_contract

Write

Update a contract's billing details. Changes to rate fields are synced to the current period.

ParameterTypeRequiredDescription
org_idstringyesOrganization (billing) ID.
idstringyesContract ID to update.
namestringnoContract name.
contract_typestringnoOne of client, internal, pro_bono. Contract type.
billing_modelstringnoOne of hourly, retainer, hybrid, fixed_fee, internal, custom. Billing model.
statusstringnoOne of draft, active, paused, completed, archived. Contract status.
billing_periodstringnoOne of monthly, quarterly, yearly, one_time. Billing period.
hourly_ratenumbernoHourly rate.
retainer_amount_centsnumbernoRetainer amount in cents.
hours_includednumbernoHours included in retainer.
overage_hourly_ratenumbernoOverage hourly rate.
currencystringnoCurrency code.
notesstringnoContract notes.
org_client_idstringnoOrganization client ID to link.

get_org_profitability

Read

Get aggregated profitability metrics across all non-archived contracts for an organization in a date range. Returns revenue, costs, margin, and hours. For per-contract detail use get_contract_profitability. All monetary values are in cents.

ParameterTypeRequiredDescription
org_idstringyesOrganization (billing) ID.
start_datestringyesStart date (ISO 8601, e.g. 2025-01-01).
end_datestringyesEnd date (ISO 8601, e.g. 2025-01-31).

Requires org admin or the finance permission. All monetary values are in cents.

get_contract_profitability

Read

Get profitability metrics for a specific contract in a date range. Returns revenue, costs, margin, hours, budget burn, and period dates. Use list_contracts to find contract IDs. All monetary values are in cents.

ParameterTypeRequiredDescription
org_idstringyesOrganization (billing) ID.
idstringyesContract ID.
start_datestringyesStart date (ISO 8601, e.g. 2025-01-01).
end_datestringyesEnd date (ISO 8601, e.g. 2025-01-31).

get_profitability_trend

Read

Get monthly revenue, cost, and expense totals for a date range. Returns one data point per month across all non-archived contracts. Useful for spotting trends and comparing periods. All monetary values are in cents.

ParameterTypeRequiredDescription
org_idstringyesOrganization (billing) ID.
start_datestringyesStart date (ISO 8601, e.g. 2025-01-01).
end_datestringyesEnd date (ISO 8601, e.g. 2025-06-30).

create_expense

Write

Add an expense to a contract period. Expenses can be pass-through, delivery, or overhead. Categories: ad_spend, vendor, freelancer, software, other. Get the contract_period_id from get_contract. Metrics recompute automatically after adding.

ParameterTypeRequiredDescription
org_idstringyesOrganization (billing) ID.
contract_period_idstringyesContract period ID to add the expense to.
expense_typestringyesOne of pass_through, delivery, overhead. Type: pass_through (billed to client), delivery (cost of delivery), overhead.
amount_centsnumberyesAmount in cents.
datestringyesExpense date (ISO 8601, must fall within the contract period).
categorystringyesOne of ad_spend, vendor, freelancer, software, other. Expense category.
currencystringnoCurrency code. Default "USD".
descriptionstringnoDescription of the expense.
vendor_namestringnoVendor name.

create_revenue_entry

Write

Add a revenue entry to a contract period. Categories: setup_fee, consulting, upsell, adjustment, other. Get the contract_period_id from get_contract.

ParameterTypeRequiredDescription
org_idstringyesOrganization (billing) ID.
contract_period_idstringyesContract period ID to add revenue to.
amount_centsnumberyesAmount in cents.
datestringyesRevenue date (ISO 8601, must fall within the contract period).
categorystringyesOne of setup_fee, consulting, upsell, adjustment, other. Revenue category.
currencystringnoCurrency code. Default "USD".
descriptionstringnoDescription of the revenue entry.

Teams and members

list_workspace_members

Read

List the workspace (organization) roster with per-team assignments. Visibility depends on your role: workspace admins see everyone, team admins and viewers see their teams, managers see their direct reports, plain members see an empty roster. Rates are only returned for workspace admins and finance grantees. Get workspace_id from get_current_user (org.id).

ParameterTypeRequiredDescription
workspace_idstringyesWorkspace (organization/billing) ID.
querystringnoSearch members by name or email.
limitnumbernoMax members to return. Default 50.
cursorstringnoPagination cursor.

list_team_members

Read

List team members with their roles, managers, hourly rates, and cost rates. Any team member can list: org and team admins and viewers see the whole roster, managers see their direct reports plus themselves, members see only themselves. Archived members are never returned. Rates require team admin, org admin, or finance permissions. Cost rates affect profitability calculations (delivery_labor_cost_cents).

ParameterTypeRequiredDescription
team_idstringyesTeam ID to list members for.
querystringnoSearch members by name or email.
statusesstring[]noArray of team member statuses to include, for example ["active"]. Do not pass a single string. Default ["active"].
limitnumbernoMax members to return. Default 50.
cursorstringnoPagination cursor.

get_member_agent_settings

Read

Get another workspace member's agent settings: their personal guidance, tagging instructions, and activity summary instructions. Admins only (org admins, plus admins of an active team the member belongs to) — returns not-found otherwise. Find identity ids via list_workspace_members. For your OWN settings use get_tagging_settings.

ParameterTypeRequiredDescription
identity_idstringyesThe member's identity id (from list_workspace_members).
org_idstringnoThe workspace the member belongs to. Defaults to the caller's active workspace.

update_member_agent_settings

Write

Update another workspace member's agent settings: their personal guidance, tagging instructions, and/or activity summary instructions. Admins only (org admins, plus admins of an active team the member belongs to). Omitted fields are left unchanged; pass an empty string to clear one. Read current values first with get_member_agent_settings. For your OWN settings use update_tagging_settings.

ParameterTypeRequiredDescription
identity_idstringyesThe member's identity id (from list_workspace_members).
org_idstringnoThe workspace the member belongs to. Defaults to the caller's active workspace.
agent_contextstringnoThe member's personal agent guidance. Empty string clears it.
custom_instructions_for_taggingstringnoThe member's personal tagging instructions. Empty string clears it.
custom_instructions_for_activity_summarystringnoThe member's activity summary instructions. Empty string clears it.

invite_team_member

Write

Invite a new member to a team by email. Sends an invitation email. Requires team admin or org admin permissions. Naturally idempotent — re-inviting an existing member returns the existing record.

ParameterTypeRequiredDescription
team_idstringyesTeam ID to invite the member to.
emailstringyesEmail address of the person to invite.
namestringnoName of the person being invited.
rolestringnoOne of member, manager, admin, viewer. Role to assign (default: member). Managers see direct reports only; viewers have read-only visibility and are excluded from tracking rosters. Default "member".
billable_by_defaultbooleannoWhether the member's time is billable by default (default: true).
manager_idstringnoTeam member ID of this member's manager (must be an admin or manager on the same team).

update_team_member

Write

Update a team member's role, title, manager, hourly rate, cost rate, or billable default. Requires team admin or org admin permissions. Use list_team_members to find team_member_id values.

ParameterTypeRequiredDescription
team_idstringyesTeam ID.
team_member_idstringyesTeam member ID to update.
rolestringnoOne of member, manager, admin, viewer. Role to assign. Managers see direct reports only; viewers have read-only visibility and are excluded from tracking rosters.
titlestringnoJob title.
manager_idstringnoTeam member ID of this member's manager (must be an admin or manager on the same team). Pass null to clear.
hourly_ratenumbernoHourly billing rate.
cost_ratenumbernoInternal cost rate per hour.
billable_by_defaultbooleannoWhether time is billable by default.

remove_team_member

Write

Remove a member from a team. The membership is archived, not deleted — historical time entries are kept and re-inviting the person restores it. Requires team admin or org admin permissions. Use list_team_members to find team_member_id values.

ParameterTypeRequiredDescription
team_idstringyesTeam ID.
team_member_idstringyesTeam member ID to remove.

Reports and routines

list_report_runs

Read

List report runs for the current user's reports. Returns runs ordered by most recent first, with nested report metadata and AI analyses. Filter by report ID or status (pending, running, ready, failed).

ParameterTypeRequiredDescription
report_idstringnoFilter runs to a specific report ID.
statusstringnoOne of pending, running, ready, failed. Filter by run status.
limitnumbernoMax runs to return. Default 25.
cursorstringnoPagination cursor from previous response.

get_report_run

Read

Get a single report run by ID, including the parent report metadata and all AI analyses with summaries and insights.

ParameterTypeRequiredDescription
idstringyesReport run ID.

list_routine_runs

Read

List routine runs for the current user. Returns runs ordered by most recent first, with nested routine metadata and the briefs each run produced. Filter by routine ID or status (pending, running, ready, failed).

ParameterTypeRequiredDescription
routine_idstringnoFilter runs to a specific routine ID.
statusstringnoOne of pending, running, ready, failed. Filter by run status.
limitnumbernoMax runs to return. Default 25.
cursorstringnoPagination cursor from previous response.

get_routine_run

Read

Get a single routine run by ID, including the parent routine metadata and all briefs the run produced with their markdown bodies.

ParameterTypeRequiredDescription
idstringyesRoutine run ID.