Skip to main content
Glama
workadu

Workadu MCP Server

Official
by workadu

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 build

Configuration

The server requires two environment variables:

Variable

Description

Example

WORKADU_API_URL

Your Workadu instance URL

https://your-app.workadu.com

WORKADU_API_KEY

Your API key

abc123...

Copy .env.example to .env and fill in your values:

cp .env.example .env

Usage

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 inspect

This 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 start

Available Tools

Orders/Bookings

Tool

Description

list_orders

List orders/bookings with filters (date, status, customer)

get_order

Get order details by ID

create_order

Create a new booking/order

update_order

Update an existing order

delete_order

Cancel/delete an order

email_order

Send order confirmation email

Customers

Tool

Description

list_customers

List customers (paginated, searchable)

get_customer

Get customer details by ID

create_customer

Create a new customer

update_customer

Update an existing customer

Services

Tool

Description

list_services

List services/products

get_service

Get service details by ID

create_service

Create a new service

update_service

Update an existing service

delete_service

Delete a service

Invoices

Tool

Description

list_invoices

List invoices with filters

get_invoice

Get invoice details by ID

create_invoice

Create a new invoice

create_invoice_with_lines

Create invoice with line items

add_invoice_line

Add a line to existing invoice

update_invoice

Update an existing invoice

publish_invoice

Publish/finalize a draft invoice

list_series

List invoice series

list_withholdings

List withholdings for an invoice

create_withholding

Add withholding to an invoice

Payments

Tool

Description

list_payments

List payments

create_payment

Create a new payment

Assets (DCL)

Tool

Description

list_assets

List assets

get_asset

Get asset details by ID

create_asset

Create a new asset

update_asset

Update an existing asset

delete_asset

Delete an asset

Asset Movements (DCL)

Tool

Description

list_asset_movements

List asset movements

get_asset_movement

Get movement details by ID

create_asset_movement

Create a new movement

close_asset_movement

Close/finalize a movement

cancel_asset_movement

Cancel a movement

resend_asset_movement

Resend movement notification

Development

# Watch mode (auto-recompile on changes)
npm run dev

# Type checking
npm run lint

# Build
npm run build

Architecture

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 definitions

Authentication

The server authenticates with Workadu using the existing API key mechanism:

  • Sends Authorization: Basic base64(api_key:) header

  • Sends Dingo version header: Accept: application/vnd.rengine.v2+json

  • All API calls are automatically scoped to the company associated with the API key

License

UNLICENSED โ€” Proprietary Workadu software

Available Tools

38 tools
add_invoice_lineB

Add a line item to an existing draft invoice.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoice_idYesThe invoice ID to add the line to
descriptionYesLine item description
quantityYesQuantity
unit_priceYesUnit price
vat_percentYesVAT percentage (e.g. 24 for 24%)
discount_percentNoDiscount percentage (0-100)
service_idNoOptional service/product ID to link

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe asset movement ID to cancel

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe asset movement ID to close

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the asset
codeYesUnique code for the asset
descriptionNoDescription of the asset
category_idNoCategory ID the asset belongs to

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
asset_idYesThe asset ID this movement is for
typeYesMovement type
quantityNoQuantity of assets moved
sourceNoSource location
destinationNoDestination location
notesNoNotes about the movement

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullnameYesFull name of the customer (required).
emailNoEmail address.
mobileNoMobile phone number.
countryNoCountry name or ISO code.
cityNoCity name.
addressNoStreet address.
vat_numberNoVAT registration number.
tax_officeNoTax office name.
postal_codeNoPostal / ZIP code.
commentsNoFree-text comments about the customer.
tag_namesNoComma-separated tag names to assign.
is_company_customerNoWhether this is a company (B2B) customer.
genderNoGender of the customer.
titleNoTitle / salutation (e.g. Mr, Mrs, Dr).
company_nameNoCompany name (for B2B customers).

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_dateYesIssue date (YYYY-MM-DD)
customer_idYesCustomer ID
series_idYesInvoice series ID (determines document type)
includes_vatNoWhether prices include VAT (default depends on series)
currency_isoNoISO 4217 currency code (e.g. EUR, USD). Defaults to company currency.
notesNoNotes visible to customer
admin_notesNoInternal admin notes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_dateYesIssue date (YYYY-MM-DD)
customer_idYesCustomer ID
series_idYesInvoice series ID
linesYesArray of invoice line items (at least one required)
includes_vatNoWhether prices include VAT
currency_isoNoISO 4217 currency code
notesNoNotes visible to customer
admin_notesNoInternal admin notes

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
customer_idYesID of the customer for this booking
service_idYesID of the service/vehicle being booked
pickup_dateYesPickup date in YYYY-MM-DD format
return_dateYesReturn date in YYYY-MM-DD format
pickup_timeNoPickup time in HH:MM format (24h)
return_timeNoReturn time in HH:MM format (24h)
commentNoOptional comment / notes for the booking
colorNoCalendar color for the booking (e.g. "#FF5733")

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
issue_dateYesIssue date of the payment (YYYY-MM-DD)
customer_idYesID of the customer
series_idYesID of the payment series
amountYesPayment amount
currency_isoYesISO 4217 currency code (e.g. EUR, USD)
currency_rateNoCurrency exchange rate (default: 1)
commentsNoComments for the payment
order_idNoAssociated order/booking ID
notesNoInternal notes for the payment

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTitle of the service (required)
descriptionNoDescription of the service
brandNoBrand name
category_idNoCategory ID
typeNoService type
paxNoMaximum capacity/pax
min_paxNoMinimum pax
zone_idNoZone ID
colorNoCalendar color (e.g. "#FF5733")

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoice_idYesThe invoice ID to add the withholding to
typeYesWithholding type (AADE tax type)
categoryYesWithholding category (AADE tax category)
amountNoWithholding amount (calculated from percent if not provided)
percentNoWithholding percentage

