workload.zero
de.workloadzero/mcpworkloadzero.destreamable-httpv1.0.3Scanned
Back office, projects, hiring and CRM in one suite. Claude's work stays a draft until you approve.
149 tools: 30 can delete or cancel things, 1 do something that can't be undone, 60 change things and 58 only read.
- Reads private data · 19
- Reads text others write · 18
- Can send data out · 16
- 2 findings
Anlyon alternative
91 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
149 tools
Deletes or cancels 30Claude Code: deny
convert_quote_to_invoiceConvert an ACCEPTED quote into a draft invoice (positions 1:1).No findings
Why it is in this group
- The name "convert_quote_to_invoice" says "convert": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Convert an ACCEPTED quote into a draft invoice (positions 1:1).
Annotations the server declares
- title: Convert quote to invoice
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_absenceWithdraw an absence request or delete an absence.No findings
Why it is in this group
- The name "delete_absence" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Withdraw an absence request or delete an absence. The team calendar updates immediately.
Annotations the server declares
- title: Delete absence
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_companyDelete a CRM company (it is hidden, its contacts stay).No findings
Why it is in this group
- The name "delete_company" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a CRM company (it is hidden, its contacts stay).
Annotations the server declares
- title: Delete company
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_contactDelete a CRM contact.No findings
Why it is in this group
- The name "delete_contact" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a CRM contact. Before deleting for GDPR reasons, add the address to the suppression list.
Annotations the server declares
- title: Delete contact
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_dealDelete a deal (it is hidden from lists and reports, its activities stay).No findings
Why it is in this group
- The name "delete_deal" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a deal (it is hidden from lists and reports, its activities stay).
Annotations the server declares
- title: Delete deal
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_fileMove a file or folder to the trash (it can be restored in the app).No findings
Why it is in this group
- The name "delete_file" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Move a file or folder to the trash (it can be restored in the app).
Annotations the server declares
- title: Delete file
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_goalDelete a goal and its checklist.No findings
Why it is in this group
- The name "delete_goal" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a goal and its checklist. Linked tasks and time entries stay.
Annotations the server declares
- title: Delete goal
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_invoiceDelete a draft invoice.No findings
Why it is in this group
- The name "delete_invoice" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a draft invoice. Finalized invoices cannot be deleted.
Annotations the server declares
- title: Delete draft invoice
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_leadDelete a lead that is not converted.No findings
Why it is in this group
- The name "delete_lead" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a lead that is not converted.
Annotations the server declares
- title: Delete lead
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_messageDelete one of your chat messages for all participants.No findings
Why it is in this group
- The name "delete_message" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete one of your chat messages for all participants.
Annotations the server declares
- title: Delete chat message
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_pipelineDelete a sales pipeline.No findings
Why it is in this group
- The name "delete_pipeline" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a sales pipeline. Move or close its deals first.
Annotations the server declares
- title: Delete pipeline
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_projectDelete a project you created.No findings
Why it is in this group
- The name "delete_project" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a project you created. It is archived and hidden from all members; tasks and time entries stay in the database.
Annotations the server declares
- title: Delete project
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_quoteDelete a quote that has not been sent yet.No findings
Why it is in this group
- The name "delete_quote" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a quote that has not been sent yet. Sent quotes stay for the record.
Annotations the server declares
- title: Delete quote
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_sales_activityDelete a sales activity from the deal and contact timeline.No findings
Why it is in this group
- The name "delete_sales_activity" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a sales activity from the deal and contact timeline.
Annotations the server declares
- title: Delete sales activity
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_taskDelete a task (admin, project manager or project lead).No findings
Why it is in this group
- The name "delete_task" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a task (admin, project manager or project lead). It goes to the deleted list and can be restored with restore_task.
Annotations the server declares
- title: Delete task
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_task_commentDelete a comment (your own, or any as admin, project manager or project lead).No findings
Why it is in this group
- The name "delete_task_comment" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a comment (your own, or any as admin, project manager or project lead).
Annotations the server declares
- title: Delete task comment
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
delete_time_entryDelete one of your time entries.No findings
Why it is in this group
- The name "delete_time_entry" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete one of your time entries. Entries that are already invoiced or approved cannot be deleted.
Annotations the server declares
- title: Delete time entry
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
discard_timerDiscard the running timer without booking any time.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Discard the running timer without booking any time.
Annotations the server declares
- title: Discard timer
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
edit_messageEdit one of your chat messages.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "edit_message" says "edit": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe name "edit_message" says "edit" and "message": it writes something other people read.
Description, as the server wrote it Edit one of your chat messages. Participants see the new text marked as edited.
Annotations the server declares
- title: Edit chat message
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
mark_deal_lostMark a deal as lost with a reason, e.g.No findings
Why it is in this group
- The name "mark_deal_lost" says "mark": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Mark a deal as lost with a reason, e.g. "Budget moved to 2027".
Annotations the server declares
- title: Mark deal lost
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
remove_project_memberRemove a team member from a project.No findings
Why it is in this group
- The name "remove_project_member" says "remove": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Remove a team member from a project. Their tasks stay assigned until you reassign them.
Annotations the server declares
- title: Remove project member
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
remove_task_attachmentRemove an attachment from a task and move the file to the trash (your own attachment, or any as admin, project manager or project lead).No findings
Why it is in this group
- The name "remove_task_attachment" says "remove": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Remove an attachment from a task and move the file to the trash (your own attachment, or any as admin, project manager or project lead).
Annotations the server declares
- title: Remove task attachment
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
remove_task_linkRemove a link from a task by its position in the links list (0-based, as shown by get_task).No findings
Why it is in this group
- The name "remove_task_link" says "remove": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Remove a link from a task by its position in the links list (0-based, as shown by get_task).
Annotations the server declares
- title: Remove task link
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
review_absenceApprove or reject an absence request (admin or manager).No findings
Why it is in this group
- The description's first verb is "approve": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Approve or reject an absence request (admin or manager). The employee sees the decision.
Annotations the server declares
- title: Approve or reject absence
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
send_direct_messageSend a direct message to a person (user id from list_users).Reads text others writeCan send data outNo findings
Why it is in this group
- The name "send_direct_message" says "send": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe name "send_direct_message" says "send": it sends or publishes something to other people.
Description, as the server wrote it Send a direct message to a person (user id from list_users). Opens the direct chat if there is none yet.
Annotations the server declares
- title: Send direct message
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
send_messageSend a message in a chat.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "send_message" says "send": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe name "send_message" says "send": it sends or publishes something to other people.
Description, as the server wrote it Send a message in a chat. The participants see it immediately.
Annotations the server declares
- title: Send chat message
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
send_quoteSend a quote to the client by email.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "send_quote" says "send": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe name "send_quote" says "send": it sends or publishes something to other people.
Description, as the server wrote it Send a quote to the client by email. This ONLY works after the user approved the quote for sending in the app. There is intentionally no tool to grant that approval; sending stays under human control.
Annotations the server declares
- title: Send quote to client
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
set_task_work_linksReplace the work result links of a task (what the assignee delivered, e.g.No findings
Why it is in this group
- The name "set_task_work_links" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Replace the work result links of a task (what the assignee delivered, e.g. a PR or a deployed preview).
Annotations the server declares
- title: Replace task work links
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
unassign_me_from_taskRemove yourself from the assignees of a task.1 finding
Why it is in this group
- The name "unassign_me_from_task" says "unassign": a word for a change.
- The description's first verb is "remove": a word for removing or ending something.
- The server marks it not destructive (destructiveHint: false), but an annotation never lowers a class.
Findings
- Warn
The server marks "unassign_me_from_task" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "unassign_me_from_task" says "unassign": a word for a change.
Description, as the server wrote it Remove yourself from the assignees of a task.
Annotations the server declares
- title: Unassign me from task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_pipelineUpdate a sales pipeline: name, stages (replaces the whole list) or default flag.No findings
Why it is in this group
- The name "update_pipeline" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Update a sales pipeline: name, stages (replaces the whole list) or default flag.
Annotations the server declares
- title: Update pipeline
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
Can't be undone 1Claude Code: ask
record_invoice_paymentRecord a (partial) payment on an invoice.No findings
Why it is in this group
- The name "record_invoice_payment" says "payment": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Record a (partial) payment on an invoice. Example: amount 1190, paidAt "2026-11-04".
Annotations the server declares
- title: Record invoice payment
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Changes things 60Claude Code: ask
add_project_memberAdd a team member to a project (admin or project manager).No findings
Why it is in this group
- The name "add_project_member" says "add": a word for a change.
Description, as the server wrote it Add a team member to a project (admin or project manager). teamMemberId comes from list_team_members.
Annotations the server declares
- title: Add project member
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
add_suppressionAdd an email address or a whole domain to the suppression list, e.g.No findings
Why it is in this group
- The name "add_suppression" says "add": a word for a change.
Description, as the server wrote it Add an email address or a whole domain to the suppression list, e.g. after an unsubscribe, an objection (GDPR Art. 21), an erasure request (Art. 17) or an access request (Art. 15).
Annotations the server declares
- title: Add to suppression list
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
add_task_commentAdd a comment to a task, optionally with images (each from an https URL or base64).Can send data outNo findings
Why it is in this group
- The name "add_task_comment" says "add": a word for a change.
What it can reach
- outboundThe name "add_task_comment" says "add" and "comment": it writes something other people read.
Description, as the server wrote it Add a comment to a task, optionally with images (each from an https URL or base64). Images are stored in the project files under tasks/<task number>/.
Annotations the server declares
- title: Add task comment
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
add_task_linkAdd a link to a task, e.g.Can send data outNo findings
Why it is in this group
- The name "add_task_link" says "add": a word for a change.
What it can reach
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Add a link to a task, e.g. the pull request, Figma frame or Jira ticket.
Annotations the server declares
- title: Add task link
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
assign_task_to_meAdd yourself to the assignees of a task.No findings
Why it is in this group
- The name "assign_task_to_me" says "assign": a word for a change.
Description, as the server wrote it Add yourself to the assignees of a task.
Annotations the server declares
- title: Assign task to me
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
attach_file_to_taskAttach an image or file to a task.Reads text others writeNo findings
Why it is in this group
- The name "attach_file_to_task" says "attach": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Attach an image or file to a task. Give sourceUrl (https) or base64 + fileName, or fileItemId of a file already in workload.zero. The file is stored in the project files under tasks/<task number>/ like in the app; returns a download link.
Annotations the server declares
- title: Attach file to task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
check_goal_itemTick or untick one checklist item of a goal (index is 0-based, in the order list_goals shows).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Tick or untick one checklist item of a goal (index is 0-based, in the order list_goals shows).
Annotations the server declares
- title: Check goal item
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
check_suppressionCheck whether email addresses are on the suppression list (do-not-contact).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Check whether email addresses are on the suppression list (do-not-contact). ALWAYS call this before sending any outreach email; never email an address reported as suppressed.
Annotations the server declares
- title: Check suppression list
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
complete_goalMark a goal as completed.No findings
Why it is in this group
- The description's first verb is "mark": a word for a change.
Description, as the server wrote it Mark a goal as completed. Checklist items keep their own state.
Annotations the server declares
- title: Complete goal
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
complete_sales_activityMark a sales activity (call, email, meeting, task) as done.No findings
Why it is in this group
- The description's first verb is "mark": a word for a change.
Description, as the server wrote it Mark a sales activity (call, email, meeting, task) as done.
Annotations the server declares
- title: Complete sales activity
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
convert_dealConvert a deal by ref code (idempotent): stage converted, status won.No findings
Why it is in this group
- The name "convert_deal" says "convert": a word for a change.
Description, as the server wrote it Convert a deal by ref code (idempotent): stage converted, status won.
Annotations the server declares
- title: Convert deal by ref
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
convert_leadConvert a lead into a contact (and company), optionally with a new deal.No findings
Why it is in this group
- The name "convert_lead" says "convert": a word for a change.
Description, as the server wrote it Convert a lead into a contact (and company), optionally with a new deal.
Annotations the server declares
- title: Convert lead
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_chatCreate a group chat with people (user ids from list_users), optionally tied to projects.No findings
Why it is in this group
- The name "create_chat" says "create": a word for a change.
Description, as the server wrote it Create a group chat with people (user ids from list_users), optionally tied to projects.
Annotations the server declares
- title: Create group chat
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_clientCreate a project client (admin or project manager).Can send data outNo findings
Why it is in this group
- The name "create_client" says "create": a word for a change.
What it can reach
- outboundThe input takes a destination (input.phone): what the tool writes goes there.
Description, as the server wrote it Create a project client (admin or project manager).
Annotations the server declares
- title: Create client
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_dealCreate a deal.No findings
Why it is in this group
- The name "create_deal" says "create": a word for a change.
Description, as the server wrote it Create a deal. Example: title "Website relaunch Acme", value 24000, stage "proposal", companyId, contactIds.
Annotations the server declares
- title: Create deal
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_folderCreate a folder in a space, optionally inside another folder.No findings
Why it is in this group
- The name "create_folder" says "create": a word for a change.
Description, as the server wrote it Create a folder in a space, optionally inside another folder.
Annotations the server declares
- title: Create folder
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_goalCreate a daily or weekly goal, optionally linked to a task or project, with a checklist; shown in workload.zero as created by an agent.No findings
Why it is in this group
- The name "create_goal" says "create": a word for a change.
Description, as the server wrote it Create a daily or weekly goal, optionally linked to a task or project, with a checklist; shown in workload.zero as created by an agent. Example: title "Ship invoice export", checklist [{"label": "Write tests"}].
Annotations the server declares
- title: Create goal
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_invoiceCreate a draft invoice by hand.No findings
Why it is in this group
- The name "create_invoice" says "create": a word for a change.
Description, as the server wrote it Create a draft invoice by hand. It stays a draft: finalizing and sending happen in the app. Example: invoiceDate "2026-11-04", billingClientId from list_billing_clients, lineItems [{position: 1, description: "Consulting", quantity: 8, unit: "h", unitPrice: 95, vatRate: 19}].
Annotations the server declares
- title: Create draft invoice
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_invoice_from_timeCreate a draft invoice from the unbilled time entries of a project in a period.No findings
Why it is in this group
- The name "create_invoice_from_time" says "create": a word for a change.
Description, as the server wrote it Create a draft invoice from the unbilled time entries of a project in a period.
Annotations the server declares
- title: Create invoice from time
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_leadCreate a lead (a person not yet qualified), e.g.Can send data outNo findings
Why it is in this group
- The name "create_lead" says "create": a word for a change.
What it can reach
- outboundThe input takes a destination (input.phone): what the tool writes goes there.
Description, as the server wrote it Create a lead (a person not yet qualified), e.g. from an event or a website form.
Annotations the server declares
- title: Create lead
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_pipelineCreate a sales pipeline with its stages.No findings
Why it is in this group
- The name "create_pipeline" says "create": a word for a change.
Description, as the server wrote it Create a sales pipeline with its stages.
Annotations the server declares
- title: Create pipeline
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_projectCreate a project.No findings
Why it is in this group
- The name "create_project" says "create": a word for a change.
Description, as the server wrote it Create a project. clientId comes from list_clients (or create_client). Example: title "Website relaunch", projectCode "WEB", duration {startDate: "2026-11-01", endDate: "2027-03-31"}, budget {hourlyRate: 95, currency: "EUR"}.
Annotations the server declares
- title: Create project
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_quoteCreate a quote as a DRAFT.No findings
Why it is in this group
- The name "create_quote" says "create": a word for a change.
Description, as the server wrote it Create a quote as a DRAFT. Example: date "2026-11-04", billingClientId from list_billing_clients, positions [{description: "Design workshop", quantity: 2, unit: "days", unitPriceNet: 1200}]. Use estimate_quote first to price a scope. The quote is never sent automatically; sending needs a human approval in the app. The legacy `data` JSON string (document field names) is still accepted.
Annotations the server declares
- title: Create draft quote
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_sales_activityLog or schedule a sales activity.No findings
Why it is in this group
- The name "create_sales_activity" says "create": a word for a change.
Description, as the server wrote it Log or schedule a sales activity. Example: type "call", subject "Follow-up on proposal", contactId, dealId, scheduledAt "2026-11-06T10:00:00Z".
Annotations the server declares
- title: Create sales activity
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_taskCreate a task (shown in workload.zero as created by an agent).No findings
Why it is in this group
- The name "create_task" says "create": a word for a change.
Description, as the server wrote it Create a task (shown in workload.zero as created by an agent). Example: projectId from list_projects, title "Fix login redirect", priority "high", assignedTo [user or team member id], deadline {startDateTime: "2026-11-10T09:00:00Z", endDateTime: "2026-11-14T17:00:00Z"}, maxHours 6.
Annotations the server declares
- title: Create task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
estimate_quoteEstimate a quote from a scope description.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Estimate a quote from a scope description. Returns deterministic 'historical' and 'rate-card' variants (each with sum and confidence) plus the context (comparable past projects, standard rate). Add your own 'free-scope' variant from the context, then present all variants with totals so the user can pick.
Annotations the server declares
- title: Estimate quote
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
link_deal_to_projectLink a won deal to the workload.zero project that delivers it.No findings
Why it is in this group
- The name "link_deal_to_project" says "link": a word for a change.
Description, as the server wrote it Link a won deal to the workload.zero project that delivers it.
Annotations the server declares
- title: Link deal to project
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
log_timeLog time on a project, optionally for a task.1 finding
Why it is in this group
- The name "log_time" says "log": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "log_time" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "log_time" says "log": a word for reading.
Description, as the server wrote it Log time on a project, optionally for a task. Example: projectId, taskId, date "2026-11-04", hours 1.5, description "Code review". With startTime/endTime (HH:mm) the entry shows the time span.
Annotations the server declares
- title: Log time
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mark_chat_readMark all messages of a chat as read; resets its unread count.Can send data outNo findings
Why it is in this group
- The name "mark_chat_read" says "mark": a word for a change.
What it can reach
- outboundThe input takes a destination (input.chatId): what the tool writes goes there.
Description, as the server wrote it Mark all messages of a chat as read; resets its unread count.
Annotations the server declares
- title: Mark chat as read
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mark_deal_wonMark a deal as won; status won, stage closed_won, counts in reports.No findings
Why it is in this group
- The name "mark_deal_won" says "mark": a word for a change.
Description, as the server wrote it Mark a deal as won; status won, stage closed_won, counts in reports.
Annotations the server declares
- title: Mark deal won
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mark_gdpr_answeredMark the GDPR request (Art.No findings
Why it is in this group
- The name "mark_gdpr_answered" says "mark": a word for a change.
Description, as the server wrote it Mark the GDPR request (Art. 15/17/21) of a suppression list entry as answered.
Annotations the server declares
- title: Mark GDPR request answered
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
mark_notifications_readMark one notification as read, or all of them when notificationId is left out.No findings
Why it is in this group
- The name "mark_notifications_read" says "mark": a word for a change.
Description, as the server wrote it Mark one notification as read, or all of them when notificationId is left out.
Annotations the server declares
- title: Mark notifications as read
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
move_deal_stageMove a deal to another pipeline stage, e.g.No findings
Why it is in this group
- The name "move_deal_stage" says "move": a word for a change.
Description, as the server wrote it Move a deal to another pipeline stage, e.g. "negotiation".
Annotations the server declares
- title: Move deal stage
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
move_task_on_boardMove a task to a board column (status) and position (0 = top).No findings
Why it is in this group
- The name "move_task_on_board" says "move": a word for a change.
Description, as the server wrote it Move a task to a board column (status) and position (0 = top).
Annotations the server declares
- title: Move task on board
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
qualify_leadMark a lead as qualified, ready to convert into a contact and deal.No findings
Why it is in this group
- The description's first verb is "mark": a word for a change.
Description, as the server wrote it Mark a lead as qualified, ready to convert into a contact and deal.
Annotations the server declares
- title: Qualify lead
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
request_absenceRequest an absence.No findings
Why it is in this group
- The name "request_absence" says "request": a word for a change.
Description, as the server wrote it Request an absence. Example: type "vacation", startDate "2026-12-22", endDate "2026-12-31". Partial days: startTime/endTime or hours.
Annotations the server declares
- title: Request absence
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
restore_taskRestore a deleted task.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Restore a deleted task. Takes the Mongo id from list_deleted_tasks.
Annotations the server declares
- title: Restore task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
set_default_pipelineSet a sales pipeline as the default for new deals.No findings
Why it is in this group
- The name "set_default_pipeline" says "set": a word for a change.
Description, as the server wrote it Set a sales pipeline as the default for new deals.
Annotations the server declares
- title: Set default pipeline
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
start_timerStart the running timer for a project (and task).No findings
Why it is in this group
- The name "start_timer" says "start": a word for a change.
Description, as the server wrote it Start the running timer for a project (and task). Stop it with stop_timer to book the time.
Annotations the server declares
- title: Start timer
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
stop_timerStop the running timer and book the time as a time entry.No findings
Why it is in this group
- The name "stop_timer" says "stop": a word for a change.
Description, as the server wrote it Stop the running timer and book the time as a time entry.
Annotations the server declares
- title: Stop timer
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
toggle_task_comment_reactionAdd your emoji reaction to a comment, or remove it if you already reacted with that emoji.Can send data outNo findings
Why it is in this group
- The name "toggle_task_comment_reaction" says "toggle": a word for a change.
What it can reach
- outboundThe name "toggle_task_comment_reaction" says "toggle" and "comment": it writes something other people read.
Description, as the server wrote it Add your emoji reaction to a comment, or remove it if you already reacted with that emoji.
Annotations the server declares
- title: Toggle comment reaction
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
update_absenceChange an absence request (dates, type, reason).No findings
Why it is in this group
- The name "update_absence" says "update": a word for a change.
Description, as the server wrote it Change an absence request (dates, type, reason). Give only the fields to change.
Annotations the server declares
- title: Update absence
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_companyUpdate a CRM company by id, e.g.Can send data outNo findings
Why it is in this group
- The name "update_company" says "update": a word for a change.
What it can reach
- outboundThe input takes a destination (input.phone): what the tool writes goes there.
Description, as the server wrote it Update a CRM company by id, e.g. to rename it. Give only the fields to change.
Annotations the server declares
- title: Update company
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_contactUpdate a CRM contact by id, e.g.Can send data outNo findings
Why it is in this group
- The name "update_contact" says "update": a word for a change.
What it can reach
- outboundThe input takes a destination (input.phone): what the tool writes goes there.
Description, as the server wrote it Update a CRM contact by id, e.g. to change the email address. Give only the fields to change.
Annotations the server declares
- title: Update contact
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_dealUpdate a deal by id: stage, status, notes, value, loss reason, tags, title, probability, expected close date, contacts, company.No findings
Why it is in this group
- The name "update_deal" says "update": a word for a change.
Description, as the server wrote it Update a deal by id: stage, status, notes, value, loss reason, tags, title, probability, expected close date, contacts, company.
Annotations the server declares
- title: Update deal
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_goalUpdate a goal: date, title, task, project, color, time slot or checklist.No findings
Why it is in this group
- The name "update_goal" says "update": a word for a change.
Description, as the server wrote it Update a goal: date, title, task, project, color, time slot or checklist. Give only the fields to change. The legacy `updates` JSON string is still accepted.
Annotations the server declares
- title: Update goal
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_invoiceUpdate a draft invoice.No findings
Why it is in this group
- The name "update_invoice" says "update": a word for a change.
Description, as the server wrote it Update a draft invoice. Give only the fields to change; lineItems replaces the whole list. Finalized invoices cannot be changed.
Annotations the server declares
- title: Update draft invoice
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_leadUpdate a lead, e.g.Can send data outNo findings
Why it is in this group
- The name "update_lead" says "update": a word for a change.
What it can reach
- outboundThe input takes a destination (input.phone): what the tool writes goes there.
Description, as the server wrote it Update a lead, e.g. its status. Give only the fields to change.
Annotations the server declares
- title: Update lead
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_my_profileUpdate your own profile.No findings
Why it is in this group
- The name "update_my_profile" says "update": a word for a change.
Description, as the server wrote it Update your own profile. Pass the fields to change as a JSON object string.
Annotations the server declares
- title: Update my profile
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_projectUpdate a project.No findings
Why it is in this group
- The name "update_project" says "update": a word for a change.
Description, as the server wrote it Update a project. Give only the fields to change, e.g. status "on_hold" or a new end date in duration. The legacy `updates` JSON string is still accepted.
Annotations the server declares
- title: Update project
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_project_memberChange role, weekly hours, capacity or permissions of a project member.No findings
Why it is in this group
- The name "update_project_member" says "update": a word for a change.
Description, as the server wrote it Change role, weekly hours, capacity or permissions of a project member.
Annotations the server declares
- title: Update project member
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_quoteUpdate a draft quote.No findings
Why it is in this group
- The name "update_quote" says "update": a word for a change.
Description, as the server wrote it Update a draft quote. Give only the fields to change; positions replaces the whole list.
Annotations the server declares
- title: Update draft quote
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_sales_activityUpdate a sales activity.No findings
Why it is in this group
- The name "update_sales_activity" says "update": a word for a change.
Description, as the server wrote it Update a sales activity. Give only the fields to change.
Annotations the server declares
- title: Update sales activity
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_taskUpdate a task.No findings
Why it is in this group
- The name "update_task" says "update": a word for a change.
Description, as the server wrote it Update a task. Give only the fields to change: status, title, description, priority, assignedTo (replaces the list), tags (replaces), deadline, maxHours, linkedIssue, links (replaces), parentTaskId. Archive with status "archived". The legacy `updates` JSON string is still accepted.
Annotations the server declares
- title: Update task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_task_commentEdit the text of one of your own comments; it is marked as edited.Can send data outNo findings
Why it is in this group
- The name "update_task_comment" says "update": a word for a change.
What it can reach
- outboundThe name "update_task_comment" says "update" and "comment": it writes something other people read.
Description, as the server wrote it Edit the text of one of your own comments; it is marked as edited. Comments of others can only be deleted (by admins, project managers and project leads), not edited.
Annotations the server declares
- title: Edit task comment
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_time_entryChange a time entry (hours, date, description, task, start/end time, billable).No findings
Why it is in this group
- The name "update_time_entry" says "update": a word for a change.
Description, as the server wrote it Change a time entry (hours, date, description, task, start/end time, billable). Give only the fields to change.
Annotations the server declares
- title: Update time entry
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
upload_fileUpload a file into a space (optionally into a folder) from an https URL or base64.Reads text others writeNo findings
Why it is in this group
- The name "upload_file" says "upload": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Upload a file into a space (optionally into a folder) from an https URL or base64. Allowed: images (png, jpeg, gif, webp, heic), pdf, txt, md, csv, json, zip, docx, xlsx, pptx. Returns the file id and a download link. To attach a file to a task use attach_file_to_task.
Annotations the server declares
- title: Upload file
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
upsert_companyCreate or update a CRM company idempotently by name.Can send data outNo findings
Why it is in this group
- The name "upsert_company" says "upsert": a word for a change.
What it can reach
- outboundThe input takes a destination (input.phone): what the tool writes goes there.
Description, as the server wrote it Create or update a CRM company idempotently by name.
Annotations the server declares
- title: Create or update company
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
upsert_contactCreate or update a CRM contact idempotently by email.Can send data outNo findings
Why it is in this group
- The name "upsert_contact" says "upsert": a word for a change.
What it can reach
- outboundThe input takes a destination (input.phone): what the tool writes goes there.
Description, as the server wrote it Create or update a CRM contact idempotently by email.
Annotations the server declares
- title: Create or update contact
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
upsert_dealCreate or update a deal idempotently by campaign ref (derived from the lead email).No findings
Why it is in this group
- The name "upsert_deal" says "upsert": a word for a change.
Description, as the server wrote it Create or update a deal idempotently by campaign ref (derived from the lead email).
Annotations the server declares
- title: Create or update deal by ref
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 58Show 58 read-only tools
find_deal_by_refFind a deal by its 6-hex campaign ref code.No findings
Why it is in this group
- The name "find_deal_by_ref" says "find": a word for reading.
Description, as the server wrote it Find a deal by its 6-hex campaign ref code.
Annotations the server declares
- title: Find deal by ref
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_active_timerShow the running timer, if any (project, task, start time).No findings
Why it is in this group
- The name "get_active_timer" says "get": a word for reading.
Description, as the server wrote it Show the running timer, if any (project, task, start time).
Annotations the server declares
- title: Get running timer
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_activity_feedRecent changes in your projects (who changed what), optionally for one project or one area.No findings
Why it is in this group
- The name "get_activity_feed" says "get": a word for reading.
Description, as the server wrote it Recent changes in your projects (who changed what), optionally for one project or one area.
Annotations the server declares
- title: Get activity feed
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_chat_messagesRead the latest messages of a chat, oldest first (message id | time | sender | text).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_chat_messages" says "get": a word for reading.
What it can reach
- private-dataThe name "get_chat_messages" says "get" and "chat": it reads messages.
- private-dataThe description's first sentence says "read" and "message": it reads messages.
- untrusted-inputThe name "get_chat_messages" says "get" and "chat": it reads messages, which other people can write.
- untrusted-inputThe description's first sentence says "read" and "message": it reads messages, which other people can write.
Description, as the server wrote it Read the latest messages of a chat, oldest first (message id | time | sender | text). Use before (ISO time of the oldest shown message) to page back.
Annotations the server declares
- title: Read chat messages
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_companyGet a CRM company with its contacts and deals.Reads private dataNo findings
Why it is in this group
- The name "get_company" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "get" and "contact": it reads contacts.
Description, as the server wrote it Get a CRM company with its contacts and deals.
Annotations the server declares
- title: Get company
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_contactGet a CRM contact with deals and timeline (activities, mails, notes).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_contact" says "get": a word for reading.
What it can reach
- private-dataThe name "get_contact" says "get" and "contact": it reads contacts.
- private-dataThe description's first sentence says "get" and "contact": it reads contacts.
- untrusted-inputThe description's first sentence says "get" and "mail": it reads inbound email, which other people can write.
Description, as the server wrote it Get a CRM contact with deals and timeline (activities, mails, notes).
Annotations the server declares
- title: Get contact
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_dealGet a deal with contacts, company, products, notes and its activities.Reads private dataNo findings
Why it is in this group
- The name "get_deal" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "get" and "contact": it reads contacts.
Description, as the server wrote it Get a deal with contacts, company, products, notes and its activities.
Annotations the server declares
- title: Get deal
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_file_detailsGet details of a file or folder: name, type, size, owner, versions, tags.Reads private dataNo findings
Why it is in this group
- The name "get_file_details" says "get": a word for reading.
What it can reach
- private-dataThe name "get_file_details" says "get" and "file": it reads files.
- private-dataThe description's first sentence says "get" and "file": it reads files.
- private-dataThe input names a file (input.fileItemId), and the tool reads: it reads files.
Description, as the server wrote it Get details of a file or folder: name, type, size, owner, versions, tags.
Annotations the server declares
- title: Get file details
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_file_linkGet a temporary download link for a file (open it to view or download; the link expires, call again for a fresh one).Reads private dataNo findings
Why it is in this group
- The name "get_file_link" says "get": a word for reading.
What it can reach
- private-dataThe name "get_file_link" says "get" and "file": it reads files.
- private-dataThe description's first sentence says "get" and "file": it reads files.
- private-dataThe input names a file (input.fileItemId), and the tool reads: it reads files.
Description, as the server wrote it Get a temporary download link for a file (open it to view or download; the link expires, call again for a fresh one).
Annotations the server declares
- title: Get file download link
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_goals_for_taskGet all goals linked to a task (task Mongo id), e.g.No findings
Why it is in this group
- The name "get_goals_for_task" says "get": a word for reading.
Description, as the server wrote it Get all goals linked to a task (task Mongo id), e.g. to see when work on it is planned.
Annotations the server declares
- title: Get goals for task
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_invoiceGet an invoice with line items, buyer, totals and status.No findings
Why it is in this group
- The name "get_invoice" says "get": a word for reading.
Description, as the server wrote it Get an invoice with line items, buyer, totals and status. Accepts the id or the invoice number, e.g. RE-2026-0042.
Annotations the server declares
- title: Get invoice
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_invoice_pdfGet the PDF of an invoice as an attached file.Reads private dataNo findings
Why it is in this group
- The name "get_invoice_pdf" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "get" and "file": it reads files.
Description, as the server wrote it Get the PDF of an invoice as an attached file.
Annotations the server declares
- title: Get invoice PDF
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_my_colleaguesList the people you share projects with, incl.No findings
Why it is in this group
- The name "get_my_colleagues" says "get": a word for reading.
Description, as the server wrote it List the people you share projects with, incl. their team member ids.
Annotations the server declares
- title: List my colleagues
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_my_profileGet your own workload.zero profile (name, job title, bio, location, skills).No findings
Why it is in this group
- The name "get_my_profile" says "get": a word for reading.
Description, as the server wrote it Get your own workload.zero profile (name, job title, bio, location, skills).
Annotations the server declares
- title: Get my profile
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_my_time_entriesGet your time entries (id | date | hours | project | task | description) with the total.No findings
Why it is in this group
- The name "get_my_time_entries" says "get": a word for reading.
Description, as the server wrote it Get your time entries (id | date | hours | project | task | description) with the total.
Annotations the server declares
- title: Get my time entries
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_projectGet a project: status, client, budget, period, team member ids, task count and description.No findings
Why it is in this group
- The name "get_project" says "get": a word for reading.
Description, as the server wrote it Get a project: status, client, budget, period, team member ids, task count and description.
Annotations the server declares
- title: Get project
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_project_budgetBudget analytics of a project: planned vs.No findings
Why it is in this group
- The name "get_project_budget" says "get": a word for reading.
Description, as the server wrote it Budget analytics of a project: planned vs. used hours and amount, burn rate.
Annotations the server declares
- title: Get project budget
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_quoteGet a quote with positions, customer, totals and status.No findings
Why it is in this group
- The name "get_quote" says "get": a word for reading.
Description, as the server wrote it Get a quote with positions, customer, totals and status.
Annotations the server declares
- title: Get quote
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_quote_pdfGet the PDF of a quote as an attached file.Reads private dataNo findings
Why it is in this group
- The name "get_quote_pdf" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "get" and "file": it reads files.
Description, as the server wrote it Get the PDF of a quote as an attached file.
Annotations the server declares
- title: Get quote PDF
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_revenueRevenue breakdown of the year (per month, per client).No findings
Why it is in this group
- The name "get_revenue" says "get": a word for reading.
Description, as the server wrote it Revenue breakdown of the year (per month, per client).
Annotations the server declares
- title: Get revenue
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_sales_reportSales reports.No findings
Why it is in this group
- The name "get_sales_report" says "get": a word for reading.
Description, as the server wrote it Sales reports. report: pipeline-value, conversion-rates, activity-metrics, forecast, win-loss, sales-velocity, leaderboard. Default pipeline-value.
Annotations the server declares
- title: Get sales report
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_taskGet one task with description, status, priority, assignees, estimate and booked hours, start/due date, tags, linked issue, links, subtask parent, attachments (with download links) …Reads text others writeNo findings
Why it is in this group
- The name "get_task" says "get": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "get" and "issue": it reads issues, which other people can write.
Description, as the server wrote it Get one task with description, status, priority, assignees, estimate and booked hours, start/due date, tags, linked issue, links, subtask parent, attachments (with download links) and comments.
Annotations the server declares
- title: Get task
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_task_historyChange history of a task: who changed which field from what to what.No findings
Why it is in this group
- The name "get_task_history" says "get": a word for reading.
Description, as the server wrote it Change history of a task: who changed which field from what to what.
Annotations the server declares
- title: Get task history
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_todays_goalsGet your goals for today (id | title | timeframe | task | project | checklist progress).No findings
Why it is in this group
- The name "get_todays_goals" says "get": a word for reading.
Description, as the server wrote it Get your goals for today (id | title | timeframe | task | project | checklist progress).
Annotations the server declares
- title: Get today's goals
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_unbilled_hoursHours that are tracked but not invoiced yet, per project.No findings
Why it is in this group
- The name "get_unbilled_hours" says "get": a word for reading.
Description, as the server wrote it Hours that are tracked but not invoiced yet, per project.
Annotations the server declares
- title: Get unbilled hours
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_unread_countsUnread message counts per chat id, for a quick inbox check.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_unread_counts" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "message": it reads messages.
- untrusted-inputThe description's first sentence says "message": it reads messages, which other people can write.
Description, as the server wrote it Unread message counts per chat id, for a quick inbox check.
Annotations the server declares
- title: Get unread counts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_week_goalsGet your goals for the current week (Monday to Sunday), with checklist progress.No findings
Why it is in this group
- The name "get_week_goals" says "get": a word for reading.
Description, as the server wrote it Get your goals for the current week (Monday to Sunday), with checklist progress.
Annotations the server declares
- title: Get this week's goals
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_absencesList the absences you may see as admin or project manager, optionally by date range or status.No findings
Why it is in this group
- The name "list_absences" says "list": a word for reading.
Description, as the server wrote it List the absences you may see as admin or project manager, optionally by date range or status.
Annotations the server declares
- title: List absences
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_billing_clientsList billing clients (id | company | invoice email | payment terms).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_billing_clients" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "email": it reads mail.
- untrusted-inputThe description's first sentence says "list" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it List billing clients (id | company | invoice email | payment terms). Use the id for invoices and quotes.
Annotations the server declares
- title: List billing clients
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_billing_entitiesList your sender entities (id | name | default).No findings
Why it is in this group
- The name "list_billing_entities" says "list": a word for reading.
Description, as the server wrote it List your sender entities (id | name | default). Quotes and invoices are issued in the name of one of them.
Annotations the server declares
- title: List billing entities
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_chatsList your chats (id | title | participants | unread | last message).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_chats" says "list": a word for reading.
What it can reach
- private-dataThe name "list_chats" says "list" and "chat": it reads messages.
- private-dataThe description's first sentence says "list" and "chat": it reads messages.
- untrusted-inputThe name "list_chats" says "list" and "chat": it reads messages, which other people can write.
- untrusted-inputThe description's first sentence says "list" and "chat": it reads messages, which other people can write.
Description, as the server wrote it List your chats (id | title | participants | unread | last message).
Annotations the server declares
- title: List chats
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_clientsList project clients (id | name | company | email).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_clients" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "email": it reads mail.
- untrusted-inputThe description's first sentence says "list" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it List project clients (id | name | company | email). Use the id as clientId in create_project.
Annotations the server declares
- title: List clients
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_companiesList CRM companies (id | name | industry), optionally by search text.No findings
Why it is in this group
- The name "list_companies" says "list": a word for reading.
Description, as the server wrote it List CRM companies (id | name | industry), optionally by search text.
Annotations the server declares
- title: List companies
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_contactsList CRM contacts (id | name | email | company | position), optionally by search text or company.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_contacts" says "list": a word for reading.
What it can reach
- private-dataThe name "list_contacts" says "list" and "contact": it reads contacts.
- private-dataThe description's first sentence says "list" and "contact": it reads contacts.
- untrusted-inputThe description's first sentence says "list" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it List CRM contacts (id | name | email | company | position), optionally by search text or company.
Annotations the server declares
- title: List contacts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_dealsList deals (id | title | stage | status | value | ref), optionally by stage, pipeline or company.No findings
Why it is in this group
- The name "list_deals" says "list": a word for reading.
Description, as the server wrote it List deals (id | title | stage | status | value | ref), optionally by stage, pipeline or company.
Annotations the server declares
- title: List deals
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_deleted_tasksList deleted tasks of your projects (id | number | title | deleted at).No findings
Why it is in this group
- The name "list_deleted_tasks" says "list": a word for reading.
Description, as the server wrote it List deleted tasks of your projects (id | number | title | deleted at).
Annotations the server declares
- title: List deleted tasks
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_filesList files and folders in a space or in one folder of it (id | name | file/folder | size | updated).Reads private dataNo findings
Why it is in this group
- The name "list_files" says "list": a word for reading.
What it can reach
- private-dataThe name "list_files" says "list" and "file": it reads files.
- private-dataThe description's first sentence says "list" and "file": it reads files.
- private-dataThe input names a folder (input.folderId), and the tool reads: it reads files.
Description, as the server wrote it List files and folders in a space or in one folder of it (id | name | file/folder | size | updated).
Annotations the server declares
- title: List files
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_goalsList goals by date range (YYYY-MM-DD) or timeframe, e.g.No findings
Why it is in this group
- The name "list_goals" says "list": a word for reading.
Description, as the server wrote it List goals by date range (YYYY-MM-DD) or timeframe, e.g. startDate 2026-11-01, endDate 2026-11-30.
Annotations the server declares
- title: List goals
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_invoice_paymentsList the payments recorded on an invoice.No findings
Why it is in this group
- The name "list_invoice_payments" says "list": a word for reading.
Description, as the server wrote it List the payments recorded on an invoice.
Annotations the server declares
- title: List invoice payments
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_invoicesList your invoices (id | number | date | gross total | status | buyer).No findings
Why it is in this group
- The name "list_invoices" says "list": a word for reading.
Description, as the server wrote it List your invoices (id | number | date | gross total | status | buyer).
Annotations the server declares
- title: List invoices
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_leadsList leads (id | name | email | company | status | score).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_leads" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "email": it reads mail.
- untrusted-inputThe description's first sentence says "list" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it List leads (id | name | email | company | status | score).
Annotations the server declares
- title: List leads
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_my_absencesList your absences (vacation, sick days, comp time) with status.No findings
Why it is in this group
- The name "list_my_absences" says "list": a word for reading.
Description, as the server wrote it List your absences (vacation, sick days, comp time) with status.
Annotations the server declares
- title: List my absences
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_notificationsList your notifications, newest first (id | read | title | message).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_notifications" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "message": it reads messages.
- untrusted-inputThe description's first sentence says "list" and "message": it reads messages, which other people can write.
Description, as the server wrote it List your notifications, newest first (id | read | title | message).
Annotations the server declares
- title: List notifications
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_pipelinesList sales pipelines (id | name | stages | default).No findings
Why it is in this group
- The name "list_pipelines" says "list": a word for reading.
Description, as the server wrote it List sales pipelines (id | name | stages | default).
Annotations the server declares
- title: List pipelines
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_project_membersList the members of a project (team member id | user id | name | role | weekly hours).No findings
Why it is in this group
- The name "list_project_members" says "list": a word for reading.
Description, as the server wrote it List the members of a project (team member id | user id | name | role | weekly hours). Use the team member id for add/update/remove_project_member.
Annotations the server declares
- title: List project members
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_projectsList the projects you have access to (id | code | name | status | client).No findings
Why it is in this group
- The name "list_projects" says "list": a word for reading.
Description, as the server wrote it List the projects you have access to (id | code | name | status | client).
Annotations the server declares
- title: List projects
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_quotesList your quotes (id | number | date | status | customer).No findings
Why it is in this group
- The name "list_quotes" says "list": a word for reading.
Description, as the server wrote it List your quotes (id | number | date | status | customer).
Annotations the server declares
- title: List quotes
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_recent_filesList the files you opened or changed recently, across all spaces.Reads private dataNo findings
Why it is in this group
- The name "list_recent_files" says "list": a word for reading.
What it can reach
- private-dataThe name "list_recent_files" says "list" and "file": it reads files.
- private-dataThe description's first sentence says "list" and "file": it reads files.
Description, as the server wrote it List the files you opened or changed recently, across all spaces.
Annotations the server declares
- title: List recent files
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_sales_activitiesList sales activities (calls, emails, meetings, tasks, notes), optionally for a contact, deal or company, or only upcoming/overdue ones.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "list_sales_activities" says "list": a word for reading.
What it can reach
- private-dataThe description's first sentence says "list" and "email": it reads mail.
- untrusted-inputThe description's first sentence says "list" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it List sales activities (calls, emails, meetings, tasks, notes), optionally for a contact, deal or company, or only upcoming/overdue ones.
Annotations the server declares
- title: List sales activities
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_subtasksList the subtasks of a task.No findings
Why it is in this group
- The name "list_subtasks" says "list": a word for reading.
Description, as the server wrote it List the subtasks of a task. Create a subtask with create_task and parentTaskId.
Annotations the server declares
- title: List subtasks
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_suppressionsList suppression list entries, optionally filtered by search, reason or open GDPR requests.No findings
Why it is in this group
- The name "list_suppressions" says "list": a word for reading.
Description, as the server wrote it List suppression list entries, optionally filtered by search, reason or open GDPR requests.
Annotations the server declares
- title: List suppression list
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_task_tagsList the tags used on tasks, optionally for one project.No findings
Why it is in this group
- The name "list_task_tags" says "list": a word for reading.
Description, as the server wrote it List the tags used on tasks, optionally for one project.
Annotations the server declares
- title: List task tags
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_tasksList tasks (id | number | title | status | priority | project | assignees | due).No findings
Why it is in this group
- The name "list_tasks" says "list": a word for reading.
Description, as the server wrote it List tasks (id | number | title | status | priority | project | assignees | due). Without projectId: your assigned tasks, or with view "all" every task in your projects. With projectId: all tasks of that project, filterable by assignee and priority.
Annotations the server declares
- title: List tasks
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_team_membersList team members (id | user | type | weekly capacity).No findings
Why it is in this group
- The name "list_team_members" says "list": a word for reading.
Description, as the server wrote it List team members (id | user | type | weekly capacity). The team member id is what projects and task assignments store.
Annotations the server declares
- title: List team members
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_time_entriesList time entries of everyone you may see (admin and project manager view), filterable by project, user and date.No findings
Why it is in this group
- The name "list_time_entries" says "list": a word for reading.
Description, as the server wrote it List time entries of everyone you may see (admin and project manager view), filterable by project, user and date.
Annotations the server declares
- title: List time entries
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_usersList the users of the workspace (id and name).No findings
Why it is in this group
- The name "list_users" says "list": a word for reading.
Description, as the server wrote it List the users of the workspace (id and name). Use the id for direct messages; for task assignment use list_team_members or the user id.
Annotations the server declares
- title: List users
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
searchSearch across projects, tasks (title, number, linked issue) and users.Reads text others writeNo findings
Why it is in this group
- The name "search" says "search": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "search" and "issue": it reads issues, which other people can write.
Description, as the server wrote it Search across projects, tasks (title, number, linked issue) and users. Example: query "ZERO-41" or "login bug".
Annotations the server declares
- title: Search workload.zero
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_filesSearch files by name across your spaces.Reads private dataNo findings
Why it is in this group
- The name "search_files" says "search": a word for reading.
What it can reach
- private-dataThe name "search_files" says "search" and "file": it reads files.
- private-dataThe description's first sentence says "search" and "file": it reads files.
Description, as the server wrote it Search files by name across your spaces.
Annotations the server declares
- title: Search files
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
5472 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 16 outbound tools breaks every one.
- Reads private data19
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write18
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out16
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__workloadzero__add_task_comment",
"mcp__workloadzero__add_task_link",
"mcp__workloadzero__create_client",
"mcp__workloadzero__create_lead",
"mcp__workloadzero__edit_message",
"mcp__workloadzero__mark_chat_read",
"mcp__workloadzero__send_direct_message",
"mcp__workloadzero__send_message",
"mcp__workloadzero__send_quote",
"mcp__workloadzero__toggle_task_comment_reaction",
"mcp__workloadzero__update_company",
"mcp__workloadzero__update_contact",
"mcp__workloadzero__update_lead",
"mcp__workloadzero__update_task_comment",
"mcp__workloadzero__upsert_company",
"mcp__workloadzero__upsert_contact"
]
}
}Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
The server marks "unassign_me_from_task" not destructive (destructiveHint: false), and its own name, description or input give the class "destructive".
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "unassign_me_from_task" says "unassign": a word for a change.
- Warnlog_time
The server marks "log_time" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "log_time" says "log": a word for reading.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http workloadzero https://mcp.workloadzero.de/mcpclaude mcp add --transport http workloadzero https://mcp.workloadzero.de/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__workloadzero__get_my_profile",
"mcp__workloadzero__list_users",
"mcp__workloadzero__get_my_colleagues",
"mcp__workloadzero__list_team_members",
"mcp__workloadzero__search",
"mcp__workloadzero__list_notifications",
"mcp__workloadzero__get_activity_feed",
"mcp__workloadzero__list_projects",
"mcp__workloadzero__get_project",
"mcp__workloadzero__get_project_budget",
"mcp__workloadzero__list_project_members",
"mcp__workloadzero__list_clients",
"mcp__workloadzero__list_tasks",
"mcp__workloadzero__get_task",
"mcp__workloadzero__list_subtasks",
"mcp__workloadzero__list_deleted_tasks",
"mcp__workloadzero__get_task_history",
"mcp__workloadzero__list_task_tags",
"mcp__workloadzero__get_my_time_entries",
"mcp__workloadzero__list_time_entries",
"mcp__workloadzero__get_active_timer",
"mcp__workloadzero__get_todays_goals",
"mcp__workloadzero__get_week_goals",
"mcp__workloadzero__list_goals",
"mcp__workloadzero__get_goals_for_task",
"mcp__workloadzero__list_my_absences",
"mcp__workloadzero__list_absences",
"mcp__workloadzero__list_invoices",
"mcp__workloadzero__get_invoice",
"mcp__workloadzero__list_invoice_payments",
"mcp__workloadzero__get_invoice_pdf",
"mcp__workloadzero__get_revenue",
"mcp__workloadzero__get_unbilled_hours",
"mcp__workloadzero__list_billing_clients",
"mcp__workloadzero__list_billing_entities",
"mcp__workloadzero__list_quotes",
"mcp__workloadzero__get_quote",
"mcp__workloadzero__get_quote_pdf",
"mcp__workloadzero__list_deals",
"mcp__workloadzero__get_deal",
"mcp__workloadzero__find_deal_by_ref",
"mcp__workloadzero__list_companies",
"mcp__workloadzero__get_company",
"mcp__workloadzero__list_contacts",
"mcp__workloadzero__get_contact",
"mcp__workloadzero__list_sales_activities",
"mcp__workloadzero__list_leads",
"mcp__workloadzero__list_pipelines",
"mcp__workloadzero__get_sales_report",
"mcp__workloadzero__list_suppressions",
"mcp__workloadzero__list_chats",
"mcp__workloadzero__get_chat_messages",
"mcp__workloadzero__get_unread_counts",
"mcp__workloadzero__list_files",
"mcp__workloadzero__list_recent_files",
"mcp__workloadzero__search_files",
"mcp__workloadzero__get_file_details",
"mcp__workloadzero__get_file_link"
],
"ask": [
"mcp__workloadzero__update_my_profile",
"mcp__workloadzero__mark_notifications_read",
"mcp__workloadzero__create_project",
"mcp__workloadzero__update_project",
"mcp__workloadzero__add_project_member",
"mcp__workloadzero__update_project_member",
"mcp__workloadzero__create_client",
"mcp__workloadzero__create_task",
"mcp__workloadzero__update_task",
"mcp__workloadzero__assign_task_to_me",
"mcp__workloadzero__move_task_on_board",
"mcp__workloadzero__add_task_link",
"mcp__workloadzero__restore_task",
"mcp__workloadzero__add_task_comment",
"mcp__workloadzero__update_task_comment",
"mcp__workloadzero__toggle_task_comment_reaction",
"mcp__workloadzero__attach_file_to_task",
"mcp__workloadzero__log_time",
"mcp__workloadzero__update_time_entry",
"mcp__workloadzero__start_timer",
"mcp__workloadzero__stop_timer",
"mcp__workloadzero__create_goal",
"mcp__workloadzero__update_goal",
"mcp__workloadzero__complete_goal",
"mcp__workloadzero__check_goal_item",
"mcp__workloadzero__request_absence",
"mcp__workloadzero__update_absence",
"mcp__workloadzero__create_invoice_from_time",
"mcp__workloadzero__create_invoice",
"mcp__workloadzero__update_invoice",
"mcp__workloadzero__record_invoice_payment",
"mcp__workloadzero__estimate_quote",
"mcp__workloadzero__create_quote",
"mcp__workloadzero__update_quote",
"mcp__workloadzero__create_deal",
"mcp__workloadzero__upsert_deal",
"mcp__workloadzero__update_deal",
"mcp__workloadzero__move_deal_stage",
"mcp__workloadzero__mark_deal_won",
"mcp__workloadzero__link_deal_to_project",
"mcp__workloadzero__convert_deal",
"mcp__workloadzero__upsert_company",
"mcp__workloadzero__update_company",
"mcp__workloadzero__upsert_contact",
"mcp__workloadzero__update_contact",
"mcp__workloadzero__create_sales_activity",
"mcp__workloadzero__update_sales_activity",
"mcp__workloadzero__complete_sales_activity",
"mcp__workloadzero__create_lead",
"mcp__workloadzero__update_lead",
"mcp__workloadzero__qualify_lead",
"mcp__workloadzero__convert_lead",
"mcp__workloadzero__create_pipeline",
"mcp__workloadzero__set_default_pipeline",
"mcp__workloadzero__check_suppression",
"mcp__workloadzero__add_suppression",
"mcp__workloadzero__mark_gdpr_answered",
"mcp__workloadzero__create_chat",
"mcp__workloadzero__mark_chat_read",
"mcp__workloadzero__upload_file",
"mcp__workloadzero__create_folder"
],
"deny": [
"mcp__workloadzero__delete_project",
"mcp__workloadzero__remove_project_member",
"mcp__workloadzero__unassign_me_from_task",
"mcp__workloadzero__remove_task_link",
"mcp__workloadzero__set_task_work_links",
"mcp__workloadzero__delete_task",
"mcp__workloadzero__delete_task_comment",
"mcp__workloadzero__remove_task_attachment",
"mcp__workloadzero__delete_time_entry",
"mcp__workloadzero__discard_timer",
"mcp__workloadzero__delete_goal",
"mcp__workloadzero__delete_absence",
"mcp__workloadzero__review_absence",
"mcp__workloadzero__delete_invoice",
"mcp__workloadzero__delete_quote",
"mcp__workloadzero__convert_quote_to_invoice",
"mcp__workloadzero__send_quote",
"mcp__workloadzero__mark_deal_lost",
"mcp__workloadzero__delete_deal",
"mcp__workloadzero__delete_company",
"mcp__workloadzero__delete_contact",
"mcp__workloadzero__delete_sales_activity",
"mcp__workloadzero__delete_lead",
"mcp__workloadzero__update_pipeline",
"mcp__workloadzero__delete_pipeline",
"mcp__workloadzero__send_message",
"mcp__workloadzero__send_direct_message",
"mcp__workloadzero__edit_message",
"mcp__workloadzero__delete_message",
"mcp__workloadzero__delete_file"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as workloadzero. Review it before you use it.
Capability tags behind 39 rules
- mcp__workloadzero__search untrusted-input
- mcp__workloadzero__list_notifications private-data, untrusted-input
- mcp__workloadzero__list_clients private-data, untrusted-input
- mcp__workloadzero__create_client outbound
- mcp__workloadzero__get_task untrusted-input
- mcp__workloadzero__add_task_link outbound
- mcp__workloadzero__add_task_comment outbound
- mcp__workloadzero__update_task_comment outbound
- mcp__workloadzero__toggle_task_comment_reaction outbound
- mcp__workloadzero__attach_file_to_task untrusted-input
- mcp__workloadzero__get_invoice_pdf private-data
- mcp__workloadzero__list_billing_clients private-data, untrusted-input
- mcp__workloadzero__get_quote_pdf private-data
- mcp__workloadzero__send_quote untrusted-input, outbound
- mcp__workloadzero__get_deal private-data
- mcp__workloadzero__get_company private-data
- mcp__workloadzero__upsert_company outbound
- mcp__workloadzero__update_company outbound
- mcp__workloadzero__list_contacts private-data, untrusted-input
- mcp__workloadzero__get_contact private-data, untrusted-input
- mcp__workloadzero__upsert_contact outbound
- mcp__workloadzero__update_contact outbound
- mcp__workloadzero__list_sales_activities private-data, untrusted-input
- mcp__workloadzero__list_leads private-data, untrusted-input
- mcp__workloadzero__create_lead outbound
- mcp__workloadzero__update_lead outbound
- mcp__workloadzero__list_chats private-data, untrusted-input
- mcp__workloadzero__get_chat_messages private-data, untrusted-input
- mcp__workloadzero__send_message untrusted-input, outbound
- mcp__workloadzero__send_direct_message untrusted-input, outbound
- mcp__workloadzero__edit_message untrusted-input, outbound
- mcp__workloadzero__mark_chat_read outbound
- mcp__workloadzero__get_unread_counts private-data, untrusted-input
- mcp__workloadzero__list_files private-data
- mcp__workloadzero__list_recent_files private-data
- mcp__workloadzero__search_files private-data
- mcp__workloadzero__get_file_details private-data
- mcp__workloadzero__get_file_link private-data
- mcp__workloadzero__upload_file untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/de.workloadzero/mcp/verify?hash=a7fb03a1321ae2f1a09143fcaef85f8037a0ddc66baa1bebabe6138c0dfbfe0d" | jq -e '.changed == false'Pinned hash a7fb03a1321a, from Nov 4, 2026, 16:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/de.workloadzero/mcp/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/de.workloadzero/mcp)Source: MCP Registry · repository. Synced Nov 4, 2026, 16:17 UTC.