Workadu MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Workadu MCP Servershow my top 10 customers by revenue"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Workadu MCP Server
MCP (Model Context Protocol) server for Workadu โ enables AI assistants to interact with your Workadu data through natural language.
What is this?
This server exposes Workadu's API as MCP tools, allowing AI assistants like Claude, Cursor, and others to:
๐ฆ Manage Orders/Bookings โ list, create, update, cancel orders
๐ฅ Manage Customers โ search, create, update customer records
๐ Manage Services โ CRUD operations on services/products
๐งพ Manage Invoices โ create, publish, add lines, manage withholdings
๐ฐ Manage Payments โ list and create payments
๐ฆ Manage Assets โ CRUD operations on assets (DCL module)
๐ Manage Asset Movements โ create, close, cancel dispatch notes
Related MCP server: FacturaHub MCP Server
Prerequisites
Node.js >= 18.0.0
A Workadu account with API access enabled
Your Workadu API key (from CompanyUser settings)
Installation
# Clone the repository
git clone https://github.com/workadu/mcp-server.git
cd mcp-server
# Install dependencies
npm install
# Build
npm run buildConfiguration
The server requires two environment variables:
Variable | Description | Example |
| Your Workadu instance URL |
|
| Your API key |
|
Copy .env.example to .env and fill in your values:
cp .env.example .envUsage
With Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"workadu": {
"command": "node",
"args": ["/absolute/path/to/mcp-server/dist/index.js"],
"env": {
"WORKADU_API_URL": "https://your-app.workadu.com",
"WORKADU_API_KEY": "your-api-key-here"
}
}
}
}With Cursor
Add to your Cursor MCP settings (.cursor/mcp.json):
{
"mcpServers": {
"workadu": {
"command": "node",
"args": ["/absolute/path/to/mcp-server/dist/index.js"],
"env": {
"WORKADU_API_URL": "https://your-app.workadu.com",
"WORKADU_API_KEY": "your-api-key-here"
}
}
}
}Testing with MCP Inspector
npm run inspectThis opens the MCP Inspector UI where you can test all tools interactively.
Direct execution
WORKADU_API_URL=https://your-app.workadu.com \
WORKADU_API_KEY=your-api-key \
npm startAvailable Tools
Orders/Bookings
Tool | Description |
| List orders/bookings with filters (date, status, customer) |
| Get order details by ID |
| Create a new booking/order |
| Update an existing order |
| Cancel/delete an order |
| Send order confirmation email |
Customers
Tool | Description |
| List customers (paginated, searchable) |
| Get customer details by ID |
| Create a new customer |
| Update an existing customer |
Services
Tool | Description |
| List services/products |
| Get service details by ID |
| Create a new service |
| Update an existing service |
| Delete a service |
Invoices
Tool | Description |
| List invoices with filters |
| Get invoice details by ID |
| Create a new invoice |
| Create invoice with line items |
| Add a line to existing invoice |
| Update an existing invoice |
| Publish/finalize a draft invoice |
| List invoice series |
| List withholdings for an invoice |
| Add withholding to an invoice |
Payments
Tool | Description |
| List payments |
| Create a new payment |
Assets (DCL)
Tool | Description |
| List assets |
| Get asset details by ID |
| Create a new asset |
| Update an existing asset |
| Delete an asset |
Asset Movements (DCL)
Tool | Description |
| List asset movements |
| Get movement details by ID |
| Create a new movement |
| Close/finalize a movement |
| Cancel a movement |
| Resend movement notification |
Development
# Watch mode (auto-recompile on changes)
npm run dev
# Type checking
npm run lint
# Build
npm run buildArchitecture
src/
โโโ index.ts # Entry point โ MCP Server init
โโโ config.ts # Environment config
โโโ client/
โ โโโ workadu-client.ts # HTTP client for Workadu Dingo API
โโโ tools/
โ โโโ index.ts # Tool registry
โ โโโ orders.ts # Order/booking tools
โ โโโ customers.ts # Customer tools
โ โโโ services.ts # Service tools
โ โโโ invoices.ts # Invoice tools
โ โโโ payments.ts # Payment tools
โ โโโ assets.ts # Asset tools
โ โโโ asset-movements.ts # Asset movement tools
โโโ types/
โโโ workadu.ts # TypeScript type definitionsAuthentication
The server authenticates with Workadu using the existing API key mechanism:
Sends
Authorization: Basic base64(api_key:)headerSends Dingo version header:
Accept: application/vnd.rengine.v2+jsonAll API calls are automatically scoped to the company associated with the API key
License
UNLICENSED โ Proprietary Workadu software
Available Tools
38 toolsadd_invoice_lineB
Add a line item to an existing draft invoice.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes | The invoice ID to add the line to | |
| description | Yes | Line item description | |
| quantity | Yes | Quantity | |
| unit_price | Yes | Unit price | |
| vat_percent | Yes | VAT percentage (e.g. 24 for 24%) | |
| discount_percent | No | Discount percentage (0-100) | |
| service_id | No | Optional service/product ID to link |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description bears full burden. It only states 'add a line item' without disclosing side effects (e.g., recalculates totals, requires edit permissions, or whether the action is reversible). For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with primary action. Efficient but could be slightly more detailed without harming conciseness. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 7 parameters (5 required), the description fails to explain return value (e.g., created line item ID) or constraints (e.g., only for draft invoices). Incomplete for an agent to reliably use without additional knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter descriptions. The tool description adds no extra meaning beyond the schema, so baseline 3 is appropriate. No contradictions or omissions noted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Add a line item to an existing draft invoice,' which is a specific verb and resource. It clearly distinguishes from sibling tools like 'create_invoice_with_lines' (which creates invoice and lines together) and 'update_invoice' (which modifies invoice header).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., 'create_invoice_with_lines' for new invoices, 'update_invoice' for header changes). No mention that the invoice must be in draft status, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_asset_movementC
Cancel an asset movement in Workadu.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The asset movement ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose side effects, permissions required, or state changes upon cancellation. The agent is left uninformed about what happens.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. However, it could benefit from additional context without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and behavioral context, the description is insufficient for an agent to understand when cancellation is valid or what the outcome looks like, especially alongside sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'id' is fully described in the schema with 100% coverage. The description adds no additional meaning beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (cancel) and resource (asset movement), but does not differentiate from sibling tools like close_asset_movement, which may have different semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as close_asset_movement or resend_asset_movement. No prerequisites or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_asset_movementB
Close/finalize an asset movement in Workadu.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The asset movement ID to close |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should disclose behavioral traits. It only mentions 'close/finalize' without explaining if the action is destructive, reversible, or requires permissions. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence with no unnecessary words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the action of closing an asset movement, the description lacks context on effects, required permissions, or distinction from cancellation. It is minimally adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter 'id' already described. The tool description adds no extra meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Close/finalize an asset movement', using a specific verb and resource. It distinguishes from sibling tools like 'cancel_asset_movement' and 'resend_asset_movement'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as 'cancel_asset_movement'. The description lacks context for appropriate usage or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_assetB
Create a new asset (DCL module). Requires name and code.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the asset | |
| code | Yes | Unique code for the asset | |
| description | No | Description of the asset | |
| category_id | No | Category ID the asset belongs to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It only states creation and required fields, omitting details like idempotency, permissions, success response, or constraints (e.g., code uniqueness). This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two short sentences, no redundant information, and front-loads the primary purpose and requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, no output schema, and no annotations, the description lacks critical information such as what the response contains, whether the operation is reversible, or any behavioral constraints. It is insufficient for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds no additional meaning beyond noting that name and code are required, which is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's action ('Create a new asset'), specifies the resource ('DCL module'), and notes required fields, distinguishing it from sibling tools like update_asset or list_assets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating an asset but offers no explicit guidance on when to use this tool over alternatives like create_customer or create_invoice, nor does it specify prerequisites beyond required fields.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_asset_movementB
Create a new asset movement (dispatch note, transfer) in Workadu.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_id | Yes | The asset ID this movement is for | |
| type | Yes | Movement type | |
| quantity | No | Quantity of assets moved | |
| source | No | Source location | |
| destination | No | Destination location | |
| notes | No | Notes about the movement |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states only that the tool creates a movement, but does not disclose any behavioral traits such as authorization requirements, side effects (e.g., whether the asset's quantity is updated), idempotency, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with 11 words, front-loading the purpose. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should cover what the tool returns and any prerequisites (e.g., asset must exist). It lacks this context, leaving the agent uncertain about the response and preconditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage on all 6 parameters, so the schema already documents parameter meaning. The description adds minimal extra value (only the 'dispatch note, transfer' hint), so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'create a new asset movement' with parenthetical clarification '(dispatch note, transfer)', using a specific verb and resource. This distinguishes it from sibling tools like cancel_asset_movement, close_asset_movement, and list_asset_movements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or when not to use this tool versus alternatives. The usage is implied by the description and tool name, but there is no mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_customerB
Create a new customer. Only fullname is required; all other fields are optional.
| Name | Required | Description | Default |
|---|---|---|---|
| fullname | Yes | Full name of the customer (required). | |
| No | Email address. | ||
| mobile | No | Mobile phone number. | |
| country | No | Country name or ISO code. | |
| city | No | City name. | |
| address | No | Street address. | |
| vat_number | No | VAT registration number. | |
| tax_office | No | Tax office name. | |
| postal_code | No | Postal / ZIP code. | |
| comments | No | Free-text comments about the customer. | |
| tag_names | No | Comma-separated tag names to assign. | |
| is_company_customer | No | Whether this is a company (B2B) customer. | |
| gender | No | Gender of the customer. | |
| title | No | Title / salutation (e.g. Mr, Mrs, Dr). | |
| company_name | No | Company name (for B2B customers). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states 'Create a new customer', which implies a mutation, but fails to mention idempotency, duplicate handling, success response, or error conditions. The description is too sparse for a mutation tool with 15 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence, 12 words) and front-loads the action. However, it could be slightly expanded to include basic behavioral information without being verbose, so not quite a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 15 parameters and no output schema or annotations, the description is incomplete. It does not explain return values, error handling, or any side effects. The sibling tools offer similar create operations, but this description doesn't provide enough context for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers all 15 parameters with descriptions (100% coverage). The description adds no extra meaning beyond stating that only fullname is required, which is also evident from the schema's required array. Baseline is 3 as per guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Create' and resource 'customer', clearly indicating the action and resource. It also states that only fullname is required, distinguishing it from update_customer or get_customer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives guidance on required (fullname) vs optional fields, but does not specify when to use this tool versus alternatives or prerequisites. It provides basic guidance but lacks context on when to choose create over other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_invoiceA
Create a new draft invoice (without lines). Use add_invoice_line to add lines, then publish_invoice to finalize.
| Name | Required | Description | Default |
|---|---|---|---|
| issue_date | Yes | Issue date (YYYY-MM-DD) | |
| customer_id | Yes | Customer ID | |
| series_id | Yes | Invoice series ID (determines document type) | |
| includes_vat | No | Whether prices include VAT (default depends on series) | |
| currency_iso | No | ISO 4217 currency code (e.g. EUR, USD). Defaults to company currency. | |
| notes | No | Notes visible to customer | |
| admin_notes | No | Internal admin notes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates the tool creates a draft invoice, which is a non-destructive action. No annotations are provided, so the description carries the transparency burden; it adequately conveys the behavioral trait of creating a draft without further side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the purpose and provide workflow guidance without any unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the creation workflow and distinguishes from siblings, but does not mention return values (e.g., invoice ID) or prerequisites (e.g., customer existence). Given the absence of an output schema, a mention of return value would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 7 parameters. The description does not add additional meaning beyond what the schema already provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new draft invoice (without lines)', which specifies the verb (create), resource (new draft invoice), and scope (without lines). It distinguishes from sibling 'create_invoice_with_lines' and fits the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to use add_invoice_line for lines and publish_invoice to finalize, providing clear when-to-use and alternative steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_invoice_with_linesB
Create a new draft invoice with line items in a single call. Each line specifies a product/service, quantity, and pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| issue_date | Yes | Issue date (YYYY-MM-DD) | |
| customer_id | Yes | Customer ID | |
| series_id | Yes | Invoice series ID | |
| lines | Yes | Array of invoice line items (at least one required) | |
| includes_vat | No | Whether prices include VAT | |
| currency_iso | No | ISO 4217 currency code | |
| notes | No | Notes visible to customer | |
| admin_notes | No | Internal admin notes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states the tool creates a draft invoice (a write operation), but omits critical behavioral details: return value, side effects, error behavior, or required permissions. The agent cannot infer what happens on success or failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. First sentence states the core action, second explains line items. Very concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, nested lines, mandatory fields), the description is too brief. It does not explain constraints (min 1 line), required fields, or the workflow relationship to sibling tools. The agent needs more context to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully describes each parameter. The description's mention of 'product/service, quantity, and pricing' adds no new meaning beyond what is in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new draft invoice with line items in a single call. This distinguishes it from sibling tools like create_invoice (likely without lines) and add_invoice_line (adds to existing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for creating an invoice with lines together, but it does not explicitly state when to use it over alternatives (e.g., create_invoice then add_invoice_line) or provide any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_orderC
Create a new order/booking. Requires customer, service, and date range. Optionally specify pickup/return times, a comment, and a calendar color.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | ID of the customer for this booking | |
| service_id | Yes | ID of the service/vehicle being booked | |
| pickup_date | Yes | Pickup date in YYYY-MM-DD format | |
| return_date | Yes | Return date in YYYY-MM-DD format | |
| pickup_time | No | Pickup time in HH:MM format (24h) | |
| return_time | No | Return time in HH:MM format (24h) | |
| comment | No | Optional comment / notes for the booking | |
| color | No | Calendar color for the booking (e.g. "#FF5733") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states creation, lacks disclosure of side effects, permissions, reversibility, or error behavior. For a write operation, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action verb. No wasted words. Efficiently conveys core info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite schema descriptions, the description lacks return value info, error conditions, and behavioral details. For a tool with 8 parameters and no output schema, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions for all parameters. Description adds no new semantics beyond grouping required vs optional, which is already evident from the required array. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Create a new order/booking' with verb and resource, and lists required fields (customer, service, date range) which distinguishes it from sibling tools like create_invoice or create_asset. However, it could be more specific about what an order represents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use vs alternatives. While it lists prerequisites, it doesn't mention when to avoid or what other tools might be better suited (e.g., for invoices or assets).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_paymentC
Create a new payment. Requires issue date, customer, series, amount, and currency.
| Name | Required | Description | Default |
|---|---|---|---|
| issue_date | Yes | Issue date of the payment (YYYY-MM-DD) | |
| customer_id | Yes | ID of the customer | |
| series_id | Yes | ID of the payment series | |
| amount | Yes | Payment amount | |
| currency_iso | Yes | ISO 4217 currency code (e.g. EUR, USD) | |
| currency_rate | No | Currency exchange rate (default: 1) | |
| comments | No | Comments for the payment | |
| order_id | No | Associated order/booking ID | |
| notes | No | Internal notes for the payment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It mentions creation but omits side effects, authorization needs, idempotency, or error handling, leaving significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that are immediately informative. No wasted words, and the purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and moderate complexity (9 parameters), the description is too brief. It does not explain the return value, success indicators, or what happens upon creation, leaving agents underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description lists required parameters but adds no additional meaning beyond what the schema already provides via parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new payment and lists required fields. It is distinct from siblings like create_invoice or create_order due to the named resource, but does not explicitly differentiate itself, preventing a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It only states what it does and required parameters, lacking context for selection among sibling create tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_serviceB
Create a new service/product in Workadu. Title is required; other fields are optional.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Title of the service (required) | |
| description | No | Description of the service | |
| brand | No | Brand name | |
| category_id | No | Category ID | |
| type | No | Service type | |
| pax | No | Maximum capacity/pax | |
| min_pax | No | Minimum pax | |
| zone_id | No | Zone ID | |
| color | No | Calendar color (e.g. "#FF5733") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only notes required title; fails to disclose side effects, permissions, or behavior on duplicate titles. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single clear sentence with no wasted words. Front-loads purpose and key constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters and no output schema, description omits overall behavior (e.g., return value, error conditions). Incomplete for complex creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100%; each parameter has description. Description adds only that title is required and others optional, which is already in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Create a new service/product in Workadu' with clear verb and resource. Distinguishes from siblings like 'update_service' and 'delete_service'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly indicates use case (creating a service), but no explicit when-to-use or alternatives. Context is clear given sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_withholdingB
Add a withholding tax deduction to an invoice.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes | The invoice ID to add the withholding to | |
| type | Yes | Withholding type (AADE tax type) | |
| category | Yes | Withholding category (AADE tax category) | |
| amount | No | Withholding amount (calculated from percent if not provided) | |
| percent | No | Withholding percentage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of behavioral disclosure. It does not mention side effects (e.g., modifying invoice totals), validation rules, required permissions, or whether the operation is idempotent. This is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it sacrifices necessary behavioral and usage context. While it is efficient, it leaves significant gaps, making it adequate but not exemplary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should explain return values, side effects, and prerequisites. It only states the action, leaving the agent uninformed about important contextual details like whether an invoice must exist or how errors are handled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters have descriptions in the input schema (100% coverage), so the schema already documents their meaning. The description does not add any additional semantics or context beyond what the schema provides, warranting the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add a withholding tax deduction to an invoice.' uses a specific verb ('Add') and resource ('withholding tax deduction to an invoice'), clearly distinguishing this tool from siblings like 'list_withholdings' which lists existing withholdings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description simply states the action without context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_assetB
Delete an asset by ID (DCL module).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The asset ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavioral traits. 'Delete' implies permanent removal, but there is no detail on cascading effects, reversibility, or side effects. The description is insufficient to understand the full impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is front-loaded with the action. While very short, it effectively conveys the core purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter and no output schema, the description is minimally adequate but lacks usage context and behavioral details. It provides enough to understand the basic function but not enough for confident selection among siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with one required parameter (id) described as 'The asset ID to delete'. The description adds nothing beyond 'by ID', but the schema already covers the parameter adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (delete), resource (asset), and identifier method (by ID) and includes the module context (DCL). This distinguishes it from other sibling tools like delete_order or delete_service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., deactivating or archiving). No mention of prerequisites, consequences, or conditions for use. The minimal description provides no context for decision-making among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_orderB
Delete (cancel) an order/booking by its ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The order/booking ID to delete/cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description fails to disclose destructive nature, reversibility, or side effects. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence, front-loaded. Could include more detail without harming conciseness, but no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and simple parameter, description is minimally adequate but lacks context on success/failure or idempotency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the schema already describes the id parameter. Description adds no new meaning beyond 'by its ID', achieving baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it deletes/cancels an order/booking by ID. It uses a specific verb and resource, and distinguishes from siblings like delete_asset or delete_service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., cancel_asset_movement). No mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_serviceB
Delete a service/product from Workadu.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The service ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It only says 'delete' without mentioning side effects, cascade deletes, or result confirmation. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and to the point, but it sacrifices necessary detail. It could be more concise while still informative, but as is it leans toward underspecification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only one parameter, no output schema, and no annotations, the description is too sparse. It fails to explain return values, error handling, or any operational details, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema adequately describes the 'id' parameter. The description adds no additional meaning or constraints beyond what the schema already provides, earning the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Delete' and the target resource 'a service/product from Workadu', making it specific and easily distinguishable from sibling tools like create_service or update_service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as prerequisites, irreversibility, or permission requirements. The description lacks any usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
email_orderB
Email an order/booking confirmation or details to a specified email address.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | The order/booking ID to email | |
| Yes | Recipient email address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits such as whether the order must exist, error handling for invalid emails, or confirmation of sending.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that effectively communicates the tool's purpose without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of two parameters and no output schema, the description is largely adequate. However, it could include minor details like a success indicator or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema, which already explains order_id and email clearly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Email' and the resource 'order/booking confirmation or details', distinguishing it from siblings like create_order or get_order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., publish_invoice, resend_asset_movement), leaving the agent without context on appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assetA
Retrieve a specific asset by ID (DCL module).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The asset ID to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only says 'retrieve' with no mention of side effects, error behavior, authentication needs, or rate limits. This is insufficient for a complete understanding of tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the key purpose. It contains no filler and every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval with one parameter and no output schema, the description is minimally adequate. However, it does not explain the return format or behavior when the asset is not found, which could be useful context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the id parameter. The description adds '(DCL module)' context but does not enhance semantic understanding beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb ('retrieve'), the resource ('asset by ID'), and includes context ('DCL module'). It is specific and distinguishes from siblings like list_assets or other get_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as list_assets or search. The purpose is implied for retrieving a single asset by ID, but the description lacks any when-not or exclusionary language.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_asset_movementB
Get details of a specific asset movement by ID from Workadu.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The asset movement ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Get details' implying a read-only operation but does not explicitly confirm idempotency, safety, permissions needed, or error behavior. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 11-word sentence conveys the essential purpose without any extraneous words. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fails to indicate what 'details' are returned, such as specific fields or properties. For a simple tool this is adequate but incomplete; agents might need to infer the response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'id' described as 'The asset movement ID'. The description adds 'by ID from Workadu' but does not enhance understanding beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'asset movement', and the identifier 'by ID from Workadu'. It is specific and distinguishes from sibling tools like list_asset_movements which list all movements, and other action-oriented siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like list_asset_movements, cancel_asset_movement, or create_asset_movement. The agent receives no contextual cues for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_customerA
Get a specific customer by ID. Returns full customer details including decrypted PII fields.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The customer ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a key behavioral trait: returns decrypted PII fields. Without annotations, this is valuable context that goes beyond the schema. However, it omits error behavior or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that communicate the core purpose and a notable detail without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool, the description sufficiently explains what the tool does and what it returns. The lack of an output schema is compensated by stating returned content includes decrypted PII.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters and already describes 'id' as 'The customer ID.' The description adds no additional parametric meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name and description clearly indicate retrieving a specific customer by ID. It distinguishes itself from sibling tools like list_customers by focusing on a single entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a single customer's full details are needed, but it does not explicitly state when to use this tool over alternatives like list_customers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoiceA
Get details of a specific invoice by ID, including lines, customer, and series info.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The invoice ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states 'Get details', implying a read operation, but does not mention permissions, rate limits, or side effects. The lack of transparency is a gap for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the key action and resource. It conveys all necessary information without extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one required parameter and no output schema, the description explains what the tool does and includes details about the response content. However, it lacks some context about return format or behavior when invoice is not found.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a description for the only parameter 'id'. The tool description adds meaning by detailing what the response includes (lines, customer, series info), which goes beyond the schema's parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves details of a specific invoice by ID, and specifies it includes lines, customer, and series info. It distinguishes from siblings like list_invoices and other getters by focusing on a single invoice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing invoice details but does not explicitly state when to use or not use this tool versus alternatives like list_invoices or update_invoice. No context is provided for exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderA
Get a specific order/booking by its ID, including sub-orders, customer info, and related data.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The order/booking ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description indicates it returns multiple types of data (sub-orders, customer info). However, it does not disclose whether the operation is read-only, requires specific authorization, or any rate limits. Since it is a 'get' operation, it is likely safe, but lack of explicit info keeps the score at 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 18 words, front-loaded with the action and resource. No redundant phrases, every word adds value. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (1 parameter, no output schema, no nested objects), the description adequately covers the purpose and included data. It lacks context on authentication or error handling, but for a basic retrieval tool it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'id' described in the schema as 'The order/booking ID'. The description merely says 'by its ID', adding no new semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses 'Get a specific order/booking by its ID' with a clear verb and resource, distinguishing from the sibling 'list_orders' tool. It also mentions included data (sub-orders, customer info, related data), so purpose is clear and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. For example, it does not mention that this is for retrieving a single order by ID, while list_orders should be used for multiple orders. No exclusions or recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_serviceA
Get details of a specific service/product by ID, including rates, media, and attributes.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The service ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully bears the burden of behavioral disclosure. It only states 'Get details', which implies a read operation, but does not disclose any potential side effects, authorization requirements, rate limits, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that includes all essential information: the action, resource, and key return fields. No extraneous words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter tool with no output schema and no annotations, the description provides basic context about return fields (rates, media, attributes) but lacks details on response structure, pagination (if any), or common error scenarios. It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the single parameter 'id' with a clear description 'The service ID'. The description adds minimal value by saying 'by ID', which is already obvious from the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'service/product', and specifies that it returns details including rates, media, and attributes. This distinguishes it from sibling tools like list_services (which lists multiple) and update_service (which mutates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need details of a specific service by ID, but it does not provide guidance on when to use this tool versus alternatives like get_asset or get_customer, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_asset_movementsB
List asset movements (dispatch notes, transfers) from Workadu. Supports pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| per_page | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It only states it lists items and supports pagination, but does not clarify if it's read-only, what data is returned, or any constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two front-loaded sentences. No filler, but could still be improved with more context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and only two parameters, the description fails to explain return values, pagination defaults or limits, and how it relates to other listing tools. Incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for page and per_page. The description's mention of pagination adds no new meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'List' and resource 'asset movements' with examples (dispatch notes, transfers). Distinguishes from sibling tools like create_asset_movement or get_asset_movement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like get_asset_movement or list_assets. Only mentions pagination support, which is a feature, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_assetsA
List all assets (DCL module).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'List all assets', implying a read operation, but lacks details on pagination, rate limits, authentication, or whether the result set is complete. This is insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at 5 words, with no wasted text. It is front-loaded with the essential action and resource. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no params, no output schema), the description is marginally adequate. It states what the tool does and its module context, but does not mention the return format or any default behavior. For a complete understanding, an agent might need additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100% automatically. The description adds meaning by specifying that it lists 'all' assets, clarifying the scope. While there is nothing more to add, this is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'assets', and specifies the scope '(DCL module)'. This distinguishes it from sibling tools like list_asset_movements or list_customers, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. Given the presence of many sibling list tools (e.g., list_asset_movements, list_customers), explicit when-to-use or when-not-to-use instructions would be beneficial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_customersA
List customers (paginated, 50 per page by default). Supports search by name/email/mobile.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based). Defaults to 1. | |
| per_page | No | Results per page (max 50). Defaults to 50. | |
| search | No | Search term to filter customers by name, email, or mobile. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description mentions pagination and search but doesn't explicitly confirm read-only or disclose rate limits/ordering, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences cover purpose, pagination defaults, and search capabilities with no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks description of return structure (e.g., array of objects, pagination metadata) which would be helpful given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds no new parameter info beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List customers' with pagination and search, distinguishing it from sibling tools like get_customer or create_customer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly indicates usage for listing vs. single retrieval via sibling tools, but no explicit when-to-use or alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_invoicesB
List invoices/documents with optional filters. Statuses: CANCELED=0, PUBLISHED=1, DRAFT=2, PREVIEW=99.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| per_page | No | Results per page | |
| status | No | Filter by status (0=Canceled, 1=Published, 2=Draft, 99=Preview) | |
| customer_id | No | Filter by customer ID | |
| from_date | No | Filter from date (YYYY-MM-DD) | |
| to_date | No | Filter to date (YYYY-MM-DD) | |
| series_id | No | Filter by invoice series ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description only states the basic purpose and status codes. It does not disclose read-only behavior, pagination details, or any side effects. It is minimally adequate but lacks deeper behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Could be slightly more structured but efficient for the given information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and no output schema or annotations, the description does not explain return format, pagination behavior, or how filters combine. It is incomplete for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description repeats status mapping already in the schema and adds 'optional filters' which is evident. No additional semantic meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'invoices/documents', and specifies optional filters. It effectively distinguishes from sibling tools like get_invoice and other list_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives such as get_invoice for a single invoice or other list tools. The description implies usage through filters but does not provide when-not or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ordersA
List orders/bookings with optional filters for status, customer, date range, and pagination. In Workadu, "orders" at the API level represent Bookings (top-level entities containing sub-orders/items).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1) | |
| per_page | No | Results per page (default set by API, max 100) | |
| status | No | Filter by order status | |
| customer_id | No | Filter by customer ID | |
| from_date | No | Filter orders from this date (YYYY-MM-DD) | |
| to_date | No | Filter orders up to this date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It mentions optional filters and clarifies that orders are top-level Booking entities, but does not disclose pagination behavior, result ordering, or whether sub-orders are included in the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that efficiently state the tool's purpose and clarify an important domain nuance. No redundant or vague phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and no annotations, the description covers the basic concept but lacks details on pagination defaults, result behavior, or response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so baseline is 3. The description merely lists the filter types without adding new details beyond what the parameter descriptions already provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and resource 'orders/bookings', and clarifies the domain-specific terminology that 'orders' represent Bookings with sub-orders/items. This distinguishes it from other list tools like list_assets or list_customers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as get_order (for a single order) or other list tools. The description only implies usage through the tool name and filter listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_paymentsA
List payments or retrieve a specific payment by ID. Payment statuses: ACTIVE=1, DRAFT=2, FAILED=3, REFUNDED=4.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional payment ID to retrieve a specific payment | |
| page | No | Page number for pagination | |
| per_page | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It indicates a read operation and adds status mappings, but lacks details on pagination behavior, ordering, filtering, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loaded with purpose, followed by useful status mapping.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should explain return format. It provides status codes but omits response structure for pagination or ordering. Adequate for a simple list tool but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning to the parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists payments or retrieves a specific payment by ID, with a distinct verb and resource. It differentiates between two modes and provides status codes, enhancing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clarifies that the tool can be used for listing or retrieving a specific payment, implying read-only usage. However, it does not explicitly mention when not to use it or contrast with sibling tools like create_payment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_seriesB
List invoice series (document types). Series define the numbering and type of document (e.g. Invoice, Receipt, Credit Note).
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Optional series ID to get a specific series |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must cover behavioral traits. It only indicates a read operation ('list') but lacks details on side effects, permissions, rate limits, or output behavior beyond the basic listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, front-loads the action, and contains no fluff. Every sentence is useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description provides adequate context about what the tool does and what series are. However, it does not describe the output format (e.g., fields returned) or any behavioral details like ordering or filtering, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for its single parameter (id is described as optional). The description does not add any further parameter semantics beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists invoice series and explains what series are (document types with numbering). The verb 'list' and resource 'series' are specific, and the name is distinct from siblings, though no explicit differentiation is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives or any prerequisites. The description only explains the concept of series, not the context for their use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesB
List all services/products from Workadu. Supports pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| per_page | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only mentions pagination but does not explicitly state that the operation is read-only, has no side effects, or what authorization is needed. For a list tool, these are important traits to disclose to an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the essential information without any unnecessary words. It is perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 optional params, no output schema, no nested objects), the description is mostly adequate. However, it lacks mention of response format, default pagination values, or whether the result is sorted. This leaves some gaps for an agent needing to process the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters already documented in the input schema. The description adds no extra meaning beyond linking pagination to the parameters. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'services/products', making the tool's purpose unambiguous. It naturally distinguishes from sibling list_* tools which target different resources (e.g., list_customers, list_invoices).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., get_service for a single item, or other list_* tools). It fails to mention any restrictions, prerequisites, or exclusions. The pagination hint is present but does not constitute usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_withholdingsA
List withholding tax deductions for a specific invoice.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes | The invoice ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description bears full load. Only states 'list' implying read-only, but omits details on permissions, pagination, returned fields, or any side-effect info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 7 words, all meaningful. Front-loaded with verb and resource. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool with one param and no output schema, but missing return format details (e.g., what fields are listed). Could add value without verbosity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with invoice_id adequately described. Description adds no extra meaning beyond 'for a specific invoice' already implied by name and schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (list), resource (withholding tax deductions), and scope (specific invoice). Distinct from sibling tools as there is no other list_withholding tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context: use when you need deductions for an invoice. No explicit when-not or alternatives, but naturally implied since no other tool retrieves this data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_invoiceA
Publish/finalize a draft invoice. WARNING: This is IRREVERSIBLE โ once published, the invoice is submitted to AADE (Greek tax authority) and cannot be edited.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes | The draft invoice ID to publish/finalize |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description discloses irreversible action and tax authority submission. Provides good behavioral context, though prerequisites not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste. Purpose and critical warning front-loaded. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple (1 param, no output schema). Description fully covers purpose, behavior, and parameter meaning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and parameter description is already clear. Description adds no extra semantics beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'publish/finalize' and resource 'draft invoice'. Distinguishes from siblings like create_invoice, update_invoice, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes explicit warning about irreversibility and submission to tax authority, implying when to use. No explicit alternative but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resend_asset_movementC
Resend an asset movement notification in Workadu.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The asset movement ID to resend |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states the action but does not disclose side effects (e.g., whether it sends an email), idempotency, or required state of the asset movement. This is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence, which is concise and front-loaded. However, it could be slightly more informative without being verbose, so it is not a top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and no output schema. The description is adequate for basic understanding but lacks details on the result of the action (e.g., returns a confirmation) and any prerequisites, making it minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a clear parameter description. The tool description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (resend) and the resource (asset movement notification), which is a specific verb+resource. However, it does not differentiate from sibling tools beyond the implicit uniqueness of the 'resend' action, so it slightly misses the highest mark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or context. There is no explicit when-to-use or when-not-to-use information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_assetA
Update an existing asset by ID (DCL module). Only provided fields will be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The asset ID to update | |
| name | No | Updated name of the asset | |
| code | No | Updated code for the asset | |
| description | No | Updated description | |
| category_id | No | Updated category ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It mentions 'DCL module' without explanation and omits details about idempotency, authorization requirements, side effects, or error conditions. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence of 14 words. It is front-loaded with the primary action and provides necessary information without extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (5 params, 1 required, no output schema), the description covers the main purpose and partial update behavior. However, it lacks explanation of the 'DCL module' and any domain-specific context that might aid an agent unfamiliar with the system.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described. The description adds no additional semantic meaning beyond the schema except the notion that only provided fields changeโa standard expectation for update tools. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update', the resource 'asset', and the identifier 'by ID'. It distinguishes the tool from sibling tools like create_asset and delete_asset by specifying modification of an existing asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a partial update mechanism ('Only provided fields will be changed') but does not explicitly state when to use this tool versus alternatives such as create_asset or delete_asset. No exclusions or context for when not to use it are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_customerA
Update an existing customer by ID. Only the provided fields will be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The customer ID to update. | |
| fullname | No | Full name of the customer. | |
| No | Email address. | ||
| mobile | No | Mobile phone number. | |
| country | No | Country name or ISO code. | |
| city | No | City name. | |
| address | No | Street address. | |
| vat_number | No | VAT registration number. | |
| tax_office | No | Tax office name. | |
| postal_code | No | Postal / ZIP code. | |
| comments | No | Free-text comments about the customer. | |
| tag_names | No | Comma-separated tag names to assign. | |
| is_company_customer | No | Whether this is a company (B2B) customer. | |
| gender | No | Gender of the customer. | |
| title | No | Title / salutation (e.g. Mr, Mrs, Dr). | |
| company_name | No | Company name (for B2B customers). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the schema by stating that only provided fields are changed (partial update). With no annotations, this is a key behavioral trait. However, it does not disclose error handling, idempotency, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 16 parameters and no output schema, the description is minimal. It covers the core behavior but lacks details on error conditions, required permissions, or return values. Sufficient for a straightforward update but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters already have descriptions. The tool description adds only the general partial-update behavior, not per-parameter details. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (update), the resource (existing customer by ID), and the partial update behavior ('Only the provided fields will be changed'). It distinguishes from sibling tools like create_customer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly specify when to use this tool versus alternatives, nor does it mention prerequisites or exclusion criteria. The context implies that this is the appropriate tool for updating a customer, but no guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_invoiceA
Update an existing draft invoice. Only the provided fields will be changed. Cannot update published invoices.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The invoice ID to update | |
| issue_date | No | Updated issue date (YYYY-MM-DD) | |
| customer_id | No | Updated customer ID | |
| series_id | No | Updated series ID | |
| includes_vat | No | Whether prices include VAT | |
| currency_iso | No | Updated currency ISO code | |
| notes | No | Updated customer-facing notes | |
| admin_notes | No | Updated internal admin notes | |
| due_date | No | Payment due date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that only provided fields change and that published invoices cannot be updated. However, no annotations are present, and the description does not specify prerequisites (e.g., invoice must be in draft status), potential side effects, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. Essential information (action, resource, constraints) is front-loaded and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter update tool with no output schema and no annotations, the description covers core behavior and a key constraint. It could mention that the invoice must be a draft, but overall it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description does not add additional parameter semantics beyond what the schema already provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Update', resource 'existing draft invoice', and distinguishes from siblings like create_invoice and publish_invoice by specifying the draft-only constraint and field-level update behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (update draft invoices) and when not (cannot update published invoices). While alternatives like publish_invoice are implied by context, the description does not explicitly mention them, leaving some room for improvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_orderA
Update an existing order/booking. Only the fields you provide will be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The order/booking ID to update | |
| customer_id | No | New customer ID | |
| service_id | No | New service/vehicle ID | |
| pickup_date | No | New pickup date (YYYY-MM-DD) | |
| return_date | No | New return date (YYYY-MM-DD) | |
| pickup_time | No | New pickup time (HH:MM, 24h) | |
| return_time | No | New return time (HH:MM, 24h) | |
| comment | No | Updated comment / notes | |
| color | No | Updated calendar color |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the key behavioral trait of partial updates ('Only the fields you provide will be changed'). With no annotations, this covers the main behavior, though it omits details like permissions, idempotency, or reversal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with zero extraneous words. Every sentence serves a purpose: identifying the action and the partial-update behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a simple update tool but lacks information about return values (no output schema) and does not mention the required 'id' parameter (though it's in schema). Could be more complete with a note on what is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema fully describes all 9 parameters (100% coverage), the description adds semantic value by clarifying that only provided fields are altered. This exceeds the baseline of 3 for high-coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'existing order/booking', with the behavior 'Only the fields you provide will be changed'. This effectively distinguishes it from sibling tools like create_order, delete_order, and get_order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives (e.g., create_order for new orders, delete_order for removals). Usage is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_serviceB
Update an existing service/product. Only the provided fields will be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The service ID to update | |
| title | No | Updated title | |
| description | No | Updated description | |
| brand | No | Updated brand name | |
| category_id | No | Updated category ID | |
| type | No | Updated service type | |
| pax | No | Updated max capacity | |
| min_pax | No | Updated min pax | |
| zone_id | No | Updated zone ID | |
| color | No | Updated calendar color |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses partial update behavior ('Only the provided fields will be changed') but lacks other behavioral traits such as idempotency, authorization requirements, or side effects. With no annotations provided, the description carries the full burden and is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the core functionality. It is efficiently written with no wasted words, though it could include more usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and no output schema or annotations, the description is too sparse. It does not explain return values, error handling, or relationships to other entities, leaving the agent with incomplete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented in the schema. The description adds marginal value by clarifying the partial update semantics, but does not provide additional meaning beyond the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the resource ('existing service/product'). It distinguishes from sibling tools like create_service, delete_service, and get_service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (update an existing service) but does not explicitly state when to use this tool versus alternatives, such as when to use create_service or delete_service.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
38 tool updates
v1.0.0- First observed
add_invoice_line - First observed
cancel_asset_movement - First observed
close_asset_movement - First observed
create_asset - First observed
create_asset_movement - First observed
create_customer - First observed
create_invoice - First observed
create_invoice_with_lines - First observed
create_order - First observed
create_payment - First observed
create_service - First observed
create_withholding - First observed
delete_asset - First observed
delete_order - First observed
delete_service - First observed
email_order - First observed
get_asset - First observed
get_asset_movement - First observed
get_customer - First observed
get_invoice - First observed
get_order - First observed
get_service - First observed
list_asset_movements - First observed
list_assets - First observed
list_customers - First observed
list_invoices - First observed
list_orders - First observed
list_payments - First observed
list_series - First observed
list_services - First observed
list_withholdings - First observed
publish_invoice - First observed
resend_asset_movement - First observed
update_asset - First observed
update_customer - First observed
update_invoice - First observed
update_order - First observed
update_service
TDQS
Each tool targets a distinct resource or action, with no overlapping functionality. Even similar tools like create_invoice and create_invoice_with_lines are for different use cases (step-by-step vs. one-shot).
All tools follow a consistent verb_noun pattern in lowercase with underscores (e.g., create_asset, list_invoices, update_customer). No mixing of styles.
38 tools is slightly above average, but the breadth of functionality (assets, customers, invoices, orders, payments, services) justifies the count. Each tool serves a clear purpose without redundancy.
CRUD operations are covered for most resources (assets, customers, services, orders, invoices). Minor gaps: no delete_customer or update/delete_payment, but invoice and order workflows are thorough.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect any AI assistant to Syncro: manage tickets, invoices, customers, assets, and more.
Connect your AI to your Well financial data - invoices, companies, contacts.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Connect AI assistants to Subotiz - Using Subotiz's external capabilities through natural language
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with Odoo ERP systems through natural language, allowing users to search, create, update, and manage business records like customers, products, and invoices across any Odoo instance.1Mozilla Public 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to manage business operations including invoicing, WooCommerce syncing, expense tracking, POS, inventory, and team management through natural language.482MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with SalesDrive CRM, allowing order management, product queries, and more through natural language.Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with Jurisly workspaces for tasks like drafting invoices, finding hearing dates, and editing documents through natural language.Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/workadu/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server