TDQS

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe asset ID to delete

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe order/booking ID to delete/cancel

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe service ID to delete

TDQS

B3/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesThe order/booking ID to email
emailYesRecipient email address

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe asset ID to retrieve

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe asset movement ID

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe customer ID.

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe invoice ID

TDQS

A3.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe order/booking ID

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe service ID

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
per_pageNoNumber of results per page

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-based). Defaults to 1.
per_pageNoResults per page (max 50). Defaults to 50.
searchNoSearch term to filter customers by name, email, or mobile.

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
per_pageNoResults per page
statusNoFilter by status (0=Canceled, 1=Published, 2=Draft, 99=Preview)
customer_idNoFilter by customer ID
from_dateNoFilter from date (YYYY-MM-DD)
to_dateNoFilter to date (YYYY-MM-DD)
series_idNoFilter by invoice series ID

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination (default: 1)
per_pageNoResults per page (default set by API, max 100)
statusNoFilter by order status
customer_idNoFilter by customer ID
from_dateNoFilter orders from this date (YYYY-MM-DD)
to_dateNoFilter orders up to this date (YYYY-MM-DD)

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoOptional payment ID to retrieve a specific payment
pageNoPage number for pagination
per_pageNoNumber of results per page

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoOptional series ID to get a specific series

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number for pagination
per_pageNoNumber of results per page

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoice_idYesThe invoice ID

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoice_idYesThe draft invoice ID to publish/finalize

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe asset movement ID to resend

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe asset ID to update
nameNoUpdated name of the asset
codeNoUpdated code for the asset
descriptionNoUpdated description
category_idNoUpdated category ID

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe customer ID to update.
fullnameNoFull name of the customer.
emailNoEmail address.
mobileNoMobile phone number.
countryNoCountry name or ISO code.
cityNoCity name.
addressNoStreet address.
vat_numberNoVAT registration number.
tax_officeNoTax office name.
postal_codeNoPostal / ZIP code.
commentsNoFree-text comments about the customer.
tag_namesNoComma-separated tag names to assign.
is_company_customerNoWhether this is a company (B2B) customer.
genderNoGender of the customer.
titleNoTitle / salutation (e.g. Mr, Mrs, Dr).
company_nameNoCompany name (for B2B customers).

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe invoice ID to update
issue_dateNoUpdated issue date (YYYY-MM-DD)
customer_idNoUpdated customer ID
series_idNoUpdated series ID
includes_vatNoWhether prices include VAT
currency_isoNoUpdated currency ISO code
notesNoUpdated customer-facing notes
admin_notesNoUpdated internal admin notes
due_dateNoPayment due date (YYYY-MM-DD)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe order/booking ID to update
customer_idNoNew customer ID
service_idNoNew service/vehicle ID
pickup_dateNoNew pickup date (YYYY-MM-DD)
return_dateNoNew return date (YYYY-MM-DD)
pickup_timeNoNew pickup time (HH:MM, 24h)
return_timeNoNew return time (HH:MM, 24h)
commentNoUpdated comment / notes
colorNoUpdated calendar color

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe service ID to update
titleNoUpdated title
descriptionNoUpdated description
brandNoUpdated brand name
category_idNoUpdated category ID
typeNoUpdated service type
paxNoUpdated max capacity
min_paxNoUpdated min pax
zone_idNoUpdated zone ID
colorNoUpdated calendar color

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 38 tool updatesv1.0.0
    • First observedadd_invoice_line
    • First observedcancel_asset_movement
    • First observedclose_asset_movement
    • First observedcreate_asset
    • First observedcreate_asset_movement
    • First observedcreate_customer
    • First observedcreate_invoice
    • First observedcreate_invoice_with_lines
    • First observedcreate_order
    • First observedcreate_payment
    • First observedcreate_service
    • First observedcreate_withholding
    • First observeddelete_asset
    • First observeddelete_order
    • First observeddelete_service
    • First observedemail_order
    • First observedget_asset
    • First observedget_asset_movement
    • First observedget_customer
    • First observedget_invoice
    • First observedget_order
    • First observedget_service
    • First observedlist_asset_movements
    • First observedlist_assets
    • First observedlist_customers
    • First observedlist_invoices
    • First observedlist_orders
    • First observedlist_payments
    • First observedlist_series
    • First observedlist_services
    • First observedlist_withholdings
    • First observedpublish_invoice
    • First observedresend_asset_movement
    • First observedupdate_asset
    • First observedupdate_customer
    • First observedupdate_invoice
    • First observedupdate_order
    • First observedupdate_service

TDQS

A3.7/5.0
Disambiguation5/5

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).

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in lowercase with underscores (e.g., create_asset, list_invoices, update_customer). No mixing of styles.

Tool Count4/5

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.

Completeness4/5

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

ActivityStale
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
    1
    Mozilla Public 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with SalesDrive CRM, allowing order management, product queries, and more through natural language.
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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

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