accelo-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@accelo-mcplist my open tickets assigned to me"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
accelo-mcp
An unofficial Model Context Protocol server for the Accelo CRM platform. It exposes Accelo data and operations to MCP-compatible AI assistants through the documented Accelo REST API.
This project is not affiliated with or endorsed by Accelo. Users are responsible for their Accelo account, OAuth application, permissions, and data handling.
Installation
With uvx
The recommended installation for MCP hosts is:
{
"mcpServers": {
"accelo": {
"command": "uvx",
"args": ["accelo-mcp"],
"env": {
"ACCELO_DEPLOYMENT": "your-deployment",
"ACCELO_CLIENT_ID": "your-client-id",
"ACCELO_CLIENT_SECRET": "your-client-secret"
}
}
}
}To pin a release:
"args": ["accelo-mcp==0.1.0"]uvx installs the package into an isolated environment and runs the accelo-mcp command.
With pip
python3 -m pip install accelo-mcp
accelo-mcpFrom source
git clone <repository-url>
cd accelo-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"Related MCP server: CiviCRM MCP Server
Configuration
Copy .env.example to .env, or provide these variables through the MCP host:
Variable | Required | Default | Description |
| Yes | — | Deployment prefix, such as |
| Yes | — | OAuth2 client ID from an Accelo application |
| Depends on auth type | — | OAuth2 client secret; not required for public PKCE applications |
| No |
|
|
| No |
| OAuth2 scope; defaults to read-only. Add write access explicitly, e.g. |
| For |
| Local OAuth callback URL. Optional for |
| No |
| Port used by the SSE transport |
Create or obtain an OAuth application for the Accelo deployment you intend to access. Never commit client secrets, refresh tokens, access tokens, cookies, or webhook secrets.
Authentication types
All four authentication types use OAuth 2.0. They differ in whether a person authorises interactively in a browser and whether a client secret is required.
Auth type | OAuth 2.0 grant | Interactive browser login | Client secret | Typical use |
| Authorisation Code + refresh token | Yes, once | Required | Individual users; the recommended default |
| Authorisation Code with PKCE + refresh token | Yes, once | Not required | Publicly distributed clients that cannot keep a secret |
| Authorisation Code via PIN + refresh token | Yes (approve, then enter a PIN) | Required | Installed clients using Accelo's PIN approval |
| Client Credentials | No | Required | Server-to-server automation under a shared service identity |
Key points:
publicstill requires OAuth. "Public" means no client secret is distributed, not that authentication is skipped. On first run the server opens your browser, you log in to Accelo and authorise, Accelo redirects back to a local127.0.0.1callback listener, and the server exchanges the authorisation code (using a PKCEcode_verifier) for tokens. No client secret is ever sent.serviceis the only non-interactive flow. It authenticates as a service identity via the Client Credentials grant and never opens a browser. Every other type requires a one-time interactive authorisation.After the first authorisation,
web,public, andinstalledcache a refresh token and reauthorise silently, so the browser step is not repeated on later runs.The redirect URI must line up in three places for
webandpublic: theACCELO_REDIRECT_URIyou set, the port the local callback listener binds (derived from that URI, or8080if the URI has no explicit port), and the redirect URI registered on the Accelo application. Accelo rejects the authorisation request if its registered value does not match. Forpublic,ACCELO_REDIRECT_URIis mandatory and has no default.
Tokens are cached locally at ~/.accelo-mcp/tokens.json with restrictive file permissions. The local callback listener binds to 127.0.0.1 only.
Usage
The default transport is stdio, which is suitable for Claude Desktop, Kiro, and other local MCP hosts:
accelo-mcpThe server also supports SSE transport:
accelo-mcp --sseThe server provides 219 tools covering companies, contacts, affiliations, activities, projects, tickets, tasks, retainers, sales, billing, time tracking, custom fields, resources, workflow progressions, and related Accelo objects.
For complex queries, call accelo_get_context first. It describes the Accelo object model, relationships, filtering conventions, pagination, and field selection syntax.
Filtering and field selection
All list tools accept structured filters:
{"standing": "active"}
{"date_created_after": 1690000000}
{"status": [1, 2, 3]}
{"order_by_desc": "date_modified"}Request linked or optional fields with fields:
website,phone
postal_address(city,state)
_ALLDevelopment
make install # install the package and development dependencies
make test # run tests
make lint # run Ruff checks
make audit # audit Python dependencies for known vulnerabilities
make check # run lint, tests, and dependency audit
make build # build a wheel and source distributionSecurity
Please report suspected vulnerabilities privately. See SECURITY.md for the reporting process. Do not include credentials, customer data, or access tokens in an issue.
License
MIT. See LICENSE.
Available Tools
219 toolsaccelo_add_company_managerB
Add a staff member as a manager of a company.
Args: company_id: Company ID manager_id: staff_id of the staff member to set as manager (required) nature: Relationship nature — "professional" (default), "confidential", or "private"
| Name | Required | Description | Default |
|---|---|---|---|
| nature | No | ||
| company_id | Yes | ||
| manager_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full behavioral burden. It does not state permission requirements, whether the operation is idempotent, what happens if the manager already exists, or what the response looks like. This is a mutation tool with significant undisclosed behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but the Args section uses a code-documentation format that is not ideal for agent consumption. Each element is brief, but the structure could be more front-loaded with usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description should provide more behavioral context (permissions, side effects, response). It covers parameters well but leaves critical behavioral gaps unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description compensates by documenting all three parameters. It clarifies that manager_id is a 'staff_id' (useful disambiguation), that nature defaults to 'professional', and lists the enum values, which is not present in the schema. This adds meaningful value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (add) and resource relationship (staff member as manager of a company). It clearly distinguishes itself from siblings accelo_remove_company_manager and accelo_list_company_managers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage through the verb 'add' but no explicit when-to-use or when-not-to-use guidance, nor any mention of the sibling removal/list tools. Adequate but leaves context to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_cancel_timerC
Cancel and delete a timer.
Args: id: Timer ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full behavioral burden. It says 'cancel and delete' but doesn't state whether the timer is recoverable after deletion, whether it requires the timer to be running, permissions needed, or what happens if the timer is already cancelled. For a destructive operation with no annotations, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise with a clear first sentence stating the action. The Args section is redundant with the schema but harmless. Front-loaded and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations, no output schema, and 0% schema coverage, the description is thin. It should clarify the difference from accelo_delete_timer and whether cancel implies a soft-delete or state change versus hard deletion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and there is only one parameter ('id'). The description restates 'id: Timer ID' which adds minimal meaning beyond the parameter name itself. It doesn't clarify the ID format or whether it references a timer by numeric ID vs other identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (cancel/delete) and resource (timer), distinguishing it from sibling accelo_delete_timer and accelo_pause_timer reasonably well. However, it doesn't clarify the distinction between cancel versus delete semantics, which matters given accelo_delete_timer exists as a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus accelo_delete_timer, accelo_pause_timer, or accelo_start_timer. The agent must infer from the name alone that this is a combined cancel+delete operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_close_contract_periodA
Close a contract period.
WARNING: This replicates the actions taken when closing a period via the Web App, including auto-completing linked issues/tickets if the contract is configured for it, and triggering invoicing.
Args: id: Contract Period ID to close fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose important side effects: auto-completing linked issues/tickets if configured and triggering invoicing. It does not cover permissions, reversibility, or rate limits, but the side-effect warning is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: purpose first, then a high-value WARNING, then concise args. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation with no annotations, no output schema, and 0% schema description coverage, the description provides crucial side-effect context. It still omits reversibility, permissions, and a fuller explanation of the response, but it is largely complete enough to warn an agent about consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It defines id as the Contract Period ID to close and fields as additional fields to return, but 'fields' remains vague about expected format and which fields are valid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Close a contract period.' It clearly distinguishes this mutation from read-only siblings like accelo_get_contract_period and the opposite operation accelo_reopen_contract_period.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The WARNING implies this tool should be used only when the agent intends to replicate a Web App period closure with its side effects. However, it does not explicitly say when to use this instead of accelo_reopen_contract_period or other alternatives, leaving usage to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_convert_time_external_to_activityA
Convert a time external (imported calendar appointment) into an activity.
Creates a meeting activity against the given object, plus a second activity as a report on the meeting — the process for turning an imported appointment into a workable Accelo timesheet/schedule entry.
Args: id: Time External ID to convert (required) engagement_table: The against_type for the new activity — the object type the meeting is created against (e.g. "company", "job", "issue") (required) engagement_id: The against_id — ID of the object to create against (required)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| engagement_id | Yes | ||
| engagement_table | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose a non-obvious behavior: two activities are created (a meeting plus a report on the meeting). It does not state what happens to the source time external (deleted, mutated, or left intact), whether the operation is idempotent or reversible, or what permissions are required — significant gaps for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and the two-activity behavior are front-loaded in the first two sentences, with parameter detail relegated to a clearly labeled Args block. It is slightly verbose in restating 'against_type'/'against_id' alongside the parameter names, but every line carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter mutation tool with no annotations and no output schema, the description covers purpose, the surprising multi-record side effect, and all three parameters with domain context. It stops short of describing error conditions or the fate of the source record, which an agent would need for full confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it maps each parameter to a domain meaning ('Time External ID', 'the against_type ... e.g. company, job, issue', 'the against_id — ID of the object to create against'). The example values for engagement_table are especially useful since the schema provides no enum or description for it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource ('Convert a time external ... into an activity') and the second clarifies the exact side effect (a meeting activity plus a report activity). This clearly distinguishes it from generic siblings like accelo_create_activity or accelo_update_activity, which would otherwise look interchangeable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies context by describing the operation as 'the process for turning an imported appointment into a workable Accelo timesheet/schedule entry,' which suggests when it applies. However, it gives no explicit when-to-use guidance, no prerequisites (e.g. that the time external must first be found via accelo_list_time_externals), and no statement of when NOT to use it versus creating an activity directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_activitiesC
Count activities matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as whether it's read-only, authentication requirements, rate limits, or return format (though no output schema exists, so return format is less critical). Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no waste. However, it's so terse that it lacks necessary detail, which is more of an under-specification issue than a conciseness flaw, but the sentence is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one required-free parameter and no annotations or output schema, the description should explain how to use the filters parameter and what it returns. It does neither, leaving significant gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'filters' has 0% schema description coverage – it's an untyped object with no explanation. The description says 'matching the given filters' but gives no detail on filter syntax, accepted fields, or structure. Fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (count) and resource (activities) with a mention of filtering. Adequately distinguishes from sibling accelo_list_activities, though it doesn't explicitly name the alternative like the high-quality example does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus accelo_list_activities or other count tools. The description gives no context or implied usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_activity_threadsC
Count activity threads matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose that this is a read-only operation, what permission or rate limits apply, how filters are interpreted, or whether the count is exact or approximate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single, front-loaded sentence with no wasted words. It is appropriately concise, though its brevity contributes to the overall lack of detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a count tool with no annotations, no output schema, and 0% schema description coverage, the description is insufficient. It omits filter structure, return behavior, and routing among sibling count/list tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the single filters parameter is a generic object with no documented properties. The description merely says 'given filters' without adding any key names, value formats, or syntax beyond what the schema already lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Count) and resource (activity threads), making the tool's basic function clear. It does not explicitly differentiate itself from sibling tools like accelo_list_activity_threads or accelo_count_activities, but the count-versus-list distinction is inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus accelo_list_activity_threads or other counting siblings. The phrase 'matching the given filters' implies filtering but does not explain when counting is preferred over listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_addressesC
Count addresses matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says nothing about whether the count respects user permissions, how filters are interpreted, or what happens when filters is null/omitted, which for a filter-driven query tool is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero waste and the core operation front-loaded. It is well sized, though its brevity is partly a result of under-specification rather than economy of detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a count tool with no annotations, no output schema, and an entirely undocumented free-form filter object, the description leaves the agent without enough to call it confidently. At minimum the filter format and the null-filters behavior should be stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single 'filters' parameter is a free-form object with additionalProperties true. The description says 'matching the given filters' but gives no filter syntax, supported keys, or default behavior when filters is null, so it does not compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Count) and resource (addresses), so the agent knows the operation at a glance. It does not explicitly distinguish itself from the sibling accelo_list_addresses, which returns records rather than a tally, so differentiation is left to the naming convention.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance: nothing tells the agent to prefer this over accelo_list_addresses when only a total is needed, and no prerequisites or pagination caveats are mentioned. Only the tool name implies the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_affiliationsC
Count affiliations matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It doesn't disclose whether the operation is read-only (implied but unstated), what happens with invalid filters, rate limits, or what the return value looks like. For a count tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that is efficient and contains no waste. However, it is arguably too terse given the missing parameter detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, 0% parameter description coverage, and a very terse description, the definition is completely inadequate. An agent cannot know what filters are valid, what the return value is, or how to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and both parameters ('search' and 'filters') are undocumented in the schema. The description mentions 'filters' but provides no information about their format, allowed fields, or how 'search' interacts with 'filters'. The description fails to compensate for the complete lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (count) and resource (affiliations) with the filtering scope, distinguishing it from siblings like accelo_list_affiliations and accelo_get_affiliation. It's clear but doesn't explicitly differentiate itself from the list sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this counting tool versus accelo_list_affiliations or how the count is scoped. The description only states the operation without context for selection among alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_assetsC
Count assets matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether counting requires any permissions, how filters are combined, whether counting is exact or approximate, or any performance/rate-limit behavior for a potentially expensive aggregation call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with no waste. Front-loaded verb+resource. Brevity is appropriate, though it comes at the cost of the missing detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-param tool with 0% schema coverage, no annotations, and no output schema, the description is inadequate. An agent cannot know the filter shape, the units of the returned count, or when this tool is preferable to accelo_list_assets.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and neither parameter has a title-level description. The description mentions 'filters' generically but adds nothing about the shape of the filters object or the search field, which is a free-text string. With two undocumented parameters, the description should have compensated and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (count) and resource (assets) with scope (matching filters). Clear but provides no differentiation from siblings like accelo_list_assets or accelo_get_asset, which is the same gap shared by the ~50 other count_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance. The description does not say to use this instead of accelo_list_assets when only a total is needed, nor does it explain any prerequisites. An agent must infer the purpose entirely from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_checklistsC
Count checklists matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. "Count" implies a read-only operation, but the description does not state side-effect freedom, required permissions, rate limits, or any other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. However, its extreme terseness leaves key semantics unaddressed, so it is concise but not maximally useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple count tool, the description is minimally stated, but the filters parameter is completely undocumented and there are no annotations. It should at least clarify whether filters are optional or how they are structured.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, filters, is named but not explained; schema description coverage is 0%. The description does not add filter syntax, structure, or examples, so it fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: "Count checklists" with filter scope. It distinguishes counting from listing implicitly, though it does not explicitly name the sibling accelo_list_checklists alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "matching the given filters" implies the tool is for filtered counting, but it gives no explicit when-to-use guidance. It does not mention when to use this instead of accelo_list_checklists or other count siblings, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_companiesC
Count companies matching the given filters.
Args: filters: Same filters as accelo_list_companies search: Search over website, name, phone, fax
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Count' implies a read-only aggregate, but the description does not state behavioral traits such as whether it is read-only, whether it respects the same permission scoping as list_companies, or any rate-limit considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose. The Args section is a bit raw/docstring-like but does add parameter context without excess verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and 0% schema description coverage, the description leaves significant gaps: return shape (a count? a number?), error behavior, and permission model are unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters, and the description partially compensates by stating the 'search' scope (website, name, phone, fax) and that 'filters' mirrors accelo_list_companies. However, it provides no format details for filters, and the search field semantics are only loosely clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Count) and resource (companies) with the scoping condition (matching the given filters). However, it does not distinguish itself from the sibling accelo_list_companies beyond the count-vs-list distinction, which is somewhat self-evident from the names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. It references accelo_list_companies for filter semantics, but does not say when a caller should prefer count over list (e.g., for aggregation or pagination-free totals).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_contactsC
Count contacts matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not state that this is a read-only, non-mutating operation, nor does it describe the return shape (a bare count vs. an envelope), rate limits, or what happens with no matching contacts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the resource front-loaded and no filler. It is appropriately sized but arguably too terse for a tool whose schema and annotations are entirely empty.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with zero annotation coverage, 0% schema description coverage, and no output schema, the description should carry much more. It omits what 'search' does, what the count response looks like, and when this is preferable to listing contacts, leaving material gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the schema documents neither parameter. The description references 'filters' but says nothing about the separate 'search' parameter, its syntax, or how search differs from filters, leaving half the parameters effectively undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Count) and resource (contacts) plus the filtering scope, so the operation is unambiguous. However, it does not differentiate itself from the many sibling count tools or from accelo_list_contacts, so an agent must still infer which count family member to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this count tool versus accelo_list_contacts or the other accelo_count_* siblings. There is no mention of required permissions, prerequisites, or conditions that select this over a list-and-count alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_contractsC
Count contracts matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden but adds no behavioral context beyond the basic purpose. It does not disclose whether the count is approximate, how large result sets are handled, whether the operation requires specific permissions, or any other operational traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that is front-loaded with the core action. It is concise but perhaps too terse, missing opportunities to clarify usage or parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 0% parameter coverage, the description is insufficient for an agent to confidently invoke the tool. It lacks details on parameters, behavior, and when to use it, making it incomplete for a tool with potential filtering complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the undocumented parameters 'search' and 'filters'. It only vaguely references 'given filters' without explaining what the parameters accept, their formats, or examples, leaving significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Count') and resource ('contracts'), clearly distinguishing it from sibling tools like accelo_list_contracts and accelo_get_contract. It doesn't explicitly name those siblings, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., accelo_list_contracts for retrieving full records). Usage is only implied by the tool's name and description, with no explicit when-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_contributorsC
Count contributors matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that counting happens but says nothing about permissions, rate limits, whether the count respects pagination, or what the return shape is. For a query tool with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that is front-loaded and free of filler. It is appropriately sized for a simple count operation, though its brevity comes at the cost of the missing detail noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two undocumented parameters, no schema descriptions, no annotations, and no output schema, the description is far too thin. An agent cannot determine what a contributor is, how to construct filters, or what the result looks like, so the definition is not sufficient to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. The parameters 'search' and 'filters' are mentioned only as 'filters' in prose, and there is no explanation of the syntax, format, or accepted keys for either the search string or the filters object. The description does not add usable meaning beyond the bare parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (count) and resource (contributors), which is clearer than a bare name restatement. However it does not distinguish itself from the sibling accelo_list_contributors beyond the count/list distinction, leaving the agent to infer the difference. Vague about what a 'contributor' is in this domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this count tool versus accelo_list_contributors or accelo_count_contributor_types. The agent must infer that this returns a count rather than a list, and there is no mention of alternatives or exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_contributor_typesC
Count contributor types matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It does not state that the operation is read-only, whether it requires specific permissions, rate limits, or what the return payload contains. Only the minimal 'Count' semantics are implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero filler words. It delivers the core operation without any redundant or meandering phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and a schema that only defines an untyped `filters` object, the description is too thin. It does not explain the return format, filter capabilities, or behavioral guarantees needed to invoke the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the only parameter `filters` is left as a generic object with no field documentation. The description mentions 'filters' but adds no meaning about accepted filter keys, value formats, or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Count') and resource ('contributor types') with a scope modifier ('matching the given filters'). It does not, however, differentiate itself from the sibling tool `accelo_list_contributor_types`, which an agent would need to distinguish count vs. list semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like `accelo_list_contributor_types` or `accelo_get_contributor_type`. There are no prerequisites, exclusions, or context cues beyond the bare description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_divisionsC
Count divisions matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It confirms the tool counts rather than lists, but says nothing about whether it is read-only, what permission scope it requires, or how the optional filters argument behaves when omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, front-loading the verb and resource. It is appropriately sized for a simple tool, though it could have used its small budget to document the filters argument.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a minimal one-parameter count tool with no output schema and no annotations, the description is barely adequate. It conveys the core operation, but the opaque filters parameter and the presence of accelo_list_divisions mean an agent lacks enough context to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single "filters" parameter, which is an unspecified free-form object. The description references "the given filters" but adds no field names, syntax, or examples, so it fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ("Count") and resource ("divisions"), making the operation unambiguous. It does not distinguish itself from the sibling accelo_list_divisions or explain why one would count rather than list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "matching the given filters" hints at context but gives no when-to-use guidance, no mention of when to prefer accelo_list_divisions, and no prerequisites or exclusions. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_enumA
Count an object's enumeration values matching the given filters.
Only some enumerations expose a count endpoint; if the combination does not, a structured error is returned. See accelo_list_enum for valid pairs.
Args: object: Object name, e.g. "issues" enum_type: Enumeration kind, e.g. "statuses" filters: Filter dict search: Search over title (where supported)
| Name | Required | Description | Default |
|---|---|---|---|
| object | Yes | ||
| search | No | ||
| filters | No | ||
| enum_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that invalid endpoint combinations return a structured error and that search is only supported "where supported," which is useful. However, it does not describe return format (no output schema), authentication needs, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action, followed by critical constraints and a structured Args list. Every sentence adds information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four parameters with 0% schema coverage, no annotations, and no output schema, the description does reasonably well but leaves gaps: it doesn't explain what a successful response contains, error structure details, or any rate limiting. It is minimally adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across four parameters, so the schema provides no parameter documentation. The description adds meaning by giving examples for object ("issues") and enum_type ("statuses"), clarifying that filters is a "Filter dict," and that search applies to titles where supported. This is valuable but partially incomplete for a 0% coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ("Count") and resource ("an object's enumeration values") and includes the filtering constraint. It is clear what the tool does, though it does not explicitly distinguish itself from the sibling accelo_list_enum beyond the count vs list distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a key usage constraint: only some enumerations expose a count endpoint, and directs the agent to accelo_list_enum for valid pairs. This is actionable routing guidance, though it doesn't cover all when-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_expensesC
Count expenses matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state that this is a read-only/safe operation, what it returns (a numeric count), or any permission or rate-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is appropriately sized for a simple count tool, though extremely sparse relative to the undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two entirely undocumented parameters, no annotations, and no output schema, the description leaves the agent without the information needed to construct a correct call. It neither explains the filter shape nor the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both 'search' and 'filters'. The description alludes to filters generically but never explains the difference between the search string and the filter object, or what filter keys are accepted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Count) and resource (expenses) with the scoping condition 'matching the given filters'. This distinguishes it from sibling accelo_list_expenses, though the description never names that alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'matching the given filters' implies filtered counting but gives no when-to-use guidance, no mention of accelo_list_expenses as the alternative for retrieving records, and no exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_groupsC
Count groups matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing beyond the implicit read-only nature of a count. It does not describe permissions, whether the count respects the caller's visibility scope, or the shape of the result (a number vs. an object).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single grammatical sentence with zero waste and the operation front-loaded. It is efficient, though the brevity reflects under-specification rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with an open-ended filters object, no annotations, no output schema, and zero parameter documentation, the description is insufficient. An agent still cannot tell what filter keys are valid, what 'search' does, or what the return value looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, with two undocumented parameters ('search' and an open-ended 'filters' object with additionalProperties). The description references 'filters' only as a vague phrase and says nothing about the 'search' parameter or the accepted filter keys, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Count groups') and a scope ('matching the given filters'), so an agent knows exactly what operation is performed. However, it does not distinguish itself from the sibling accelo_list_groups or the many other accelo_count_* tools, leaving sibling differentiation to the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use count versus list, nor any statement of prerequisites or context. The phrase 'matching the given filters' implies filtering applies but never says which filters or when counting is preferable to listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_holidaysC
Count holidays matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about read-only nature, response shape (a count integer), or rate limits. 'Matching the given filters' hints at filtering behavior but is far too thin for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no wasted words; the purpose is front-loaded. It is concise, though there is very little content overall to structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with 0% schema coverage, no annotations, and no output schema, the description is too sparse — it does not compensate for the missing parameter documentation or explain the count semantics the agent needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the two parameters ('search', 'filters') are essentially undocumented both in schema and description. The vague reference to 'given filters' does not explain what keys the filters object accepts or how 'search' differs from 'filters'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Count') and resource ('holidays'), and the 'matching the given filters' phrase distinguishes it slightly from the sibling accelo_list_holidays. However it does not name that sibling or explain the distinction explicitly, so it sits at the minimum-viable level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this count endpoint versus accelo_list_holidays, no note that results are unfiltered by default, and no mention of how 'filters' interacts with 'search'. The agent is left to infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_interactionsC
Count the interactions on a single activity.
Args: id: Activity ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, yet it says nothing about what is returned (a numeric count), whether nested interactions are included, permissions, or rate limits. The 'single activity' scope is the only behavioral detail offered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded single sentence with a clean args block and no wasted words. Appropriately sized for a one-parameter count tool, though the args section restates the obvious.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should explain what the count represents or its return shape, but it does not. For a tool whose entire value is a numeric result, that is a meaningful omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the schema only labels the property 'Id', so the description's 'id: Activity ID' does add needed meaning. However it provides no format, type, or example guidance beyond identifying the parameter as an activity identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (count) and resource (interactions) and scopes it to a single activity, which distinguishes it from sibling list/count tools like accelo_list_interactions and accelo_count_activities. It is clear on its own but does not explicitly name the alternatives it competes with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no comparison to the numerous sibling count/list tools. The agent must infer the use case entirely from the tool name and the one-line purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_invoice_line_itemsC
Count invoice line items matching the given filters (Beta).
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the Beta status but says nothing about return format, pagination (irrelevant for count), required permissions, or how the filter object is structured. For a count operation with zero annotation coverage, this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that is front-loaded with the verb and resource. No wasted words, though the 'Beta' suffix adds little for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero schema coverage, no annotations, and no output schema, the description is too sparse. It doesn't explain the filter parameter format or what the count result represents, leaving significant gaps for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are 2 parameters (search, filters). The description doesn't explain what 'search' covers or the expected format/keys of the 'filters' object. Since the schema has no property descriptions, the description needed to compensate but did not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Statement of a specific verb (Count) and resource (invoice line items) with the filtering scope. It clearly distinguishes itself from the sibling list tool accelo_list_invoice_line_items, though it does not name it explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'Count' implies usage for getting totals rather than listing items, which is a natural distinction from accelo_list_invoice_line_items. However, there is no explicit when-to-use guidance, no mention of when not to use it, and the 'Beta' tag is unexplained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_invoicesC
Count invoices matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It implies a read-only count but does not state permissions, whether deleted invoices are included, rate limits, or any other operational trait beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is appropriately sized for a simple count tool, though its brevity contributes to missing parameter and behavioral detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 0% schema description coverage, the description is too thin for an agent to invoke this tool confidently. Filter and search semantics remain unspecified, so an agent must guess how to construct valid calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two parameters. The description only repeats 'filters' and never explains the 'search' parameter, filter syntax, allowed filter keys, or matching behavior, so it adds no real meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and resource: counting invoices matching filters. It distinguishes count from list by the verb itself, though it does not explicitly name or differentiate from siblings like accelo_list_invoices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no when-to-use guidance, no prerequisites, and no comparison to alternatives such as accelo_list_invoices or accelo_count_invoice_line_items. The phrase 'matching the given filters' gives no selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_issuesC
Count issues matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not confirm this is a read-only operation, does not describe what the filters object accepts, and says nothing about return shape or permission/scope behavior for counting issues.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity is also the source of the other gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and fully undocumented parameters, one sentence is not enough. The agent has no information about filter syntax, search semantics, or what the count result represents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% with two parameters ('search' and 'filters'), yet the description only echoes 'filters' and never mentions 'search' or the expected structure of either argument. Since the schema documents nothing, the description should compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Count') and resource ('issues'), which cleanly separates it from accelo_list_issues and accelo_get_issue. It does not explicitly name the sibling or state the count-vs-fetch distinction, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'matching the given filters' implies a filtered count but gives no when-to-use guidance, no note about when to prefer accelo_list_issues instead, and no prerequisites. An agent must infer the distinction from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_jobsC
Count jobs matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It says nothing about return format (e.g., an integer), permissions required, rate limits, or how filters are applied, leaving the agent with almost no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero wasted words. It is appropriately sized for the minimal information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a count tool with no annotations, no output schema, and zero schema descriptions, the description should at least clarify what filters and search accept and confirm the return type. It does neither, so an agent lacks sufficient context to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters. The description only mentions 'filters' in passing and completely omits the 'search' parameter, adding no meaning beyond the property names and leaving both parameters effectively undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Count) and resource (jobs) with a scope (matching the given filters). It is clear what the tool does, but it does not explicitly differentiate itself from siblings like accelo_list_jobs or name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only implies that the tool is for counting jobs that match filters. There is no guidance on when to use it versus accelo_list_jobs or other count tools, and no prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_ledgersC
Count ledgers matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it discloses nothing beyond the verb. It does not state that this is a read-only/non-mutating operation, whether filters are required or optional, or what happens when no filters are supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste. Its brevity is appropriate in form, though it is under-specified rather than optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and 0% parameter documentation, the description leaves the filter contract and the read-only nature undisclosed. It is not sufficient for an agent to call it correctly with confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema documents nothing. The description mentions 'filters' but never explains the 'search' parameter or the expected shape/keys of the filters object, leaving both parameters effectively opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Count') and resource ('ledgers'), making it distinguishable from accelo_list_ledgers and accelo_get_ledger by the counting semantics. However, it does not explicitly reference those siblings to confirm the distinction, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'matching the given filters' hints at a narrowed query, but there is no guidance on when to use this versus accelo_list_ledgers, nor any prerequisite or exclusion. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_milestonesC
Count milestones matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not say what is returned (a scalar count?), whether the filters object is free-form or schema-constrained, or how 'search' behaves. For a tool with zero structured behavioral coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the verb and scope front-loaded and no filler. It is concise, though arguably at the cost of needed detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no annotations, no output schema, and an untyped free-form filters object, the description leaves too much unexplained. An agent cannot determine filter syntax or the return type from this definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It vaguely references 'the given filters' but never explains the filters object shape, the additionalProperties:true contract, or what the 'search' parameter matches against.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (count) and resource (milestones), which is clearer than the tautological siblings. However it does nothing to differentiate from accelo_list_milestones or accelo_get_milestone, leaving the agent to infer that this returns a number rather than records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of the list/get alternatives, and no indication of when counting is preferable to listing. Usage is only implied by the verb 'count'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_object_budgetsC
Count object budgets matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It doesn't disclose pagination behavior, whether the count respects filters or ignores them, return format, or any rate limits. For a count tool with no annotations, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficient sentence that is front-loaded with the verb and resource. No wasted words. However, it may be too terse given the ambiguity around filter semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and a free-form filters parameter. The description doesn't explain what the count represents, how filters work, or what the return might look like. For a tool with these structured gaps, the description is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there's only one parameter ('filters') which accepts an arbitrary object. The description mentions 'given filters' but provides no filter syntax, available fields, or examples. With low coverage and a free-form object parameter, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Count') and resource ('object budgets') with a stated scope ('matching the given filters'). It sits among many 'count_*' siblings, and the resource name distinguishes it, but there's no explicit differentiation from accelo_list_object_budgets or accelo_get_object_budget beyond the count semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative tool guidance is given. The phrase 'matching the given filters' implies usage but doesn't explain when a count is preferable to a list or how filters should be formed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_paymentsC
Count payments matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says nothing about permissions, rate limits, what 'filters' accepts, or what the count returns (an integer? an object?). For a tool whose behavior is entirely undisclosed, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, front-loaded and free of waste. It is appropriately sized, though it borders on under-specification rather than true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with zero annotations, no output schema, and a completely undocumented free-form parameter, the description is incomplete. An agent cannot determine what filters to pass or what the return value looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter 'filters' is typed only as a free-form object with no description. The description ('matching the given filters') adds nothing about the shape, keys, or accepted values of the filters object, leaving the parameter completely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb (Count) and resource (payments) with a scoping constraint (matching the given filters). It matches the naming pattern of many sibling count_* tools but doesn't explicitly differentiate itself from accelo_list_payments or accelo_get_payment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb 'Count' – an agent can infer this is for getting a total rather than a list. However, the description doesn't state when to prefer this over accelo_list_payments or how it relates to other count tools, leaving the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_prospectsC
Count prospects matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It says nothing about permissions required, whether the count respects search vs filters precedence, or what the response shape is (a count value). For a read-only query tool this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the operation front-loaded and no filler. It is efficient, though its brevity borders on under-specification rather than optimal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no annotations and no output schema, the definition should at minimum explain filter format (possibly pointing at accelo_list_filters) and confirm the return is a numeric count. Neither is present, leaving the definition incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only vaguely references "filters" and says nothing about the `search` parameter or the expected structure/keys of the free-form `filters` object (additionalProperties: true). The agent has no way to know valid filter syntax from the definition alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ("Count") and resource ("prospects") with the scoping condition ("matching the given filters"), which is enough to distinguish it from the list/get/create/update/delete prospect siblings. It does not, however, explicitly name list_prospects as the alternative for retrieving records rather than totals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use counting versus list_prospects, nor any mention of prerequisites, pagination, or cost/rate considerations. The phrase "matching the given filters" hints at filtering but leaves the agent to infer usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_purchasesC
Count purchases matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, yet it discloses nothing beyond the verb. It does not state that this is a read-only/side-effect-free operation, what happens when filters are omitted, or how results are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler and the purpose front-loaded. It is efficiently sized, though the brevity stems partly from under-specification rather than genuine economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 0% parameter documentation, the description should do far more work. An agent lacks the filter format, the meaning of 'search', and any behavioral context needed to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so both parameters ('search' and 'filters') are undocumented in the schema. The description mentions 'filters' generically but never explains the 'search' parameter or the accepted filter syntax, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('count') and resource ('purchases'), so the core intent is unambiguous. However it does not distinguish itself from siblings like accelo_list_purchases or accelo_get_purchase, leaving the count-vs-list distinction to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use counting versus listing or getting purchases, nor any mention of required permissions or prerequisites. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_quotesC
Count quotes matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It doesn't state the return shape, whether filters are translated to a query, pagination, empty-result behavior, or auth needs. 'Count matching the given filters' is the bare minimum.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence, front-loaded and free of waste. Concise but perhaps too terse given the 0% schema coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
2 parameters, 0% schema coverage, no annotations, no output schema. A count tool's whole value proposition rests on the filter semantics, which are entirely undisclosed. The definition is incomplete for how a caller would actually use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description names neither parameter's semantics. 'search' and 'filters' are undocumented in schema and description, leaving the agent to guess the filter syntax and what search does. The description adds nothing beyond the bare existence of filtering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'count' and resource 'quotes', clearly distinguishing it from accelo_list_quotes and accelo_get_quote among many siblings. It doesn't repeat the name redundantly or leave purpose ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus accelo_list_quotes or accelo_get_quote. With an enormous sibling list including accelo_list_quotes and accelo_count_activities, guidance on selecting count over list would be valuable and is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_ratesB
Count all rates on the deployment.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only aggregation but does not mention permissions, rate limits, whether the count is scoped or filtered, or the return type. Behavioral context is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence that is front-loaded and contains no filler. Every word contributes to stating the action and its scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param count tool, the description is adequate to invoke the tool, but with no annotations and no output schema it leaves the return format, safety profile, and any deployment-scoping caveats unstated. It is minimally viable but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to explain. The empty schema is fully consistent with the description, and the baseline for zero params is a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Count') and resource ('rates'), plus scope ('on the deployment'). This is clear enough to distinguish from list_rates or get_rate by the verb itself, but the description does not explicitly name or contrast with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no indication of when to prefer this over accelo_list_rates or accelo_get_rate, and no prerequisites or context. The purpose is implied only by the word 'Count'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_referralsC
Count referrals matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it says nothing about the return type (an integer count), whether it is read-only/safe, pagination irrelevance, or error behavior. Only the bare action is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which is proportionate for a simple count tool. It is efficient, though borderline terse given the undocumented parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and 0% parameter documentation, the description omits return format, filter structure, and safety profile. An agent knows what it does but not how to call it precisely or what it gets back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain the lone 'filters' parameter, but it only references it generically with no hint of accepted keys, value types, or shape for a free-form object. It adds essentially nothing beyond the schema's parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (count) and resource (referrals), which cleanly distinguishes it from accelo_list_referrals and accelo_get_referral. It does not explicitly name those siblings, but the count-vs-list distinction is inherent in the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this instead of accelo_list_referrals or accelo_get_referral, nor any note on why an agent would want a count rather than the records themselves. Usage is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_requestsC
Count requests matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: it does not say what the count covers, whether multiple filters are ANDed, how search interacts with filters, or what the form of the returned count is. 'Matching the given filters' is the only behavioral hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler or repetition. It is efficient, though the terseness borders on under-specification rather than ideal brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two undocumented parameters, no annotations, and no output schema, the description is far too thin. An agent cannot determine filter syntax, the effect of search, or what the returned count represents from this definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are two parameters, so the description must compensate. It mentions 'filters' generically but says nothing about the 'search' parameter or any filter key/format syntax, leaving the agent with no more information than the parameter names already give.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Count') plus resource ('requests') and scopes it to filters, which cleanly distinguishes it from accelo_list_requests and accelo_get_request. It does not explicitly differentiate itself from the other count_* siblings, but the resource noun carries that job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to count versus when to call accelo_list_requests, no mention of whether filters are required, and no note that a bare call returns a total. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_resourcesC
Count resources (attachments) matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. Beyond implying a read, it says nothing about behavior on large result sets, what the filter object accepts, or what the count response represents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with the resource disambiguation front and center. No filler, though it is arguably under-specified rather than merely concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 0% parameter coverage, the description leaves key gaps: the shape of the filters object, the role of 'search', and what the returned count covers. Too little for a tool whose structured fields explain almost nothing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and neither parameter is documented in the schema. The description references 'the given filters' but adds no semantics for the free-form filters object, and the 'search' parameter is never mentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Count) and resource, and usefully disambiguates that 'resources' means attachments, which an agent could not infer from the name alone. It doesn't explicitly differentiate from the sibling accelo_list_resources, but the count-vs-list distinction is self-evident from the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use a count instead of accelo_list_resources, nor any prerequisite or context. The usage (need a tally, not the records) is only weakly implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_segmentationsC
Count segmentations matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only count, but discloses nothing about the filter format, whether unfiltered calls return a global count, or what the response contains. For a tool with zero annotation coverage this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler, which satisfies conciseness. However, given the undocumented filter parameter, brevity here reads as under-specification rather than efficient editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and a fully undocumented free-form filters object, the description omits everything an agent would need to invoke this correctly beyond the tool's general intent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single 'filters' parameter is an unconstrained anyOf object/null. The description only restates the parameter name ('matching the given filters') without adding accepted keys, format, or constraints, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb (count) plus resource (segmentations), which distinguishes it from the sibling list_segmentations, get_segmentation and other count_* tools by its counting semantics. It does not, however, explicitly differentiate itself from accelo_list_segmentations or explain the distinction between a count and a list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no indication that this is preferable to list_segmentations when only the total is needed, and no prerequisites. 'Matching the given filters' implies filtering but never states which filters exist or whether they are optional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_signoffsC
Count signoffs matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only count operation, but does not disclose permissions, rate limits, whether it counts only accessible records, or how results are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no wasted words, and the core action is front-loaded. However, it is under-specified rather than optimally structured for a tool with two optional parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a count tool with no annotations, no output schema, and 0% schema coverage, the description is too sparse. It does not explain the difference between search and filters, what filters accept, or what the count represents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters. It mentions 'filters' only vaguely and completely omits the 'search' parameter, adding no meaningful semantics beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Count') and resource ('signoffs'), making the core action clear. It does not distinguish this tool from sibling list/count tools like accelo_list_signoffs, but the purpose is still understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this count tool instead of accelo_list_signoffs or other signoff-related tools. The phrase 'matching the given filters' implies filtering, but there are no explicit usage conditions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_skillsC
Count skills matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It does not disclose that this is a read-only, non-destructive operation, nor what the count response looks like (integer? wrapped object?), nor any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words, but the brevity reflects under-specification rather than efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and two completely undocumented parameters, the description leaves the agent without enough to call it correctly. It needs at least filter semantics and response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage across two parameters, the description must compensate but does not. It vaguely references 'filters' without explaining accepted keys or syntax, and never mentions the 'search' parameter at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Count skills'), which is a distinct operation from the sibling accelo_list_skills. It is clear and unambiguous, but it does not explicitly contrast itself with the list/count sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to prefer counting over listing, or any mention of the obvious alternative accelo_list_skills. The trigger context is left entirely to inference from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_staffC
Count staff members matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It doesn't disclose what 'filters' supports, whether the count is exact or approximate, whether it requires specific permissions, or what the response contains beyond a number (no output schema). Minimal transparency for a query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that is efficient and contains no redundant or filler content. Appropriate length given the limited information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a filterable count tool with one entirely undocumented parameter, no annotations, and no output schema, the description leaves large gaps. It doesn't define filter syntax, result semantics, or usage context relative to sibling list tools, so an agent cannot fully rely on it without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% – the single 'filters' parameter is an untyped arbitrary object with no documented properties. The description merely restates 'matching the given filters' without adding syntax, allowed fields, or format details, leaving the parameter essentially opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (count) and resource (staff members), which is clear enough. However, the phrase 'matching the given filters' adds no scope beyond what the name implies, and there are no siblings with overlapping intent among accelo_list_staff or accelo_get_staff to require differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this count tool versus accelo_list_staff or accelo_get_staff. With no exclusions or alternatives mentioned, the agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_tagsC
Count tags matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure, and it says nothing about permissions, rate limits, pagination, or the shape of the count result. The only behavioral hint is that results are scoped by filters, which is already implied by the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of filler, which is appropriate in form. The problem is under-specification rather than verbosity: there is simply not enough content to guide invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 0% parameter documentation, the description is the only source of behavioral and parameter information, and it supplies almost none. An agent would have to guess at filter syntax and whether 'search' is a text query.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for two parameters, so the description must compensate and does not. It gestures at 'filters' but never explains the filter object's structure, accepted keys, or the purpose of the separate 'search' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Count tags'), so an agent immediately knows the operation and the object. However, it does not differentiate itself from the sibling accelo_list_tags or explain how a count differs operationally from a list (e.g., returns only a number).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of the alternative accelo_list_tags, and no statement about whether filters are required or what happens when they are omitted. 'Matching the given filters' restates the existence of a parameter rather than telling the agent when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_tasksC
Count tasks matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose read-only nature, whether filters are ANDed, what happens with an empty/null filter, or any auth or rate-limit behavior. For a tool with zero annotation coverage, this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the action front-loaded and no filler. It is well-sized, though its brevity reflects under-specification rather than disciplined trimming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and two entirely undocumented parameters, the definition leaves too much unspecified for an agent to invoke it confidently. At minimum it should explain the filter format and what the count represents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so both 'search' and 'filters' are undocumented in the schema. The description mentions 'filters' only in passing and says nothing about the search parameter, the filters object shape, or accepted keys, so it fails to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Count') and resource ('tasks'), and the word 'matching' implies filtering. It is clearly distinguishable from accelo_list_tasks or accelo_get_task by the counting semantics, but it never explicitly contrasts itself with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use count versus list, whether filters are required or optional, or what context this tool fits into. The agent must infer everything from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_taxesC
Count tax codes matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Count' implies a read-only aggregate, but the description says nothing about the return value, filter semantics, permissions, or whether the count respects pagination or defaults.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; it is appropriately short for a simple counting tool, though the brevity is achieved partly by omitting necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 0% parameter coverage, no annotations, no output schema, and a free-form filter object, the description leaves an agent unable to construct a correct call or know what the result looks like. It should at least sketch the filter shape and confirm the numeric return.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter ('filters') with 0% schema description coverage, and the schema itself is an opaque object with additionalProperties=true. The phrase 'the given filters' adds no syntax, key names, or format detail to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('count') and resource ('tax codes') and matches its name, distinguishing it from siblings like accelo_list_taxes and accelo_get_tax. It does not, however, explicitly contrast itself with those siblings in the text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage signal is 'matching the given filters' — there is no statement of when a count is preferable to accelo_list_taxes, no mention of prerequisites, and no exclusions. An agent must infer the use case from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_count_time_externalsC
Count time externals matching the given filters.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses almost nothing: not that it is read-only, not the return shape, and not how 'the given filters' are applied. 'Matching the given filters' hints at scoping but stops short of real disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single economical sentence with no padding, front-loaded on the verb. It is terse to the point of under-specification, but structurally clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter counting tool with 0% schema coverage, no output schema and no annotations, the description is too thin. It neither defines the domain concept nor the filter format the agent must supply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both 'search' and 'filters', so the schema contributes nothing and the description must compensate. It only says filtering exists and never explains the expected filter keys or what 'search' matches.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Count') and resource ('time externals'), so an agent can distinguish it from the list/get/convert siblings. However, it offers no explicit differentiation text and leaves the term 'time externals' unexplained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives such as accelo_list_time_externals (for full records) or accelo_get_time_external. The agent must infer that this returns only a count.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_activityB
Create a new activity (note, email, call, or meeting).
Args: subject: Activity subject (required) against_type: Object type to create against (required). E.g. company, job, issue, staff, task against_id: ID of the object to create against (required) body: Activity body/content medium: Type — 'note', 'meeting', 'email', or 'call' (default: note) priority_id: Priority ID class_id: Activity class ID owner_type: Owner type ('staff' or 'affiliation') owner_id: Owner ID (staff_id or affiliation_id) billable: Billable time in seconds nonbillable: Non-billable time in seconds fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| fields | No | ||
| medium | No | ||
| subject | Yes | ||
| billable | No | ||
| class_id | No | ||
| owner_id | No | ||
| against_id | Yes | ||
| owner_type | No | ||
| nonbillable | No | ||
| priority_id | No | ||
| against_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the medium default ('note') and marks three required fields, but says nothing about permissions needed, visibility of the created activity, side effects, or what happens with an invalid against_type. For a mutation tool with zero annotation coverage this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line purpose is front-loaded and the Args list is compact, one line per parameter. A few lines (priority_id, class_id, owner_id) restate their names without adding value, which is minor waste but not bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter mutation tool with no annotations and no output schema, the description covers parameters adequately but leaves behavioral context thin: no auth/permission requirements, no note on what the created activity returns or its side effects. It is complete on the argument surface but incomplete on behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description is the only documentation, and it documents all 12 parameters. It adds genuine meaning for several: against_type examples (company, job, issue, staff, task), owner_type options ('staff' or 'affiliation'), medium enum values and default, and the unit for billable/nonbillable ('seconds'). A few entries are tautological (priority_id: Priority ID, class_id: Activity class ID), which keeps it from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new activity') and enumerates the subtypes it covers (note, email, call, meeting), which helps distinguish it from siblings like accelo_create_task or accelo_create_expense. It does not explicitly contrast itself with accelo_update_activity or accelo_convert_time_external_to_activity, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance. There is no statement about choosing this over accelo_create_task/accelo_create_issue, nor about prerequisites such as needing a valid against_type/against_id before calling. The medium default hints at usage but that is schema-level detail, not routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_addressB
Create a new address.
Args: against_type: Object type (required) — 'company' or 'contact' against_id: Object ID (required) title: Name for the address, e.g. "Head Office" street1: First line of street address street2: Second line of street address city: City name state: State/province name (use if state_id unknown) state_id: State ID (preferred over state name) country: Country name (use if country_id unknown) country_id: Country ID (preferred over country name) zipcode: Postcode/zipcode postal: "yes" or "no" — is this a postal address? physical: "yes" or "no" — is this a physical address? fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| state | No | ||
| title | No | ||
| fields | No | ||
| postal | No | ||
| country | No | ||
| street1 | No | ||
| street2 | No | ||
| zipcode | No | ||
| physical | No | ||
| state_id | No | ||
| against_id | Yes | ||
| country_id | No | ||
| against_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It does not disclose side effects, required permissions, whether the address is immediately available, or error conditions. Only states it creates an address, with no behavioral depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a header and bullet-like param list. It's front-loaded with the core action 'Create a new address.' and then details. Not overly verbose, but could be slightly more concise by omitting redundant labels like 'Street1: First line of street address' given the name is self-explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter mutation tool with no annotations and no output schema, the description provides necessary parameter info but lacks behavioral context, such as return values, error handling, or permissions. It's minimally adequate but leaves gaps an agent might need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so by listing all 14 parameters with brief explanations (e.g., 'state: State/province name (use if state_id unknown)'), clarifying required vs optional and mutual exclusivity between name and ID fields. This is strong compensation, though some parameters like 'fields' are vaguely explained ('Additional fields to return').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb and resource: 'Create a new address.' This directly distinguishes it from siblings like accelo_update_address and accelo_list_addresses. Missing explicit sibling differentiation, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives or in what context. It doesn't mention prerequisites (e.g., needing an existing company or contact) or exclusions. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_affiliationB
Create a new affiliation (link a contact to a company).
Args: company_id: Company ID (required) contact_id: Contact ID (required) email: Email for this affiliation phone: Phone for this affiliation mobile: Mobile for this affiliation position: Position at the company fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| No | |||
| phone | No | ||
| fields | No | ||
| mobile | No | ||
| position | No | ||
| company_id | Yes | ||
| contact_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It never says what permissions are needed, what happens if the contact is already affiliated with the company (duplicate handling), or what the call returns. For a write operation this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded: the purpose is the first sentence, and the argument list is easy to scan. Slight redundancy in repeating each parameter name alongside its gloss, but nothing wasteful enough to hurt.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with no annotations and no output schema, the parameter coverage is adequate, but the description says nothing about mutation-side behavior (duplicate handling, permissions, idempotency) or return shape. It is minimally complete for invocation but thin on the write semantics an agent needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does list all seven parameters with a short gloss for each, including explicit (required) markers on company_id and contact_id. The glosses for email/phone/mobile largely restate the names, but the required/optional split and the framing add real value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (affiliation) and adds a clarifying gloss — 'link a contact to a company' — that makes the domain concept unambiguous. It is clearly distinct from siblings like update_affiliation or delete_affiliation, though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, no mention of alternatives (e.g. use update_affiliation for existing links), and no prerequisites beyond which args are required. The agent must infer all of this from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_asset_linkB
Create an asset link between an asset and another object.
Args: asset_id: The asset to link (required) linked_object_id: ID of the object to link the asset to (required) linked_object_type: Object type to link to — one of the supported types for asset links (issue, job, prospect, contract) (required) description: Optional description of the link start_date: Optional link start date (unix timestamp) end_date: Optional link end date (unix timestamp)
| Name | Required | Description | Default |
|---|---|---|---|
| asset_id | Yes | ||
| end_date | No | ||
| start_date | No | ||
| description | No | ||
| linked_object_id | Yes | ||
| linked_object_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It usefully constrains linked_object_type to the supported values (issue, job, prospect, contract), but says nothing about permission requirements, idempotency, duplicate-link handling, or the response for this mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded summary sentence followed by a compact Args list. Every line adds information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation mutation tool with no output schema, the description covers inputs well but omits behavior an agent needs: permissions, failure/conflict semantics, and whether a link can be duplicated or must be unique.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate — and it does, documenting all six parameters, marking the three required ones, giving the unix-timestamp format for start_date/end_date, and enumerating valid linked_object_type values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Create') and resource ('asset link'), and names both endpoints (an asset and another object). It is readily distinguishable from sibling read/delete operations like accelo_list_asset_links and accelo_delete_asset_link, though it never explicitly names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is offered and no alternatives are referenced; the sibling accelo_delete_asset_link and accelo_list_asset_links are not mentioned. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_checklistB
Create a new checklist.
Args: against_type: Object type (required) — currently only 'task' is supported against_id: Object ID (required) items: Array of items (required). Each item: {"title": "...", "ordering": 0} fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| fields | No | ||
| against_id | Yes | ||
| against_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the useful constraint that against_type currently only supports 'task', but says nothing about permissions required, side effects, whether the created checklist is returned, or error behavior for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by a compact args list; every line maps to a parameter. No wasted prose, though the 'Args:' format is functional rather than polished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with no annotations, no output schema, and 0% schema coverage, the description covers the inputs well but is silent on permissions, side effects, and downstream behavior. Since no output schema exists, it could reasonably note what the call yields, leaving it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate, and it largely does: it documents all four parameters, marks the three required ones, explains the accepted value for against_type, and gives a concrete example item shape ({'title':'...','ordering':0}). Only 'fields' is left unexplained, keeping it out of the 5 range.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new checklist'), which cleanly distinguishes it from the sibling update/delete/list checklist tools. It's clear but doesn't explicitly call out those siblings, so it stops short of the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to reach for this tool versus alternatives, nor any prerequisites or exclusions beyond the parameter-level note that only 'task' is supported for against_type. That note is a constraint, not usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_companyA
Create a new company in Accelo.
Args: name: Company name (required) website: Company website URL phone: Phone number fax: Fax number comments: Notes about the company status_id: Initial status ID standing: Initial standing (overridden by status_id if both provided) parent_id: Parent company ID custom_id: Custom identifier fields: Additional fields to return in response
| Name | Required | Description | Default |
|---|---|---|---|
| fax | No | ||
| name | Yes | ||
| phone | No | ||
| fields | No | ||
| website | No | ||
| comments | No | ||
| standing | No | ||
| custom_id | No | ||
| parent_id | No | ||
| status_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It discloses that this is a create operation and notes one parameter interaction ('standing' overridden by 'status_id'), but omits permissions, duplicate behavior, side effects, and return format for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and then provides a compact, well-structured argument list. Given the absence of schema descriptions, every line in the Args block adds useful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter create tool with no annotations, no output schema, and 0% schema description coverage, the description covers purpose and parameter semantics reasonably well. However, it lacks usage guidance, behavioral details, and any indication of what the call returns, leaving meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description compensates by listing all 10 parameters with human-readable meanings. It marks 'name' as required and clarifies the override relationship between 'standing' and 'status_id', though it lacks expected formats or value domains for fields like 'status_id' and 'standing'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a new company in Accelo.' This clearly distinguishes it from sibling tools such as accelo_get_company, accelo_list_companies, accelo_update_company, and accelo_delete_company.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives, nor does it mention prerequisites such as permissions or duplicate handling. The create intent is implied by the verb, but no usage context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_contactB
Create a new contact (also creates an affiliation to the company).
Args: firstname: First name (required) surname: Surname (required) company_id: Company to affiliate with (required) email: Email address phone: Phone number mobile: Mobile number position: Job position/title at the company title: Honorific (Mr, Ms, etc.) fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| No | |||
| phone | No | ||
| title | No | ||
| fields | No | ||
| mobile | No | ||
| surname | Yes | ||
| position | No | ||
| firstname | Yes | ||
| company_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose one important behavioral trait: the automatic affiliation creation. Beyond that it is silent on permissions, whether an existing affiliation is duplicated, and failure behavior for an invalid company_id.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-sentence summary is front-loaded and carries the key side effect; the Args block is terse and each line adds a distinct semantic. Some repetition of parameter names is unavoidable given the schema has no descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nine-parameter mutation tool with no annotations and no output schema, the definition covers inputs and the affiliation side effect adequately, but says nothing about what is returned (the new contact ID) or how errors/invalid company_id are handled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it glosses all nine parameters and clarifies the ambiguous 'title' as an honorific (Mr, Ms) versus 'position' as the job title. Only 'fields' stays opaque ('Additional fields to return').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Create a new contact') and adds a meaningful qualifier: the call also creates an affiliation to the company. That side effect distinguishes it from accelo_create_affiliation and tells the agent it does not need a second call, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not guidance. The agent gets no instruction on when to prefer this over accelo_create_affiliation plus a separate contact creation, or what preconditions (e.g. an existing company_id) must hold.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_expenseC
Create a new expense.
Args: title: Expense title (required) against_type: Object type (required) against_id: Object ID (required) unit_cost: Cost per unit (required) quantity: Quantity (required) type_id: Expense type ID (required) billable: "yes" or "no" reimbursable: "yes" or "no" date_incurred: Date incurred (unix timestamp) fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| fields | No | ||
| type_id | Yes | ||
| billable | No | ||
| quantity | Yes | ||
| unit_cost | Yes | ||
| against_id | Yes | ||
| against_type | Yes | ||
| reimbursable | No | ||
| date_incurred | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only says 'Create a new expense' and does not disclose permission requirements, whether the mutation is idempotent/reversible, rate limits, or what happens to related objects. With 10 parameters and no annotations, the behavioral picture is largely absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and then a parameter list, which is reasonable structure. But 'Args:' formatting is a docstring artifact rather than a well-structured description, and several entries are redundant with the schema. It is not bloated, but it also is not tightly authored for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation tool with no annotations and no output schema, the description leaves major context gaps: valid values for against_type, the meaning/format of fields, whether billable/reimbursable are typed as strings for yes/no, and what the API returns. It provides required-field markers but not enough for an agent to confidently construct a valid call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does list each parameter with a short gloss and required flag. However, several glosses are pure restatements ('title: Expense title', 'type_id: Expense type ID') and crucial semantic details are missing: against_type's valid values, fields' expected format, and date_incurred's unix timestamp is noted but not the timezone/units. The list adds marginal meaning beyond the schema but does not fully compensate for 0% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb+resource: 'Create a new expense.' That is clear and distinguishes it from accelo_update_expense, accelo_list_expenses, and accelo_delete_expense by name/verb. It does not, however, explicitly differentiate from siblings or describe what an 'expense' means in this domain (e.g. against a job or activity), so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No 'when to use' or 'when not to use' guidance is provided. It gives required-field markers but never explains the context in which an expense should be created (e.g. against a job, purchase, or activity) or how it relates to siblings like accelo_create_activity or accelo_create_purchase. There is no exclusion or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_holidayB
Create a new holiday (Beta).
Only one of date_end or duration_seconds should be provided.
Args: title: Holiday name (required) date_start: Start date as unix timestamp (required) date_end: End date as unix timestamp (provide this OR duration_seconds) duration_seconds: Duration in seconds (provide this OR date_end) staff_id: Staff member ID (defaults to current user) fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| fields | No | ||
| date_end | No | ||
| staff_id | No | ||
| date_start | Yes | ||
| duration_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Create' implies a mutation, but the description never states permission requirements, what the response returns, or whether duplicate/overlapping holidays are allowed. The '(Beta)' note and mutual-exclusivity rule are the only behavioral signals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the mutual-exclusivity constraint are front-loaded, and the Args list is compact. Minor redundancy in restating parameter names, but each line adds a format or default not present in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and annotations are absent, so a complete description should cover at least the mutation's return shape and permission expectations. It fully covers inputs and one key constraint but leaves the post-call behavior unspecified for a write tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the Args block does real work: it documents all six parameters including formats ('unix timestamp'), default behavior ('staff_id defaults to current user'), and the mutual-exclusivity of date_end vs duration_seconds. It meaningfully compensates for the undocumented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create a new holiday') that clearly separates it from the get/list/update/delete holiday siblings. The '(Beta)' tag adds mild status context but the definition doesn't explicitly position it against alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, prerequisites, or conditions under which a caller would create a holiday rather than update one. Only the param-level mutual exclusivity of date_end/duration_seconds is offered as a constraint, which is not usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_issueB
Create a new issue (ticket).
Args: title: Issue title (required) type_id: Issue type ID (required) against_type: Object type (required) — e.g. company, job against_id: Object ID (required) description: Issue description status_id: Initial status ID class_id: Issue class ID assignee: Staff ID to assign priority_id: Priority ID affiliation_id: Affiliation ID date_started: Start date (unix timestamp) date_due: Due date (unix timestamp) fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| fields | No | ||
| type_id | Yes | ||
| assignee | No | ||
| class_id | No | ||
| date_due | No | ||
| status_id | No | ||
| against_id | Yes | ||
| description | No | ||
| priority_id | No | ||
| against_type | Yes | ||
| date_started | No | ||
| affiliation_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it says nothing beyond 'create' — no side effects (notifications, status defaults), no permission requirements, and no indication of what the against_type/against_id linkage does. For an unannotated mutation tool this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and the required fields are marked, with no filler sentences. The raw 'Args:' block is functional though slightly mechanical, and required vs optional is only conveyed by the '(required)' tag on some entries.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description covers the 13 parameters adequately but omits behavioral context: validation requirements, side effects, and what the call returns. It is minimally complete for a mutation tool but leaves an agent guessing about the write semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description's inline arg list is the only source of parameter meaning. It adds useful semantics beyond bare titles: against_type 'e.g. company, job', assignee as 'Staff ID to assign', date fields as 'unix timestamp', and 'fields: Additional fields to return'. A few IDs (type_id, class_id, status_id, priority_id) remain unexplained, but overall it compensates well for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Create a new issue (ticket).' This cleanly distinguishes it from the update/delete/list/get issue siblings. It does not explicitly reference any sibling, but the create verb and parenthetical clarify the resource unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative guidance is given. The description never mentions prerequisites (e.g. that a valid type_id or against_type/against_id must already exist), nor does it route the agent to accelo_update_issue or accelo_create_task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_jobC
Create a new job (project).
Args: title: Job title (required) against_type: Object type (required) against_id: Object ID (required) manager_id: Staff ID for manager (required) type_id: Job type ID (required) status_id: Initial status ID date_due: Due date (unix timestamp) date_started: Start date (unix timestamp) affiliation_id: Affiliation ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| fields | No | ||
| type_id | Yes | ||
| date_due | No | ||
| status_id | No | ||
| against_id | Yes | ||
| manager_id | Yes | ||
| against_type | Yes | ||
| date_started | No | ||
| affiliation_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not say whether the call requires specific permissions, what the response contains, whether required IDs must pre-exist, or what happens if an optional field is omitted. The only added behavioral hint is 'Initial status ID', which implies a status transition at creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence is good and the arg list is scannable, but each Args line largely restates the schema property name plus title (e.g. 'date_due: Due date'), adding length without much new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation tool with no annotations and no output schema, the description is thin: it omits valid values for the against_type/type_id/status_id foreign keys, says nothing about the created object or its return shape, and gives no error or permission context. An agent could construct the call but would likely guess at enum-like string values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does partially: it flags unix timestamps for date_due/date_started, clarifies that against_type/against_id are an object type/ID pair, and that manager_id is a staff ID. However, it never enumerates valid against_type values (company, prospect, contact, etc.) or explains the 'fields' return-projection, leaving key semantics unresolved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new job (project)'), which an agent can distinguish from the sibling read/update/delete job tools. It stops short of explicitly differentiating itself from accelo_list_jobs or accelo_update_job, but the verb is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as accelo_create_task or accelo_create_issue for work that isn't a job. The agent must infer that this is the entry point for job creation purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_object_budget_materialB
Create a new material line item on an object budget.
Args: budget_id: ID of the object budget to add the material to (required) title: Material title/description (required) quantity: Quantity of the material (required) unit_cost: Cost per unit (required) billable: "yes" or "no" — whether this material is billable fields: Additional fields to return on the created material
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| fields | No | ||
| billable | No | ||
| quantity | Yes | ||
| budget_id | Yes | ||
| unit_cost | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the mutation ('Create') and lists parameters, but omits permissions, side effects, idempotency, error behavior, and rate limits. This is a significant gap for a create operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose sentence and then a structured Args block that efficiently documents every parameter. There is no wasteful repetition, though the list format is somewhat schema-like rather than narrative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0% schema description coverage, the description adequately covers parameter semantics and implies the return value ('fields: Additional fields to return on the created material'). However, it lacks essential behavioral context such as authentication needs, error handling, and side effects that an agent would need to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all six parameters. It documents each parameter with meaning: budget_id (ID of object budget), title (material title/description), quantity, unit_cost (cost per unit), billable ('yes' or 'no'), and fields (additional fields to return). This is thorough, though it lacks constraints like numeric ranges or validation rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and resource ('new material line item on an object budget'), clearly distinguishing it from sibling operations like update or list. An agent can immediately tell what the tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only states what the tool does, with no guidance on when to use it versus alternatives like accelo_update_object_budget_material or accelo_list_object_budget_materials. No prerequisites, when-not conditions, or routing hints are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_prospectB
Create a new prospect (sale).
Args: title: Prospect title (required) affiliation_id: Affiliation ID (required) type_id: Prospect type ID (required) value: Monetary value staff_id: Manager staff ID date_due: Due date (unix timestamp) weighting: Weighting 0-5 status_id: Initial status ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| value | No | ||
| fields | No | ||
| type_id | Yes | ||
| date_due | No | ||
| staff_id | No | ||
| status_id | No | ||
| weighting | No | ||
| affiliation_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about permissions, whether the call is destructive/irreversible, what the response contains (new ID?), or duplicate-handling. For a mutation tool with zero annotation coverage this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in one clear sentence, followed by a structured arg list. The Args block mirrors the schema somewhat, but each line earns its place by supplying semantics the schema omits.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation tool with no annotations and no output schema, the description documents inputs adequately but is silent on return value, side effects and prerequisite data. Minimum viable but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it marks the three required fields and adds units/format detail the schema lacks, such as 'unix timestamp' for date_due and the '0-5' range for weighting. It falls short of explaining what 'fields' or 'status_id' values are acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new prospect') and clarifies the domain entity with '(sale)'. Sibling tools like accelo_list_prospects, accelo_get_prospect and accelo_update_prospect make the CRUD role inferable, but the description never explicitly differentiates itself from those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus alternatives, and no prerequisites beyond the required-parameter list. An agent is not told, for example, that an affiliation and prospect type must already exist, or when to prefer creating a prospect over a job or request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_quoteB
Create a new quote (proposal).
Args: title: Quote title (required) against_type: Object type (required) — typically 'prospect' against_id: Object ID (required) affiliation_id: Affiliation ID for the client contact manager_id: Staff ID for the quote manager date_expiry: Expiry date (unix timestamp) notes: Additional notes introduction: HTML introduction for the published quote conclusion: HTML conclusion for the published quote terms_and_conditions: HTML terms and conditions fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| title | Yes | ||
| fields | No | ||
| against_id | Yes | ||
| conclusion | No | ||
| manager_id | No | ||
| date_expiry | No | ||
| against_type | Yes | ||
| introduction | No | ||
| affiliation_id | No | ||
| terms_and_conditions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a write operation but says nothing about authentication requirements, permission scope, whether the created quote is a draft or published, or what the response contains. For a mutation tool with zero annotation coverage this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence is front-loaded and the parameter list is compact one-liners. The generated 'Args:' block is somewhat boilerplate but every line earns its place by supplying missing parameter semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters, a mutation side effect, no output schema, and no annotations, the definition covers inputs well but omits return shape, side effects, and usage context. It is adequate for invocation but not for an agent reasoning about consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It annotates all 11 parameters with meaning: requireds are flagged, 'against_type' is given the concrete example 'prospect', 'date_expiry' is noted as a unix timestamp, and three fields are identified as HTML. This substantially fills the schema gap, though types and nullability are not fully restated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new quote (proposal)'), which distinguishes it from accelo_update_quote, accelo_get_quote, accelo_list_quotes, and accelo_count_quotes in the sibling set. The parenthetical synonym 'proposal' adds useful domain disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus accelo_update_quote or other siblings, and no workflow context (e.g., a quote typically attaches to a prospect or job). The agent is left to infer the creation use case from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_requestC
Create a new request.
Args: title: Request title (required) type_id: Request type ID (required) body: Request body affiliation_id: Affiliation ID priority_id: Priority ID source: Source ('email' or null) fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| title | Yes | ||
| fields | No | ||
| source | No | ||
| type_id | Yes | ||
| priority_id | No | ||
| affiliation_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It signals a mutation ('Create') but discloses nothing about required permissions, side effects, whether the created object is returned, or how it interacts with the request type/affiliation it references.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the core action and the Args block is compact and scannable. There is no filler, though the parameter list format is mechanical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description should explain return/side-effect behavior, which it omits entirely. It covers the input surface adequately but leaves the agent without enough to reason about what happens after invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does enumerate all seven parameters and mark which two are required. However, most parameter notes merely restate the field name ('Affiliation ID', 'Priority ID') and only the 'source' entry adds real value by hinting at allowed values ('email').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create a new request'), which clearly distinguishes it from the sibling read/update tools like accelo_list_requests, accelo_get_request, and accelo_update_request. It does not, however, explicitly name those alternatives or explain how it relates to them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives or what prerequisites apply (e.g., whether a valid affiliation_id or type_id must already exist). The description is purely a parameter listing with no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_signoff_recipientB
Add a recipient to a signoff.
Args: signoff_id: The signoff to add the recipient to (required) recipient_id: ID of the recipient object (required) recipient_type: Object type of the recipient — "affiliation" or "staff" (required) approver: Whether this recipient can approve the signoff fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | ||
| approver | No | ||
| signoff_id | Yes | ||
| recipient_id | Yes | ||
| recipient_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It does not state side effects, permission requirements, whether adding a recipient triggers notifications, or what happens on duplicate recipients — significant gaps for a create/mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A short lead sentence followed by a compact Args list; every line maps to a real parameter and it is well front-loaded. Format follows a consistent docstring convention.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, no-annotation, no-output-schema mutation tool, the parameter coverage is solid but behavioral context (side effects, required permissions, notification behavior) is absent, leaving the definition only minimally sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it documents all five parameters including the constrained values for recipient_type ('affiliation' or 'staff'), which the schema does not express as an enum. Only 'fields' is described thinly ('Additional fields to return').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Add a recipient to a signoff'), which is clear and actionable. It does not differentiate from siblings such as accelo_update_signoff_recipient or accelo_delete_signoff_recipient, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives (update/delete signoff recipient, send_signoff). The agent must infer context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_skillC
Create a new skill.
Args: title: Skill name (required) fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it only states that a skill is created. It does not disclose permissions needed, uniqueness constraints, side effects, or what happens on duplicate titles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loads the core action. The Args block adds minimal but relevant parameter labels without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is significantly incomplete. It omits behavioral details such as required permissions, effects of duplicate names, and what the response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain both parameters ('title: Skill name (required)' and 'fields: Additional fields to return'), but 'fields' remains ambiguous—it could mean output shaping or input data—so the coverage is adequate but not fully clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a new skill.' It clearly distinguishes creation from siblings like accelo_list_skills and accelo_count_skills, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives, nor any preconditions or context. The implied usage from 'Create' is the only signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_staffA
Create a new staff member (user) on the Accelo deployment.
ADMINISTRATIVE WRITE — this provisions a new user account and consumes a
licence seat. Confirm with the user before calling. The password is a
secret: never echo it back in a response or log it.
Args: username: Login username (required) password: Initial password for the new account (required, secret) firstname: First name (required) surname: Surname (required) email: Email address (required) title: Title, e.g. "Mr", "Ms" phone: Phone number mobile: Mobile number fax: Fax number position: Position in the company fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| fax | No | ||
| Yes | |||
| phone | No | ||
| title | No | ||
| fields | No | ||
| mobile | No | ||
| surname | Yes | ||
| password | Yes | ||
| position | No | ||
| username | Yes | ||
| firstname | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and rises to it: it discloses that this is an administrative write, that it provisions an account and consumes a licence seat, that user confirmation is expected, and that the password is a secret not to be logged. It does not cover failure modes (e.g. duplicate username) or the return shape, but the safety/impact disclosure is genuinely valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by the high-priority safety warning, then a structured Args block. The parameter listing is somewhat long but each line earns its place given 0% schema coverage; little waste remains.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter mutation tool with no annotations and no output schema, the description covers purpose, impact, secrets handling, and every parameter. Return behavior is only hinted at via the 'fields' arg, so it is not fully exhaustive, but it is complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides only titles, yet the description documents all 11 parameters in order, marking the 5 required ones and flagging password as secret. The glosses are brief (phone/mobile/fax get no format detail) but they fully compensate for the documentation gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create a new staff member (user) on the Accelo deployment'), immediately distinguishing it from the read-only siblings like accelo_list_staff, accelo_get_staff, and accelo_count_staff, and from accelo_update_staff which edits existing records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies useful operating context ('Confirm with the user before calling', the licence-seat cost of provisioning), but never names when this should be chosen over accelo_update_staff or otherwise routes between alternatives. The guidance is contextual rather than comparative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_tagC
Create a new tag.
Args: name: Tag name (required) fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not say whether tag names must be unique, what happens on a duplicate name, whether the tag is globally available, or what permissions/error behavior to expect. Only the 'required' nature of name is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The body is brief and front-loaded with the core action, but it is framed as a Python-style Args docstring rather than prose, and no sentence addresses when to use the tool. It is minimally structured without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with zero annotations, no output schema, and 0% schema description coverage, the description is incomplete: it omits return shape, duplicate handling, and side effects. An agent has just enough to attempt the call but not to predict its behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does clarify that 'name' is the tag name and required, and that 'fields' selects additional fields to return, but it adds no format, length, or uniqueness constraints for either parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Create a new tag'), which is unambiguous. However, it makes no attempt to differentiate from sibling tag tools like accelo_list_tags or accelo_count_tags, and there is no mention of scope or duplicates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives or prerequisites; the only usage-relevant statement is that name is required. An agent must infer the context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_taskC
Create a new task.
Args: title: Task title (required) against_type: Object type (required) — e.g. job, milestone, issue against_id: Object ID (required) date_started: Start date as unix timestamp (required) description: Task description assignee_id: Staff ID to assign manager_id: Staff ID for manager date_due: Due date (unix timestamp) priority_id: Priority ID status_id: Initial status ID remaining: Budgeted time remaining in seconds fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| fields | No | ||
| date_due | No | ||
| remaining | No | ||
| status_id | No | ||
| against_id | Yes | ||
| manager_id | No | ||
| assignee_id | No | ||
| description | No | ||
| priority_id | No | ||
| against_type | Yes | ||
| date_started | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a mutation but never states required permissions, what happens on an invalid against_type/against_id, whether the new task ID is returned, or any side effects — significant gaps for a create operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and the rest is a clean, zero-waste argument list. Appropriately sized for a 12-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter mutation tool with no annotations, no output schema, and 0% schema description coverage, the description covers only the arguments. It omits behavior, permissions, and return/error information an agent needs to invoke it correctly, leaving the definition materially incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does document all 12 parameters with some added meaning: against_type examples (job, milestone, issue), unix-timestamp format for dates, and seconds for remaining. However the semantics remain thin (against_id is just "Object ID", assignee/manager IDs are unexplained) and no parameter is described in depth, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Create a new task"), which is enough to distinguish it from the list_tasks/get_task/update_task/delete_task siblings. It stops short of explicitly naming or contrasting with those alternatives, so it lands at a clear-but-undifferentiated 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives. The body is purely an argument list, so an agent gets no routing help beyond the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_timerB
Create a new timer.
Args: subject: Timer subject (required) against_type: Object type to time against against_id: Object ID to time against seconds: Initial seconds auto_start: Whether to start immediately (stops other timers) fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | ||
| seconds | No | ||
| subject | Yes | ||
| against_id | No | ||
| auto_start | No | ||
| against_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it does disclose one meaningful side effect: auto_start 'stops other timers.' That is genuine behavioral context. It still omits permissions, reversibility, and whether the timer begins paused or running by default.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the one-line purpose, then a compact Args list with no filler. Slightly mechanical but every line carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter mutation tool with no annotations and no output schema, the description covers inputs acceptably but says nothing about what is returned, whether the timer is created running or stopped, or how it relates to the timer lifecycle siblings (pause/cancel/delete).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (only bare titles), so the description must compensate — and it does annotate all six parameters with brief meanings, which is better than nothing. But it lacks units for seconds, allowed values for against_type, the format of fields, and the consequence of omitting against_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('Create a new timer'), which is specific and identifies the operation. However, it never distinguishes itself from the sibling accelo_start_timer, leaving ambiguity about whether create already starts timing or not — a real distinction the agent must resolve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to create a timer versus calling accelo_start_timer, nor on prerequisites for against_type/against_id. The agent must infer usage from parameter names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_create_webhook_subscriptionA
Create a webhook subscription.
When the event fires, Accelo POSTs a payload to trigger_url containing {id, resource_url}. Headers include X-Accelo-Event and X-Hub-Signature (HMAC hex digest if secret is configured).
Args: trigger_url: Callback URL to receive the webhook payload (required) event_id: Event to subscribe to (required). One of: assign_task, unassign_task, create_task, create_invoice, update_invoice, delete_invoice, create_request, update_request_status, create_issue, update_issue, create_company, update_company, create_contact, update_contact, create_sale, update_sale, delete_activity content_type: Payload format — 'application/json' or 'application/x-www-form-urlencoded' (default) secret: Optional secret for HMAC signature verification
| Name | Required | Description | Default |
|---|---|---|---|
| secret | No | ||
| event_id | Yes | ||
| trigger_url | Yes | ||
| content_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the exact payload shape ({id, resource_url}), the headers sent (X-Accelo-Event, X-Hub-Signature), that HMAC signing only occurs if secret is configured, and the content-type default. It stops short of auth/permission requirements or duplicate-handling behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then structured detail in an Args block. The long event enumeration is justified because the schema carries no enum, though the payload/header prose could be slightly tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param, no-annotation, no-output-schema tool at 0% schema coverage, the description covers all parameters and the downstream payload semantics thoroughly. Remaining gaps are auth/permission expectations and the immediate response format of the create call itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the schema has no enums, so the description fully compensates: it marks trigger_url and event_id as required, enumerates 17 valid event_id values, names the two allowed content_type values with the default, and explains secret's role in HMAC verification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (webhook subscription) that is unambiguous and clearly distinct from siblings like accelo_list_webhook_subscriptions and accelo_delete_webhook_subscription. The added payload/header detail reinforces what the created artifact actually does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not guidance, and no prerequisites or alternatives named. The 'create' verb implies usage, but the description never says when a webhook subscription is the right choice versus list/delete siblings, nor whether duplicates are permitted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_deactivate_contactA
Deactivate a contact (set standing to inactive).
This does NOT delete the contact — the Accelo API has no contact-delete operation; it only sets the contact's standing to "inactive". Takes no other parameters.
Args: id: Contact ID to deactivate
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose key behavioral traits: the mutation semantics (standing set to inactive) and, importantly, that it is not a delete. It omits reversibility (can the contact be reactivated?), permission/auth requirements, and idempotency, which would matter for a mutation, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the essential action and constraint, and short. There is mild redundancy, restating 'standing to inactive' twice and ending with an Args block that duplicates the only parameter already covered inline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter, no annotations, and no output schema, the description is nearly sufficient: it explains the action, its limit, and the sole argument. It could still note whether the operation is reversible or what a successful response indicates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there is one parameter, but the description compensates by explaining id is the 'Contact ID to deactivate' and that no other parameters are taken. That is adequate meaning for a single required id, though it adds nothing about format or lookup source.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (deactivate) and resource (contact) and immediately clarifies scope: it sets standing to inactive rather than deleting. This cleanly distinguishes it from siblings like accelo_update_contact or accelo_get_contact, so an agent can select it without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context by stating the Accelo API has no contact-delete operation and that this only sets standing to inactive, which effectively tells the agent when this is the correct action. However, it does not explicitly name any alternative tool or contrast with accelo_update_contact for other contact changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_delete_activityC
Delete an activity.
Args: id: Activity ID to delete
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it says only that an activity is deleted. It does not disclose whether the delete is permanent or reversible, whether special permissions are required, or what happens to dependent records. The word "delete" at least signals a destructive mutation, which keeps it above a 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core statement is front-loaded and free of filler, but the "Args:" block is a raw docstring artifact that adds structural noise rather than value for a single self-evident parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, irreversible operation with no annotations and no output schema, the description is too thin: it omits reversibility, permission requirements, and any notion of what a successful call returns. An agent cannot safely reason about the consequences of invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 0% schema coverage, the description does supply the only documentation available: id is the "Activity ID to delete." That confirms the identifier's meaning but adds no format, type, or sourcing detail beyond the obvious.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Delete an activity"), so an agent knows exactly what operation it performs. However, it offers no differentiation from siblings like accelo_update_activity, accelo_get_activity, or accelo_cancel_timer, so the agent must infer scope from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus alternatives such as updating or cancelling an activity, and no mention of prerequisites or consequences. The agent gets no context for choosing this tool over the update/get variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_delete_affiliationA
Delete an affiliation.
Args: id: Affiliation ID to delete
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says 'Delete' but does not disclose whether the deletion is permanent, what permissions are required, or whether related records are affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the action, and includes only the necessary argument detail. There is no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete tool, the description identifies the action and the required ID clearly enough to call it. However, it omits behavioral context such as reversibility or side effects, which is more important given the absence of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must clarify the single parameter. It does so by stating 'id: Affiliation ID to delete,' which gives the parameter clear meaning beyond the schema's bare 'Id' title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Delete an affiliation.' This distinguishes it from sibling operations such as list, get, create, and update affiliation tools. The argument line further clarifies the target by ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use guidance, no alternatives, and no when-not-to-use conditions. It only implies that this tool is for deleting an affiliation, leaving the agent to infer context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_delete_asset_linkC
Delete an asset link (does NOT delete the asset itself).
Args: link_id: The asset_link_id to delete
| Name | Required | Description | Default |
|---|---|---|---|
| link_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clarifies the destructive scope nicely (link not asset), but says nothing about permissions required, irreversibility, or what happens if the link_id is invalid. The scope clarification is genuinely useful, but a deletion tool with zero annotations needs more.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded; the scope clarification appears in the first sentence. The Args block is a bit machine-y but efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-param deletion tool with no output schema and no annotations, it covers the essential scope point but leaves permissions, failure modes, and reversibility unaddressed. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does explain link_id as 'The asset_link_id to delete'. That adds meaning beyond the bare integer schema, meeting the baseline, though it adds no format or validation detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Delete an asset link') and immediately clarifies scope with '(does NOT delete the asset itself)'. This distinguishes it from accelo_update_asset and accelo_delete_job-type siblings, though it doesn't name a specific sibling it could be confused with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, no mention of alternatives like accelo_create_asset_link or accelo_list_asset_links. The parenthetical clarifies what it does not do but provides no routing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_delete_checklistB
Delete a checklist.
Args: id: Checklist ID to delete
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states that the operation deletes a checklist, which is useful, but it does not disclose whether deletion is permanent, what permissions are required, what side effects occur, or whether the checklist can be recovered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and minimal: one clear sentence followed by the parameter explanation. Every element earns its place, with no redundant or verbose phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations and no output schema, the description is incomplete. It omits safety context such as irreversibility, required permissions, and what happens to related records, all of which an agent should know before invoking a delete tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for its single required parameter, so the description must compensate. It does so by clarifying that 'id' is the 'Checklist ID to delete,' which gives the parameter's semantic role beyond the schema's bare property name and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Delete a checklist.' An agent can distinguish it from the many checklist siblings such as list, get, create, update, and count. It does not explicitly differentiate against sibling alternatives, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no warning about consequences. The intended usage is implied by the name, but the description provides no explicit when-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_delete_companyC
Delete a company from Accelo.
Args: id: Company ID to delete
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. It doesn't say the operation is irreversible, whether it requires elevated permissions, whether it soft-deletes or hard-deletes, or what happens to dependent company records. Only the verb 'Delete' hints at destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence followed by a minimal args block; the operation is front-loaded. The 'Args:' scaffolding is boilerplate but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no annotations, no output schema, and no description of side effects or failure modes, the definition is too thin. An agent cannot tell what deletion implies for related records or how failures surface.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description does name the single parameter and explain its meaning ('Company ID to delete'), which is more than the bare 'Id' title in the schema. It adds format details or validation nothing beyond that, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Delete') and resource ('a company'), so the operation is unambiguous. It does not distinguish itself from sibling deletes (accelo_delete_job, accelo_delete_issue) or mention any alternative such as deactivation, but the purpose itself is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, no mention of what happens to related records (contacts, jobs, affiliations) or whether an alternative like deactivation exists. The agent is left to infer everything from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_delete_expenseC
Delete an expense.
Args: id: Expense ID to delete
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure for a destructive operation. It does not state whether the deletion is permanent or reversible, what permissions are required, whether linked records are affected, or what happens on failure. It adds only the bare implication of removal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loads the action before listing the single argument. It avoids padding, though the 'Args:' block is conventional boilerplate rather than value-adding prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation tool with no annotations, no output schema, and 0% schema description coverage, the description is too thin. It names the action and the parameter but omits irreversible effects, permissions, and failure behavior that an agent needs before invoking a delete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter 'id' has only a title in the schema. The description partially compensates by labeling it the 'Expense ID to delete,' which is meaningfully clearer than the bare property name. However, it gives no format, type, or sourcing details beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Delete an expense.' This is unambiguous and clearly distinct from siblings like accelo_create_expense, accelo_update_expense, and accelo_get_expense. It stops short of the richest form of clarity because it offers no scope details or explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as accelo_update_expense or soft-delete behaviors, nor any prerequisites or warnings about irreversible removal. The agent is left to infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_delete_holidayC
Delete a holiday (Beta).
Args: id: Holiday ID to delete
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Delete' implies a destructive, likely irreversible mutation, but the description says nothing about required permissions, whether the deletion cascades to related records, or whether it can be undone. The '(Beta)' tag is a minor but real disclosure of stability status.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded, with the purpose stated first. The docstring-style 'Args:' block is slightly noisy for a single parameter but wastes no meaningful space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive single-parameter mutation with no annotations and no output schema, the description should at minimum cover permissions and irreversibility. Instead it leaves the agent with only the purpose and a restated parameter, which is thin for a delete operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does clarify that the single 'id' parameter is a 'Holiday ID to delete', adding semantic meaning beyond the bare integer 'Id' in the schema, but it omits where to obtain the ID or any format constraint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Delete a holiday'), which cleanly distinguishes it from the sibling create/update/get/list holiday operations. It is clear what the tool does, though it never names those siblings explicitly to reinforce the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus alternatives, no prerequisite such as fetching the holiday ID via accelo_get_holiday or accelo_list_holidays first, and no warning about irreversibility. The only usage signal is the operation name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_delete_issueC
Delete an issue.
Args: id: Issue ID to delete
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It indicates a destructive deletion but omits reversibility, required permissions, confirmation behavior, side effects, and error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise and front-loads the operation. The 'Args:' section is minimal and does not waste words, though it is sparse for a destructive tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no annotations, no output schema, and 0% parameter description coverage, the description is incomplete. It should at least mention irreversibility, permissions, or expected behavior after deletion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the single parameter is named 'id' with type integer but no description. The description adds meaning by identifying it as the 'Issue ID to delete,' though it does not explain format, source, or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Delete an issue.' This clearly distinguishes the tool from sibling operations such as get, list, create, and update. It lacks scope details, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance, no prerequisites, and no alternatives. Usage is only implied by the tool name and the word 'Delete.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_delete_jobB
Delete a job.
Args: id: Job ID to delete
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'Delete a job.' It does not disclose destructiveness, irreversibility, permission requirements, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded: one sentence for the action and a clean parameter list. No superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is incomplete. It lacks warnings about irreversible deletion, required permissions, or post-deletion effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It identifies 'id' as 'Job ID to delete,' which adds minimal meaning beyond the schema's 'Id' title, but omits format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Delete') and resource ('job'), clearly distinguishing it from sibling operations like list_jobs, get_job, create_job, and update_job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. It only states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_delete_prospectC
Delete a prospect.
Args: id: Prospect ID to delete
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It says only 'Delete a prospect' and gives no information about irreversibility, permissions required, cascading effects, or whether the deletion is soft or hard.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and free of filler, consisting of one short sentence plus a brief args section. It is efficient, though perhaps too terse for a destructive operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0% parameter description coverage, the description is incomplete for a destructive tool. It omits critical context such as whether the action is reversible, what permissions are needed, and what happens on success or failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema's 'id' parameter has no description. The description adds minimal meaning by stating 'Prospect ID to delete', but it does not clarify format, expected type beyond the schema, or provide examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'Delete' and resource 'prospect', which is clear and distinguishes it from sibling tools like accelo_get_prospect, accelo_list_prospects, and accelo_update_prospect. However, it offers no scope or context beyond the basic action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as accelo_deactivate_contact or accelo_update_prospect. It does not mention prerequisites, side effects, or conditions for deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_delete_signoff_recipientC
Delete a signoff recipient.
Args: recipient_id: The recipient record's ID
| Name | Required | Description | Default |
|---|---|---|---|
| recipient_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It implies a destructive operation by using 'Delete' but does not disclose whether deletion is permanent, what side effects occur, what permissions are required, or what happens to related signoff records.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loads the action. The 'Args:' section is slightly mechanical but adds no real waste for such a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations, no output schema, and 0% parameter description coverage, the definition is missing critical context. It does not explain deletion semantics, prerequisites, or expected effects, leaving the agent with substantial gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only restates the parameter name as 'The recipient record's ID' without adding format, source, constraints, or examples beyond what the schema (integer, required) already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Delete a signoff recipient.' This clearly distinguishes it from sibling operations like create/update/list/get on signoff recipients, though it does not explicitly call out those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives such as updating or removing recipients through other means. There is no mention of prerequisites, permissions, or when deletion is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_delete_timerC
Delete a timer.
Args: id: Timer ID to delete
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it only restates the operation. It does not disclose irreversibility, permission requirements, or whether deleting removes logged time or merely the running entry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded with the operation first. The boilerplate 'Args:' block is low-value but not wasteful, and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive single-parameter operation with no annotations and no output schema, this is insufficient: no warning about the effect of deletion, no sibling disambiguation, no id-sourcing guidance. An agent has the minimum needed to invoke it but not to invoke it wisely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the only via-schema information is the bare title 'Id'. The description adds only 'Timer ID to delete', which confirms the id refers to a timer but supplies no format, type, or sourcing detail to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('Delete a timer') so the agent knows the operation. However, it does not differentiate from close siblings like accelo_cancel_timer, accelo_pause_timer, or accelo_list_timers, which is needed given how many timer tools exist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all. It never explains how this differs from accelo_cancel_timer or accelo_pause_timer, nor whether a running timer must be stopped first, leaving the agent to guess among near-synonymous siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_delete_webhook_subscriptionB
Delete a webhook subscription.
Args: id: Subscription ID to delete
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only restates the destructive action. It does not explain whether deletion is permanent, what permissions are required, or what side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded: one sentence for the action followed by a clearly labeled argument. Every element is necessary for a simple delete tool, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and an output schema, the description is too thin for a destructive operation. It omits critical context such as whether the deletion is reversible, required permissions, and expected behavior after deletion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must clarify parameter meaning. It specifies that "id" is the "Subscription ID to delete," which adds important semantic context beyond the bare integer type and "Id" title in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ("Delete") and resource ("webhook subscription"), making the tool's action clear. However, it does not differentiate this tool from sibling webhook subscription operations (list, create) beyond the verb in the name, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or conditions. It simply states what the tool does without any context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_describe_objectA
Get field descriptions and examples for an Accelo object type.
Returns detailed field-level documentation including types, descriptions, gotchas (e.g. time fields are in seconds), and usage patterns. Call this when you need to interpret response data or understand what fields are available.
Supported objects: activities, affiliations, companies, contacts, contracts, prospects, quotes, staff, tasks
Args: object_type: The object type to describe (e.g. "activities", "staff")
| Name | Required | Description | Default |
|---|---|---|---|
| object_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and discloses useful behavioral context: the return includes types, descriptions, gotchas like time fields being in seconds, and usage patterns. It does not cover auth requirements or rate limits, but for a read-only describe tool this is largely sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded: purpose first, then return behavior, when to call, supported objects, and the argument. Every sentence contributes without filler, and the structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter metadata tool with a present output schema, the description covers purpose, usage context, supported inputs, and notable return details. An agent has everything needed to call it correctly without redundant return-value explanation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It names the required object_type argument, gives examples, and lists the supported object types, effectively providing the enum-like values that the schema omits. It could be slightly more precise about accepted format, but it adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get field descriptions and examples for an Accelo object type.' It clarifies that it returns field-level documentation and lists supported objects, letting an agent distinguish it from CRUD siblings like accelo_get_activity or accelo_list_activities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-to-use condition: 'Call this when you need to interpret response data or understand what fields are available.' It does not explicitly state when not to use it or name alternative metadata tools, but the context is sufficient for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_download_resource_urlB
Get the download URL for a resource.
Returns the URL path to download the resource. The actual download requires the Bearer token as authentication.
Args: id: Resource ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that the tool returns only a URL path and that fetching the file itself requires Bearer-token authentication — meaningful behavioral context. It stops short of stating whether the URL is signed/expiring, what permissions are needed to obtain it, or what happens for an invalid id.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, followed by the return value and the auth caveat, then the Args block. It is tight and free of filler; the 'Args: id: Resource ID' line is slightly redundant but harmless.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-parameter read tool with no output schema, the description covers purpose, return value, and the auth prerequisite needed to actually use the result. It omits a few details (URL lifetime, id source) but is adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there is one required parameter, so the description does some work by labeling it 'Resource ID'. That is minimally better than the bare 'id' title but adds no format, type, or source detail (e.g., where the id comes from, valid ranges).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource: 'Get the download URL for a resource', and the second sentence clarifies it returns a URL path rather than the file itself. It is clear on its own, though it never names or contrasts with the closely related siblings accelo_get_resource / accelo_list_resources, so an agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement or comparison against alternatives such as accelo_get_resource. The only usage-relevant information is the incidental note that the actual download requires a Bearer token, which is a constraint rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_activityC
Get a single activity by ID.
Args: id: Activity ID fields: Additional fields to return, e.g. "body,owner(),against()"
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It lacks any information about authentication requirements, return format, rate limits, or error behavior. For a retrieval tool, some safety profile would be expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient: a one-sentence purpose followed by bullet-like parameter documentation. It is front-loaded with the core purpose and avoids unnecessary verbosity. However, the parameter section could be more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is minimally adequate. It covers the parameters but omits return value details, pagination, or any other behavioral context that an agent might need to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does document both parameters: 'id: Activity ID' and 'fields: Additional fields to return, e.g. "body,owner(),against()"', providing syntax and examples. However, it doesn't explain the format of 'id' beyond 'Activity ID' or the full range of possible fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get a single activity by ID.' This clearly distinguishes it from siblings like accelo_list_activities or accelo_count_activities. It falls short of a 5 only because it doesn't explicitly name those siblings for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no explicit guidance on when to use this tool versus alternatives. Since it names no alternatives or conditions, the agent must infer that this is for retrieving a specific activity, which is not ideal given the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_activity_time_allocatedA
Get aggregate time allocated across a set of activities.
Returns the summed billable/nonbillable seconds and total charged for the activities matched by the filters. This is an AGGREGATION over a collection (endpoint GET /activities/allocations), NOT a single activity's allocation — pass the same filters accepted by accelo_list_activities to scope the set (e.g. {"staff": 14, "date_logged_after": 1690000000}).
Args: filters: Same filter dict as accelo_list_activities (staff, against_type, against_id, date_logged_before/after, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It discloses the aggregation nature, the return content (summed billable/nonbillable seconds and total charged), and the underlying endpoint, which is strong. It doesn't mention auth requirements, rate limits, or edge case behavior like empty result sets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then behavior, then parameter details. It's slightly verbose but each sentence adds value. The parenthetical endpoint reference and example filter dict are useful, not filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-param aggregation tool with no annotations and no output schema, the description covers purpose, scope, return value, filter semantics, and the endpoint. It's nearly complete, though it could mention what happens with no filters or how results are paginated/shaped.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the schema only defines a free-form object. The description compensates fully by explaining what filters means, that it accepts the same dict as accelo_list_activities, and lists example keys (staff, against_type, against_id, date_logged_before/after). This adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get aggregate time allocated across a set of activities'), and explicitly distinguishes itself from alternatives by saying it's an AGGREGATION over a collection, NOT a single activity's allocation, naming the endpoint GET /activities/allocations. This lets an agent differentiate it from accelo_get_activity and accelo_count_activities without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the context ('pass the same filters accepted by accelo_list_activities to scope the set') and names the sibling for filter semantics. It lacks explicit when-not-to-use guidance (e.g., vs. count_activities or list_activities) but the collection-vs-single distinction effectively narrows usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_addressA
Get a single address by ID.
Args: id: Address ID fields: Additional fields to return, e.g. "country(),state()"
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Get' implies a read operation, but it does not disclose permissions, error behavior, side effects, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded, stating the core action first and then the args without wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool the input basics are covered, but with no annotations and no output schema the description omits return shape, default fields, and failure behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It documents both id as the address ID and fields as additional fields to return, including example syntax 'country(),state()', though it lacks deeper constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get a single address by ID.' This clearly distinguishes retrieval of one address from sibling operations like accelo_list_addresses and accelo_count_addresses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as accelo_list_addresses. The intended usage is only implied by 'by ID'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_affiliationC
Get a single affiliation by ID.
Args: id: Affiliation ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It reveals nothing about permissions, error behavior when the ID does not exist, or whether the resource is read-only. 'Get' implies a read, but that is the only signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: the first sentence states the core operation, followed by brief argument notes. No wasted words, though the 'Args:' block is a boilerplate style that adds little beyond what the schema already shows.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter retrieval tool with 0% schema coverage, no annotations, and no output schema, the description is too sparse. An agent cannot infer the ID type beyond integer, the fields string syntax, or error behavior, and there is no return-value guidance to fill the missing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate. It lists the two parameters by name ('id: Affiliation ID', 'fields: Additional fields to return'), which is mildly helpful, but it does not explain the expected format of 'id' or what the 'fields' string should contain (e.g., comma-separated field names). This leaves the agent guessing on the value syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (a single affiliation by ID), clearly distinguishing it from siblings like accelo_list_affiliations and accelo_count_affiliations. It does not explicitly name those siblings, but the singular 'single affiliation by ID' framing makes the retrieval-by-ID use case obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is provided. There is no mention of alternatives such as accelo_list_affiliations for browsing or accelo_count_affiliations for counting. The tool name implies my-usecase-only retrieval, but the description itself carries no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_assetC
Get a single asset by ID.
Args: id: Asset ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and it discloses almost nothing: no error behavior for an unknown/inaccessible ID, no indication of whether this is a safe read, and no pagination or expansion behavior. It implies a read-only retrieval, which is the minimum an agent can infer from the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and wastes no words, and the arg list is terse. The Args block is somewhat redundant with the schema, but it is short enough not to bloat the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter getter with no output schema, the essentials are present, but nothing explains the 'fields' expansion mechanism or failure modes, and with no annotations there is no safety profile to fall back on. Adequate but with visible gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does label both parameters ('id: Asset ID', 'fields: Additional fields to return'). However, it gives no format or syntax for 'fields' (comma-separated? array? field names from where?), leaving the more ambiguous parameter under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('a single asset') plus the lookup key ('by ID'), which cleanly separates it from accelo_list_assets and accelo_count_assets. It stops short of explicitly naming any sibling as the alternative, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus accelo_list_assets or accelo_get_asset_type, nor any prerequisites such as needing an asset ID from a prior list call. Usage is only implied by the word 'single'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_asset_typeC
Get a single asset type by ID.
Args: id: Asset Type ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations and no output schema, so the description carries the full behavioral burden. It implies a read operation via 'Get' but does not disclose permissions, error behavior, or what fields are returned by default.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and a brief Args section that mirrors the schema without excess words. Appropriate size for a simple get tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-resource get, the description is minimally adequate. But with no annotations and no output schema, it omits return structure or default fields, leaving gaps for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It labels both params: id as Asset Type ID and fields as additional fields to return, but does not specify 'fields' format or any constraints on id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (asset type) with lookup key (by ID). It does not differentiate from sibling list_asset_types or explain scope, but the core purpose is clear enough for selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus accelo_list_asset_types or other get tools. Usage is only implied by 'by ID' with no explicit conditions, prerequisites, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_checklistC
Get a single checklist by ID.
Args: id: Checklist ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses nothing beyond the basic retrieval action. It says nothing about permissions, error behavior when the ID is invalid, or whether the read is safe/non-mutating.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action in the first sentence and no filler. The Args block restates what the schema already encodes, which is mildly redundant but not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter getter with no output schema and no annotations, the description covers the minimum: what it returns (one checklist) and which ID to pass. It stops short of describing the return shape or the optional 'fields' mechanics, which an agent would likely need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate; it annotates both parameters ('id: Checklist ID', 'fields: Additional fields to return'). The 'fields' gloss adds real meaning, but format, syntax, and valid values for 'fields' are left unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get a single checklist by ID.' The 'single' qualifier implicitly distinguishes it from accelo_list_checklists and accelo_count_checklists, though that differentiation is by name pattern rather than explicit statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance. The agent must infer from the name that this is the retrieval path once a checklist ID is known. No mention of siblings or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_companyC
Get a single company by ID.
Args: id: Company ID fields: Additional fields to return, e.g. "website,phone,postal_address(city)"
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden, yet it only says what is fetched. It does not disclose behavior on a missing/invalid ID, required permissions, or what the returned payload contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, and the fields example earns its place. No filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema and no annotations, the description covers enough to invoke it, but leaves return shape, error behavior, and field expansion rules to guesswork.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It documents both parameters: 'id: Company ID' is largely tautological, but the 'fields' example with nested syntax (postal_address(city)) adds real value beyond the bare string type. Still thin on the id semantics and field syntax limits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get a single company by ID.' It clearly distinguishes a single-record fetch from listing, but does not name or differentiate itself from siblings like accelo_list_companies or accelo_count_companies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus accelo_list_companies (to search) or accelo_get_company variants. No prerequisites or exclusions are given; the agent must infer the use case purely from the verb 'get'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_contactC
Get a single contact by ID.
Args: id: Contact ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses almost nothing: it does not say what happens when the ID is not found, whether the response is a single object, or any auth/rate-limit behavior. Only the read nature is implied by 'Get'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Terse and front-loaded: the core purpose is in the first line with no wasted words. The Args block is boilerplate but compact, so nothing meaningful is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-record getter with no output schema, the minimum viable description is present, but the absence of any return-shape or error semantics leaves it incomplete. Given how simple the operation is, this is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it only offers 'id: Contact ID' and 'fields: Additional fields to return'. The 'fields' note gives some meaning (it selects additional return fields, not filters), but the 'id' gloss is essentially tautological and no format or syntax for 'fields' is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get a single contact by ID'), which cleanly separates it from the sibling create/update/deactivate/list contact tools. It does not explicitly name those alternatives, but the 'single by ID' framing makes the distinction implicit and readable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of alternatives such as accelo_list_contacts for browsing versus this tool for a known ID. For a get-by-ID tool the use case is inferable, but nothing is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_contextA
Get the Accelo object model, relationships, and query guide.
Call this FIRST before making complex queries. Returns:
Object hierarchy (how companies, jobs, issues, tasks, etc. relate)
The 'against' pattern (how objects link to their parents)
How to resolve any activity back to its company
Field selection syntax (_fields parameter)
Filtering and pagination conventions
Common query patterns (time by staff, issues by company, etc.)
This context enables you to correctly traverse relationships and construct multi-step queries across the Accelo data model.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the tool's output content in detail (hierarchy, against pattern, field selection, filtering, pagination, common patterns) and frames it as read-only retrieval, but it does not explicitly state read-only safety, side effects, auth needs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and the critical 'Call this FIRST' instruction, then uses a tight bullet list for the return contents. Every sentence earns its place and the structure makes scanning easy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's zero-parameter, context-guide nature and the presence of an output schema, the description is complete enough. It explains what the tool is, when to call it, and what kind of information it returns, leaving nothing essential missing for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero input parameters, so the baseline is 4. The description mentions the '_fields parameter' only as part of the query guide returned, not as an input to this tool, so there is no parameter semantics to add or misuse.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Get) and resource (Accelo object model, relationships, and query guide), making its purpose unmistakable. It is clearly a meta/context tool that is distinct from all the CRUD and listing siblings, so an agent can identify it without opening other schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Call this FIRST before making complex queries,' which gives clear when-to-use guidance. However, it does not state when not to use it (e.g., simple queries) or name alternative context tools like describe_object, so it stops short of the full when/when-not/alternatives standard.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_contractC
Get a single contract by ID.
Args: id: Contract ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read but says nothing about permissions, whether a missing ID errors or returns empty, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and free of filler; the Args block is terse. Nothing needs to be cut.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple getter, but with no annotations, no output schema, and 0% parameter coverage, the description should compensate for the return shape and ID semantics and does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema documents nothing. The description restates the parameter names ('id: Contract ID', 'fields: Additional fields to return') without adding format, expected values, or any guidance on what 'additional fields' means.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Get a single contract by ID.' The 'single' qualifier implicitly separates it from the sibling accelo_list_contracts, though no sibling is named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no mention of when to prefer accelo_list_contracts or how to obtain a valid ID. Usage is only inferable from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_contract_periodB
Get a single contract period by ID.
Args: id: Contract Period ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full behavioral burden. It indicates a read operation via 'Get' and notes that 'fields' can return additional data, but it does not disclose permissions, error behavior, return format, or whether the operation is read-only in a structured sense.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and contains no wasted words. The 'Args' block is compact and directly relevant to the two parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema and no annotations, the description covers the basic purpose and parameters but omits return shape and the format of the 'fields' parameter. It is minimally viable but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It labels 'id' as 'Contract Period ID' and 'fields' as 'Additional fields to return,' adding semantic meaning, but it omits the integer type of 'id' and the expected string format for 'fields.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Get a single contract period by ID.' The word 'single' distinguishes it from list_contract_periods, but it does not explicitly differentiate from close/reopen contract period siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as accelo_list_contract_periods, accelo_close_contract_period, or accelo_reopen_contract_period. The 'by ID' phrasing implies a prerequisite but does not state usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_contributorC
Get a single contributor by ID.
Args: id: Contributor ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says the tool retrieves a contributor by ID and says nothing about permissions, error behavior, whether the operation is read-only, or rate limits. This is a significant gap for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core action before listing arguments. There is no superfluous text. The argument list is somewhat redundant given the schema, but it does not harm readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should explain what is returned, what errors can occur, and how this differs from related contributor tools. It provides none of that. For a get-by-ID tool in a large sibling ecosystem, these omissions are significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It defines 'id' as 'Contributor ID' and 'fields' as 'Additional fields to return', which is minimal. The 'fields' parameter is especially vague—no format, allowed values, or examples are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get a single contributor by ID.' The word 'single' implicitly distinguishes it from the sibling 'accelo_list_contributors', though the alternative is not named. An agent can understand what the tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like accelo_list_contributors or accelo_get_staff. Usage is only implied by the word 'Get'. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_contributor_typeC
Get a single contributor type by ID.
Args: id: Contributor type ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read via 'Get' but says nothing about permissions, error behavior for an unknown ID, or whether 'fields' changes the response shape — thin for a tool with zero structured disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded single-sentence purpose followed by a compact Args list; nothing extraneous. The Args boilerplate repeats the schema, but the overall size is appropriately small for a two-parameter getter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-record fetch with no output schema and no annotations, the definition gives the minimum: what it does and the two inputs. It is workable but leaves return-shape and 'fields' semantics unstated, which for a 0%-coverage schema is a noticeable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must do the work. It restates 'id: Contributor type ID' (tautological) and only marginally clarifies 'fields: Additional fields to return' — it never indicates the format of fields (comma-separated? repeated?) or which fields are available.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (contributor type) with the qualifier 'single', which distinguishes it from the sibling accelo_list_contributor_types without naming it. Clear enough to select, though it never references the list/count siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by 'by ID' — the agent can infer this is for fetching one known record, but there is no explicit when-to-use guidance and no mention of the alternatives (accelo_list_contributor_types, accelo_count_contributor_types). No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_current_staffA
Get the currently authenticated staff member (whoami).
Useful for verifying authentication is working. Returns the staff member associated with the current OAuth token.
Args: fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses that the result is derived from the current OAuth token (no ID input required), but says nothing about read-only safety, rate limits, or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and kept short. The 'Args:' block is slightly boilerplate for a single optional parameter but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, single-optional-param read tool with no output schema, the description covers the essentials: what it returns and the auth context. The only gap is lack of detail on the 'fields' argument.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but 'fields: Additional fields to return' merely restates the parameter name. It gives no format, syntax, or examples for how to specify fields. Only one optional param keeps this from being lower.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Get the currently authenticated staff member (whoami).' The 'currently authenticated' / whoami framing distinguishes it from the generic accelo_get_staff sibling, so an agent can route correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one concrete use case ('verifying authentication is working'), which implies when to reach for it. However, it never explicitly contrasts with accelo_get_staff or accelo_list_staff, and gives no condition for choosing this over those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_divisionC
Get a single division by ID (Beta).
Args: id: Division ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses only a '(Beta)' marker; it says nothing about permissions, error behavior for invalid or missing IDs, or what the returned division contains. For a read tool with zero annotation coverage this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded, with the purpose in the first sentence and parameters enumerated after. The Args block is somewhat redundant with the schema but costs little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 0% schema description coverage, the description should do much more to describe behavior and parameters. As written it leaves the agent without enough to invoke the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but the Args section merely restates the schema ('id: Division ID') with no format, type, or lookup guidance. 'fields: Additional fields to return' adds slight meaning but does not explain accepted values or syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a single division by ID'), which clearly separates it from siblings accelo_list_divisions and accelo_count_divisions. It does not explicitly name those alternatives, but the singular-get semantics are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus accelo_list_divisions or accelo_count_divisions, and no prerequisites or context for when a division ID lookup is appropriate. The agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_enumA
Get a single enumeration value by ID (e.g. one issue status).
Only some enumerations expose a get-by-id endpoint; if the combination does not, a structured error is returned naming the valid combinations. See accelo_list_enum for the full list of (object, enum_type) pairs.
Args: object: Object name, e.g. "issues" enum_type: Enumeration kind, e.g. "statuses" id: The enumeration value's ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No | ||
| object | Yes | ||
| enum_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden and does disclose non-obvious behavior: that only a subset of (object, enum_type) combinations support get-by-id, and that unsupported combinations return a structured error listing valid pairs. It omits return shape and auth/rate-limit details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and the important caveat about partial endpoint coverage before the Args block. The prose is efficient; the Args list is conventional and adds marginal redundancy but is not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description covers the operation, the failure mode, and all parameters, and cross-references the sibling list tool. A brief note on what an enumeration value response contains would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it documents all four parameters including examples for object ('issues') and enum_type ('statuses'), the meaning of id, and the role of fields. Lacks detail on fields syntax/format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('single enumeration value by ID') with a concrete example ('one issue status'). This cleanly distinguishes it from accelo_list_enum, which is named as the plural counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains when this tool is applicable (only some enumerations expose a get-by-id endpoint) and what happens otherwise (structured error naming valid combinations), plus it points to accelo_list_enum for the full list. It stops short of an explicit 'use this vs. list' decision rule, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_expenseC
Get a single expense by ID.
Args: id: Expense ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it says nothing about permissions, what happens for an invalid/unknown ID, or whether the read has side effects. It only reiterates that lookup is by ID, which is already implied by the required parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short, front-loaded, and well organized with a clear one-line summary followed by an Args block. Every line is relevant, though the docstring-style formatting is slightly verbose for two trivial parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-record getter this covers the essentials, but with no output schema and no annotations, the description leaves the agent guessing about return shape, missing-record behavior, and the meaning of 'fields'. Minimum viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does document both parameters ('id: Expense ID', 'fields: Additional fields to return'). However, the 'fields' explanation is vague about syntax or how to specify multiple fields, leaving a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a single expense by ID'), and the word 'single' implicitly contrasts with siblings like accelo_list_expenses and accelo_count_expenses. It does not explicitly name those alternatives, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus accelo_list_expenses or accelo_count_expenses, and no preconditions or error behavior mentioned. The usage is only inferable from the name and the 'by ID' phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_extension_valuesC
Get extension field values for a specific object.
Args: object_type: The object type (e.g. "issues", "jobs", "contracts") object_id: The object's ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | ||
| object_id | Yes | ||
| object_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose authentication requirements, error behavior, rate limits, or what the return values look like for this read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with the core purpose stated first and parameters immediately after. Every sentence earns its place, though the argument block is minimally formatted rather than richly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with three parameters and no output schema, the description covers the basic purpose and parameters. However, it omits return value information and usage context, leaving gaps that would help an agent invoke the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists all three parameters with brief meanings, including useful examples for 'object_type' and a basic explanation of 'object_id' and 'fields', but it remains vague about allowed object_type values and the precise format of 'fields'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Get extension field values for a specific object.' It distinguishes from the sibling 'accelo_set_extension_value' by implication (read vs write), but does not explicitly name or contrast with alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance, prerequisites, or alternatives are provided. The phrase 'for a specific object' only implies usage and leaves the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_groupB
Get a single group by ID (Beta).
Args: id: Group ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Get' implies read-only access and '(Beta)' is disclosed, but permissions, side effects, rate limits, and output behavior are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and compact: purpose first, then a clean Args section. Every line contributes to identifying the operation or its inputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-by-ID tool, the description supplies enough to call it correctly: required group ID and optional fields. However, with no annotations or output schema, it leaves return shape, auth, and beta caveats unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that 'id' is a Group ID and 'fields' are additional fields to return, but it does not specify the expected format or syntax for 'fields'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get a single group by ID.' This clearly distinguishes retrieving one group from listing or counting groups, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no when-not-to-use guidance, and no routing to alternatives such as accelo_list_groups. The phrase 'by ID' only weakly implies that an ID is available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_holidayC
Get a single holiday by ID (Beta).
Args: id: Holiday ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden but only says it is a read of a single record. It says nothing about permissions, error behavior for invalid IDs, return format, or what '(Beta)' implies for stability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the purpose, and the args block is functional. It is not padded, though the '(Beta)' tag adds little and the arg lines are terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter getter with no output schema this is roughly adequate, but with 0% schema description coverage the description should do more work on the fields parameter and return expectations than it currently does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source of parameter meaning. It labels id as 'Holiday ID' and fields as 'Additional fields to return', which is minimal and gives no format, syntax, or accepted-value detail for the fields parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a single holiday by ID'), which clearly distinguishes it from the sibling accelo_list_holidays and the create/update/delete holiday tools. The '(Beta)' flag is incidental, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus accelo_list_holidays or accelo_count_holidays, nor any mention of prerequisites such as needing a valid holiday ID. Usage context is left entirely to inference from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_invoiceC
Get a single invoice by ID.
Args: id: Invoice ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Get' implies a read, but nothing is said about permissions, behavior on a missing/invalid ID, or what is returned. For a bare read tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded: the operative sentence comes first, followed by a compact Args block. No filler, though the Args formatting is slightly clunky and repeats the schema structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with no output schema and no annotations, the description is minimally adequate. It falls short on the undefined 'fields' parameter and any signal about return content or failure behavior, which an agent would need to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source of parameter meaning. It labels both params ('id: Invoice ID', 'fields: Additional fields to return'), which is better than nothing, but 'fields' gives no format or syntax (comma-separated? list?) and no accepted values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a single invoice'), and the word 'single' distinguishes it from the sibling accelo_list_invoices. It does not explicitly name sibling alternatives, but the singular scope makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only restates what the tool does; it gives no indication of when to use it versus accelo_list_invoices or accelo_get_invoice_line_item, no prerequisites, and no exclusions. An agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_invoice_line_itemB
Get a single invoice line item by ID (Beta).
Args: id: Line item ID fields: Additional fields to return, e.g. "line_item_ledger(),line_item_tax()"
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the '(Beta)' stability flag, which is useful, but says nothing about permissions, error behavior for invalid/missing IDs, or return shape for a lookup operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and the Args block is functional with no filler. Appropriately sized for a two-parameter getter, though the parameter list format adds little polish.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read with no output schema and only two parameters, the description is mostly sufficient. It is silent on failure modes (nonexistent ID, unauthorized access), which leaves a modest gap for an agent handling errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: both parameters are identified, and 'fields' is given concrete syntax ('line_item_ledger(),line_item_tax()') that appears nowhere in the schema. The 'id' explanation is essentially a restatement, which keeps this from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Get a single invoice line item by ID'), and the word 'single' implicitly separates it from the list/count siblings. It stops short of naming an alternative tool explicitly, so sibling differentiation is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus accelo_list_invoice_line_items or accelo_count_invoice_line_items, and no preconditions (e.g., needing a known ID). Usage must be inferred from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_issueC
Get a single issue (ticket) by ID.
Args: id: Issue ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Get' implies a read-only operation, but the description says nothing about permissions, error behavior when the ID is not found, or rate limits. For a tool with zero structured behavioral coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core purpose before listing args. The arg lines are somewhat redundant with the schema but add a small amount of naming clarity without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-record getter this is close to adequate, but with no output schema and no parameter documentation in the schema, the description should say more about the 'fields' format and what is returned. It is the minimum viable level for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does briefly name both parameters ('id: Issue ID', 'fields: Additional fields to return'), giving minimal meaning, but 'Additional fields to return' is vague and does not explain the field-list syntax or format expected by the Accelo API.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('a single issue (ticket) by ID'), and the parenthetical clarifies the issue/ticket synonym, which is genuinely useful. It does not explicitly differentiate itself from siblings like accelo_list_issues or accelo_count_issues, but 'single' and 'by ID' implicitly convey the retrieval-by-identifier scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives to accelo_list_issues when the ID is unknown, and no prerequisites or auth requirements. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_jobC
Get a single job (project) by ID.
Args: id: Job ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and mostly fails to: it does not say what happens on an unknown ID, whether any permissions or scopes are required, or what the response contains. It only conveys the obvious read-by-ID intent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the core purpose is in sentence one, and the arg list follows. No wasted prose, though the docstring-style args block is a bit skeletal rather than information-dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with no output schema and no annotations, this is roughly the minimum viable: both params are named and the purpose is clear, but the ambiguous 'fields' parameter and missing read-side context leave real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate; it does label both params ('id: Job ID', 'fields: Additional fields to return'). However 'fields' is not explained in any actionable way (format, allowed values, comma separation), so it only marginally exceeds the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get), resource (a single job/project), and the retrieval key (by ID). The word 'single' implicitly distinguishes it from the sibling accelo_list_jobs, but no sibling is named explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as accelo_list_jobs or accelo_get_job's related read tools. The usage context is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_ledgerC
Get a single ledger by ID.
Args: id: Ledger ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says only that it fetches a ledger; it does not disclose read-only status explicitly, permissions, error behavior, or whether the response includes related records. 'Get' implies a read, but that is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short, front-loaded single sentence plus a compact Args block. No filler, though the Args lines are so terse that they sacrifice useful detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and 0% schema description coverage, so the definition should explain more about the return value and fields syntax. The scope is simple, but the description still leaves key call-time details unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It restates 'id: Ledger ID' tautologically and says 'fields: Additional fields to return' without format details such as comma-separated field names, leaving the fields parameter under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Get' and resource 'ledger', with 'single' and 'by ID' distinguishing it from accelo_list_ledgers and accelo_count_ledgers. It stops short of naming those siblings, so 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as list_ledgers. The retrieval-by-ID use case is implied by the tool name, but the description provides no explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_milestoneB
Get a single milestone by ID.
Args: id: Milestone ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. 'Get' implies a read-only operation, but the description does not disclose auth requirements, error behavior for missing IDs, rate limits, or any other behavioral trait beyond the basic retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short lines plus a compact Args block. The core purpose is front-loaded, and every sentence and parameter note serves a clear purpose with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-resource retrieval tool, the description covers purpose and parameter meaning adequately. However, with no output schema and no annotations, it leaves return shape, error handling, and permissions unaddressed, so it is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only documentation for parameters. It identifies 'id' as a Milestone ID and 'fields' as additional fields to return, adding some meaning over bare schema titles, but it omits format details such as whether fields is a comma-separated list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get a single milestone by ID.' The word 'single' distinguishes it from list/count milestone tools, though it does not name the sibling directly. The purpose is clear without needing to inspect the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'by ID': the tool is for retrieving one milestone when its identifier is known. However, there is no explicit guidance on when to use this rather than accelo_list_milestones or accelo_count_milestones, and no when-not conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_object_budgetA
Get a single object budget by ID.
Returns financial tracking data: billable/nonbillable time, charged amounts, service and material costs, and remaining budget.
Args: id: Object Budget ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully enumerates what is returned (billable/nonbillable time, charged amounts, service and material costs, remaining budget), effectively compensating for the absent output schema, but says nothing about permissions, errors, or read-only guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs plus an Args block; the purpose sentence is front-loaded and the return summary earns its place. Slight redundancy between the title-like first line and the rest, but efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter lookup with no annotations and no output schema, the description covers the essentials: what it fetches, what data comes back, and the parameter meaning. Missing error/auth context and 'fields' detail keep it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry parameter meaning. It does document both params (id = Object Budget ID, fields = additional fields to return), which is better than nothing, but 'fields' gives no format or example of accepted values, leaving the agent guessing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get a single object budget by ID'), which cleanly distinguishes it from the sibling accelo_list_object_budgets. It stops short of explicitly naming sibling alternatives, but the singular/plural distinction is evident from the name and text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: this is the detail-fetch counterpart requiring a known budget ID, versus the list tool. However, the description never states when to prefer it over list_object_budgets or any precondition such as needing a valid ID or prior lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_paymentC
Get a single payment by ID.
Args: id: Payment ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It doesn't state whether it requires specific permissions, is read-only, what happens if the ID doesn't exist, or the return format. This is a significant gap for a retrieval tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence followed by a brief Args section. It is front-loaded and efficient, with no unnecessary information, though the Args format is somewhat sparse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and 0% schema description coverage, the description is insufficient. It doesn't explain return values, error conditions, or authentication requirements, leaving key contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It briefly mentions both parameters: 'id: Payment ID' and 'fields: Additional fields to return', but provides no format, type, or further details. This is minimal and leaves much unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Get a single payment by ID.' This clearly distinguishes it from siblings like accelo_list_payments or accelo_count_payments. However, it does not mention other payment-related tools, so it lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or alternatives mentioned. 'By ID' implies it's for retrieving a specific payment when the ID is known, but no exclusions or comparisons to list_payments are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_profile_valuesC
Get profile field values for a specific object.
Args: object_type: The object type (e.g. "companies", "issues") object_id: The object's ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | ||
| object_id | Yes | ||
| object_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Get' implies a read, but the description says nothing about permissions, what object_type values are valid, error behavior, or return shape. For a tool with zero annotation coverage, this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in a single sentence, followed by a compact Args block. No padding or redundancy, though the Args formatting is bare-bones.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter read tool with no output schema, the description covers the basics but omits anything about valid object types, the relationship to sibling profile/extension tools, and return behavior. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does document all three parameters. It gives examples for object_type ('companies', 'issues') and clarifies object_id, but 'fields: Additional fields to return' is vague and adds little semantic value beyond the schema's type hints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get profile field values for a specific object.' This is clear enough for an agent to distinguish it from siblings like accelo_list_profile_fields or accelo_set_profile_value. However, it doesn't explicitly name or contrast with those siblings, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given, and no alternatives are named. The agent is left to infer that this fetches (vs. lists fields or sets values) from the verb alone, with no conditions or exclusions to route between the several profile/extension-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_prospectC
Get a single prospect (sale) by ID.
Args: id: Prospect ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it only says it fetches by ID. It does not say what happens if the ID is missing or unknown, whether it is read-only, what permissions are needed, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded summary sentence plus a compact Args block; nothing redundant. The Args block largely restates the schema but is short enough not to bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description never indicates the return shape beyond implying a prospect object via 'fields: Additional fields to return'. For a two-parameter, annotation-free fetch tool this is adequate but leaves an agent guessing about the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does label both parameters ('id: Prospect ID', 'fields: Additional fields to return'). However, the 'fields' semantics are shallow — no format (e.g. comma-separated names) or which fields are valid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get'), resource ('prospect'), scope ('a single ... by ID') and clarifies the domain term with '(sale)'. That distinguishes it from accelo_list_prospects, accelo_count_prospects, and accelo_update_prospect, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus accelo_list_prospects or the other prospect siblings; the 'by ID' phrasing only implies the single-record case. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_purchaseC
Get a single purchase by ID.
Args: id: Purchase ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it only implies a read. It says nothing about permissions, behavior when the ID does not exist, or whether the response is cached or paginated. Only the bare minimum read intent is conveyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core action, and the Args block is compact. It is appropriately sized for a simple getter, though the docstring formatting is slightly boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema, the definition covers the essentials of what it does and both inputs. It omits the meaning of 'fields' and any error/not-found behavior, which leaves real gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does document both parameters ('id: Purchase ID', 'fields: Additional fields to return'). However, the fields parameter is left vague — no format, delimiter, or accepted values — so the compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a single purchase by ID'), which implicitly separates it from accelo_list_purchases and accelo_count_purchases. It stops short of naming those siblings or the ID domain explicitly, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus accelo_list_purchases or accelo_count_purchases, and no prerequisites or context given. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_quoteC
Get a single quote by ID.
Args: id: Quote ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read operation but discloses nothing about behavior: no permission requirements, no note on what happens for an invalid/nonexistent ID, and no indication of the returned shape. For a tool with zero annotation coverage this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the core action in the first sentence, with a compact args block. It is essentially free of padding, though the arg annotations are so terse they read as boilerplate rather than genuine structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a get-by-id tool with no output schema and no annotations, the description should at least explain the 'fields' selection syntax and the not-found behavior. Neither is covered, so an agent lacks enough to invoke it correctly beyond the trivial required ID.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it only offers 'id: Quote ID' (near-tautological) plus 'fields: Additional fields to return'. It names both parameters but gives no format, valid values, or syntax for the 'fields' list, leaving meaningful gaps against a 0% coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get a single quote by ID'), and 'single' implicitly contrasts with the sibling accelo_list_quotes. It is clear what the tool does, though it never explicitly names the alternative list tool the way a top-tier definition would.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus accelo_list_quotes or accelo_count_quotes, no note about retrieving a quote you already have an ID for, and no mention of prerequisites or error conditions. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_rateC
Get a single rate by ID.
Args: id: Rate ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden and discloses almost nothing: no mention of read-only safety, error behavior for a missing ID, authentication needs, or return shape. It only restates the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core operation. The Args block is fine, though the parameter lines add nearly no value, but it is not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and 0% schema coverage, the description should explain return values, error handling, and the fields parameter format. None of that is present, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but does not. 'id: Rate ID' and 'fields: Additional fields to return' merely repeat parameter names with no format, type guidance, or examples for what 'fields' accepts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a single rate by ID'), which is clear. It does not explicitly differentiate itself from sibling 'accelo_list_rates' or 'accelo_count_rates', but the singular 'single rate' phrasing implies the distinction reasonably well.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (retrieve one rate when you have its ID), but never states when to use this versus accelo_list_rates or accelo_count_rates. No exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_referralC
Get a single referral by ID.
Args: id: Referral ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Get' implies a read, but there is no mention of permissions, rate limits, error behavior for a missing ID, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded with the core purpose in the first line. The Args block is boilerplate but not wasteful; nothing extraneous, though nothing extra is offered either.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with no output schema, the description is minimally sufficient. It does not describe the return shape or the meaning of 'fields', leaving gaps an agent might hit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It loosely names both parameters (id as the referral ID, fields as additional fields to return), which helps, but 'fields' is vague with no syntax or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (get a single referral by ID), which is clear. However, it does nothing to distinguish itself from the many sibling getters or from accelo_list_referrals / accelo_count_referrals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus accelo_list_referrals or accelo_count_referrals, and no prerequisites or exclusions are stated. The agent must infer the single-record vs list distinction from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_requestB
Get a single request by ID.
Args: id: Request ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose whether the operation is read-only, what permissions are needed, how missing IDs are handled, or any rate limits—only the basic fetch intent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: the core action is in the first sentence, followed by a compact Args list. Every line serves a purpose, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool, the description covers the essential parameter semantics and action. But with no output schema and no annotations, it omits useful context such as the likely return shape or error behavior, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by documenting both parameters: id as the request ID and fields as additional fields to return. However, the 'fields' parameter remains vague because no format (comma-separated list, field names, etc.) is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('request') and adds 'single ... by ID' to distinguish it from list_requests and other request operations. It does not explicitly name a sibling tool, but the scope is clear enough for an agent to avoid the list variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the phrase 'Get a single request by ID' rather than stated with when/when-not conditions. An agent can infer that this is the tool for retrieving one request when the ID is known, but no alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_resourceC
Get a single resource (attachment) by ID.
Args: id: Resource ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It only says to get a resource; it does not disclose whether this returns metadata only versus the binary attachment (relevant given the sibling accelo_download_resource_url), nor anything about permissions, auth, or error behavior for a missing ID.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded, with the purpose in the first sentence and args consolidated below. No wasted prose, though the Args block is essentially a terse restatement rather than added value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and a 0%-coverage schema, the description should do more work. It leaves unclear what is actually returned (metadata vs content), the shape of 'fields', and how it relates to the download sibling, all of which an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does minimally document both parameters ('id: Resource ID', 'fields: Additional fields to return'). It adds basic meaning but gives no format for 'fields' (comma-separated? list?) and no type expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Get' with the resource 'resource (attachment) by ID', and the parenthetical clarifies that a resource is an attachment, which disambiguates it from other nouns in the sibling set. However, it does not distinguish itself from close siblings like accelo_list_resources or accelo_download_resource_url beyond the singular/plural implication.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this instead of accelo_list_resources or accelo_download_resource_url. The 'by ID' phrasing implies single-item retrieval, but no alternatives or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_segmentationC
Get a single segmentation by ID.
Args: id: Segmentation ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only lookup, but does not disclose permissions, error behavior, rate limits, or how the fields parameter affects the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two-sentence purpose plus a compact Args block; front-loaded and no filler. Every line contributes to the minimal parameter documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and 0% schema description coverage, the description is too sparse. It does not explain return shape, field formatting, failure modes, or usage alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It identifies both parameters and gives a high-level role for each ('Segmentation ID', 'Additional fields to return'), but the syntax and accepted values for 'fields' remain unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'Get' and resource 'segmentation' with the scope 'single by ID'. This distinguishes it from list/count siblings, but it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or alternatives are provided. The 'by ID' phrasing implies an ID is required, but the description does not say when to call this versus accelo_list_segmentations or accelo_count_segmentations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_signoffC
Get a single signoff by ID.
Args: id: Signoff ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Get' implies a read, but nothing is said about permissions, whether the signoff must exist, error behavior for a bad ID, or what the fields parameter does to the payload.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded, with the core action in the first sentence. The Arg list is terse but not padded, though it is largely redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read with no output schema, the description is minimally adequate. It omits what a signoff record contains, ID acquisition context, and the effect of the fields parameter, leaving gaps an agent would need to probe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for both parameters. It only restates them ('id: Signoff ID', 'fields: Additional fields to return') without format, scope, or accepted values for fields, adding essentially nothing beyond the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: retrieve a single signoff by ID. An agent can tell it fetches one record rather than a list, but the description gives no explicit differentiation from nearby siblings like accelo_list_signoffs, accelo_update_signoff, or accelo_redraft_signoff.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternative selection. The agent gets no cue about when this single-record fetch is preferable to accelo_list_signoffs or how the ID is obtained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_staffB
Get a single staff member by ID.
Args: id: Staff ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Get' implies a read operation, but the description says nothing about permissions required, error behavior when the ID does not exist, or what a returned staff record contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short pieces: a front-loaded purpose sentence followed by an Args list. Every line is relevant and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description should provide return-shape or access details. For a simple get-by-ID tool it states the basic operation, but leaves gaps around what a staff record includes and what happens on failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It documents both parameters with brief labels, but 'id: Staff ID' mostly restates the schema title and 'fields: Additional fields to return' is vague about accepted values or format, so compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get a single staff member by ID.' This clearly distinguishes it from sibling list/count/create/update staff tools and from accelo_get_current_staff. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by ID' implies the tool is for looking up one known staff member, which is adequate usage context. However, it never explicitly says when to use this instead of accelo_list_staff or accelo_get_current_staff, and gives no prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_taskC
Get a single task by ID.
Args: id: Task ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says nothing about permissions needed, whether the task may be soft-deleted, or what the return shape looks like for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the core purpose. The Args section is minimal but not padded; it wastes little space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a retrieval tool with no annotations, no output schema, and 0% schema description coverage, the description is too thin. It should at least document what 'fields' accepts and what the response contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the two parameters (id, fields) are undocumented in the schema. The description gives only 'id: Task ID' and 'fields: Additional fields to return', which is essentially a restatement of the parameter names with no format, type, or valid-value guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a single task by ID'), which clearly distinguishes it from list_tasks and create_task. It doesn't explicitly name a sibling, but the singular retrieval purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus accelo_list_tasks or the update/delete siblings. The agent must infer the use case from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_taxC
Get a single tax code by ID.
Args: id: Tax ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Get' implies a read, but nothing is said about permissions, error behavior for an unknown ID, or what the response contains. For a tool with zero annotation coverage this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the purpose sentence precedes the Args block, with no filler. The Args formatting is slightly redundant given the schema, but costs little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with no output schema, the definition is minimally viable: it identifies the resource and key. It falls short on the 'fields' parameter semantics and on any behavioral context, which nothing else in the metadata supplies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does name both parameters ('id: Tax ID', 'fields: Additional fields to return'), which adds meaning over bare titles, but 'fields' gives no format or syntax (comma-separated list? array?), leaving the agent guessing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get a single tax code by ID.' The word 'single' implicitly separates it from the sibling list_taxes/count_taxes, but the description never names those siblings or explicitly contrasts the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no reference to accelo_list_taxes or accelo_count_taxes as alternatives. The agent must infer from the name alone that this is the point-lookup variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_time_externalC
Get a single time external by ID.
Args: id: Time External ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing beyond the retrieval itself: no permission requirements, no behavior when the ID does not exist, no note on what data is returned. For a read tool the risk is low, but the disclosure is essentially absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded, with the core action in the first sentence. The docstring-style 'Args:' block is slightly mechanical but adds no padding or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 0% schema description coverage, the definition leaves meaningful gaps: the nature of the returned record and the format of the 'fields' argument are unexplained. For a simple get-by-id tool this is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for both parameters. 'id: Time External ID' merely restates the name, and 'fields: Additional fields to return' is vague, giving no syntax, separator convention, or examples for specifying fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a single time external') and the lookup key (by ID), which is enough for an agent to know it is a single-record retrieval. It does not, however, distinguish itself from the sibling accelo_list_time_externals or explain what a 'time external' is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of when to prefer accelo_list_time_externals or accelo_convert_time_external_to_activity, and no prerequisites or error conditions. The agent is left to infer context entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_get_timerC
Get a single timer by ID.
Args: id: Timer ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read operation but says nothing about permissions, error behavior for invalid IDs, or the shape of the returned timer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded: the purpose sentence comes first, followed by a compact Args block. No wasted words, though it may be slightly too terse for a tool with zero schema descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter getter with no output schema and no annotations, the description is minimally adequate. It covers the basics but does not explain the return shape or how the 'fields' parameter affects the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It gives a brief meaning for both parameters ('id: Timer ID', 'fields: Additional fields to return'), which is more than the schema offers, but it omits format details such as comma-separation for fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('a single timer') and scopes it to retrieval by ID, which distinguishes it from list_timers. It does not explicitly name or contrast with sibling timer operations, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus accelo_list_timers or other timer endpoints. The 'by ID' phrasing implies you must already know the timer ID, but this is left for the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_activitiesA
List activities (notes, emails, calls, meetings) from Accelo.
Activities track all communication and time logging. Each activity is recorded 'against' an object (company, job, issue, task, milestone, contract, prospect). To find which company an activity belongs to, resolve via against_type:
company → direct
job/issue → get object → against_id (company)
task/milestone → get object → parent job → company
contract/contract_period → get contract → against_id (company)
affiliation → get affiliation → company_id
Use fields="against()" to expand the against object inline.
SUBJECT/TEXT SEARCH IS NOT SUPPORTED. Accelo's GET /activities endpoint does
NOT honour the _search parameter and exposes NO subject/body filter — passing
search (or a subject filter) is silently ignored upstream and returns the
deployment's earliest unrelated activities, not matches. This tool therefore
rejects search up front rather than issuing a misleading query. To find an
activity by subject you MUST narrow scope first, then match the subject
client-side over the (small) returned set:
accelo_list_thread_activities(thread_id=...) — the containing email/note thread
accelo_list_activities(filters={"against": {"prospect": [ID]}}) or filters={"against_type": "...", "against_id": ...} — scope to one object
accelo_run_filter(...) — a saved activity filter, if one exists There is no global body/subject text search across all activities.
Args:
filters: Filter dict. Keys: id, parent_id, thread_id, against_type, against_id,
owner_id, owner_type, medium, visibility, staff, activity_class,
activity_priority, task, time_allocation,
date_created/logged/started/ended_before/after, order_by_asc/desc.
NOTE: there is no subject filter — Accelo does not support one.
fields: Additional fields, e.g. "body,staff(),medium,interacts"
search: NOT SUPPORTED — Accelo's /activities endpoint ignores _search.
Passing a value returns a structured error instead of a silently
unfiltered result set. See the tool description for the correct
subject-lookup workflow.
page: Page number (0-indexed)
limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well: it discloses that the upstream GET /activities ignores _search, that this tool rejects `search` up front with a structured error rather than silently returning unrelated data, and it details the against_type resolution chain. It omits auth/permission needs, rate-limit behavior, and return/pagination semantics beyond the page/limit args.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded — scope, the critical search limitation, then the resolution workflow and args. It is long but mostly justified; however the 'search is not supported / no subject filter' warning is repeated three times (body, the anti-pattern block, and the args section), which is redundant. The self-referential 'See the tool description' line inside the description is also noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a free-form filters object, the description supplies nearly everything needed to call the tool correctly: scope, against-resolution logic, an explicit anti-pattern with workarounds, and parameter details. Minor gap is the shape of the returned activity set and default ordering, which an agent must infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it enumerates the allowed filter keys, documents fields syntax with an example ('against()'), explains page is 0-indexed and limit maxes at 100, and flags the absence of a `subject` filter. It covers all five parameters with meaning the bare schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('List activities') and enumerates the concrete subtypes (notes, emails, calls, meetings), then explains what an activity is and how it attaches 'against' an object. An agent can distinguish it from siblings such as accelo_list_thread_activities, accelo_get_activity, and accelo_count_activities without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use and when-NOT-to-use guidance: it states plainly that subject/text search is unsupported and then names the alternatives (accelo_list_thread_activities, scoped accelo_list_activities with filters, accelo_run_filter) with the condition that selects each. This is a textbook routing instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_activity_threadsA
List activity threads from Accelo.
A thread groups an original activity with the activities sent in response to it (e.g. an email and its replies). Each thread carries the original activity's id, an event_text, a total_activities count, and the most recent activity in the thread.
Args: filters: Filter dict. Keys: against_type + against_id (must be supplied together — restrict to threads whose original activity is against that object), staff_involved (staff_id), scope ("internal"/"external"), date_logged_before/after fields: Additional fields on the activities listed in each thread page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It helpfully discloses the return shape (original activity id, event_text, total_activities, most recent activity), but says nothing about permissions, rate limits, or how pagination behaves across pages. Read-only behavior is only implied by the verb 'List'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, followed by a compact explanation of the thread concept and the returned fields, then a tight Args block. Every sentence adds information; nothing is redundant with the schema or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description covers the essentials: what a thread is, its returned fields, and full parameter semantics. It stops short of stating auth/permission requirements or rate-limit behavior, but for a read-only list tool the remaining gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate entirely, and it does: it enumerates the filter keys, states that against_type and against_id must be supplied together, gives the allowed scope values ('internal'/'external'), names the staff_involved key, and adds constraints not in the schema (page is 0-indexed, limit max 100). This adds substantial meaning beyond the bare typed properties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List activity threads from Accelo') and then defines what a thread is, which meaningfully separates it from accelo_list_activities. It does not name any sibling or say how it differs from accelo_list_thread_activities or accelo_count_activity_threads, so sibling differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The definition of a thread implies when this tool is appropriate, but there is no explicit when-to-use/when-not statement and no routing to alternatives such as accelo_list_thread_activities for fetching the activities inside a thread. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_addressesA
List addresses from Accelo.
Addresses store location info for companies and contacts. Each address can be postal, physical, or both. Use filters against_type and against_id to find addresses for a specific company or contact.
Args: filters: Filter dict. Keys: id, against_type, against_id, physical, postal, country_id, state_id, zipcode, order_by_asc/desc (id, title) fields: Additional fields, e.g. "country(),state(),street1,city" page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains the address types (postal, physical, both) which is useful domain context, but does not disclose permission requirements, pagination behavior beyond limit, or whether results are sorted. Adequate but incomplete for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then behavior, then parameter details in a clear Args section. Efficient, though slightly verbose in the filter key enumeration but that's necessary given 0% schema coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, domain context, filtering strategy, and parameter specifics. Missing explicit mention of return format or total count behavior, but for a list tool with no output schema, this is largely sufficient for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does well by listing filter keys (id, against_type, against_id, physical, postal, country_id, state_id, zipcode, order_by_asc/desc), explaining fields example syntax, and noting page is 0-indexed and limit max 100. This adds substantial meaning beyond the bare schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List addresses from Accelo') and immediately explains what addresses are and how they relate to companies and contacts. Distinguishes itself from sibling get_address and create_address by clearly being the list operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent when to use filters ('Use filters against_type and against_id to find addresses for a specific company or contact'), which is clear context. However, it doesn't name alternatives or state exclusions (e.g., when to use get_address instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_affiliationsA
List affiliations (contact-company links) from Accelo.
An affiliation links a Contact to a Company and holds contact details (email, phone, position) for that relationship. A contact can have multiple affiliations (one per company they work with). Affiliations are referenced by issues, prospects, and invoices to identify the client contact. affiliation.company_id → Company, affiliation.contact_id → Contact.
Args: filters: Filter dict. Keys: id, email, standing, status, company, contact, postal_address, physical_address, contact_number, invoice_method, date_created/modified/last_interacted_before/after, order_by_asc/desc fields: Additional fields, e.g. "company(),contact(),position" search: Search over firstname, surname, fax, phone, mobile, email page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully explains the data model (a contact can hold multiple affiliations; affiliations are referenced by issues, prospects, and invoices) and the max page size, but says nothing about permissions, rate limits, or ordering defaults.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, followed by the domain model and then a compact Args block. The filter-key list is dense but each item is functional; only minor tightening is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description reasonably covers both the entity's meaning and its query surface. It could note the default page/limit values and return shape, but is otherwise sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: it enumerates concrete filter keys, the fields expansion syntax ("company(),contact(),position"), the fields searched by `search`, and the page/limit semantics including the 100 cap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ("List affiliations") and immediately glosses the domain term as "contact-company links." The 'list' verb cleanly distinguishes it from accelo_get_affiliation, accelo_count_affiliations, and the mutation siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It never states when to use this tool versus accelo_get_affiliation, accelo_count_affiliations, or the filter-based siblings. Usage is only implied by the presence of filters/pagination, with no conditional routing or exclusions offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_asset_linksB
List asset links (joins between an asset and another object).
Returns the asset links and the linked assets. A link joins an asset to an issue, job, prospect, or contract.
Args: filters: Filter dict fields: Additional fields page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden, and it does disclose the return payload ('the asset links and the linked assets') and pagination constraints (page 0-indexed, limit max 100). It says nothing about read-only safety, permissions, or filtering behavior, so it is only partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, followed by a compact definition and an Args block. The 'Returns the asset links' clause mildly restates the opening line, but overall there is little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema and no annotations, the description covers the return shape and pagination basics, which is the essential minimum. It omits filter key semantics, the fields format, and any auth or scoping context, so an agent can invoke it but cannot use it precisely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it does document all four parameters, adding useful specifics like 0-indexed pages and a 100 max limit. However, 'filters: Filter dict' and 'fields: Additional fields' give no key names or format, leaving the two most complex params underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List asset links') and goes further with a definitional gloss ('joins between an asset and another object') plus the concrete link targets (issue, job, prospect, contract). This is clear enough to separate it from the asset-link write siblings (create/delete), though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as accelo_list_assets or accelo_create_asset_link. The domain explanation of what a link is does not tell the agent when this call is the right one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_assetsB
List assets from Accelo.
Assets are flexible objects representing any trackable item — computers, licenses, equipment, etc. They are created 'against' a company and can be linked to jobs, issues, prospects, or contracts via asset links.
Args: filters: Filter dict. Keys: id, standing, type_id, affiliation_id, manager_id, address_id, against_type, against_id, date_created_before/after, order_by_asc/desc (id, date_created, standing) fields: Additional fields, e.g. "asset_type(),manager(),affiliation()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses pagination details (page is 0-indexed, limit max 100), search scope, filter keys, and asset relationship context. However, it does not state that this is a read-only list operation, does not describe the return structure or pagination metadata, and does not mention auth or rate-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, followed by useful domain context and a structured Args list. The asset explanation is somewhat lengthy but earns its place by clarifying what an asset is; the parameter list is well organized and skimmable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter list tool with no annotations, no output schema, and 0% schema description coverage, the description covers invocation parameters and domain context well. It is still incomplete for output shape, pagination metadata, auth/rate-limit behavior, and routing to sibling tools like accelo_count_assets or accelo_get_asset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it documents filters with specific keys, fields with an example, search over title, page indexing, and the limit maximum. It adds substantial meaning beyond the bare schema, though it does not specify value formats for filter keys, standing enums, against_type options, or default ordering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'List assets from Accelo.' It further clarifies that assets are flexible trackable items linked to companies, jobs, issues, prospects, or contracts. It does not explicitly name sibling tools such as accelo_count_assets or accelo_get_asset, but the list vs. get/count distinction is clear from the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what assets are but gives no when-to-use guidance, no conditions for choosing this tool over accelo_get_asset or accelo_count_assets, and no prerequisites or exclusions. Usage is only implied by the tool name and 'List assets.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_asset_typesB
List asset types from Accelo.
Asset types define the schema for assets — which fields are available, whether they have managers, affiliations, or addresses.
Args: filters: Filter dict. Keys: id, standing, order_by_asc/desc (id, standing, title) fields: Additional fields, e.g. "object_link_fields" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. It reveals the filterable/sortable key set and the limit ceiling (max 100), which is real behavioral detail, but it never states this is a read-only, non-mutating call, nor mentions pagination semantics or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line purpose followed by a short 'what it is' sentence and a compact Args block. No filler, though the Args block restates parameter names rather than grouping them more tightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter list tool with no annotations and no output schema, the description covers inputs well but says nothing about the shape of the returned asset-type objects (beyond the conceptual explanation), leaving the agent to guess the response structure it will need for follow-up calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it largely does: it enumerates filter keys (id, standing, order_by_asc/desc with sortable fields), names a concrete example for fields ('object_link_fields'), and notes page is 0-indexed and limit maxes at 100.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('List asset types from Accelo') followed by a genuinely useful explanation of what an asset type is (schema for assets: fields, managers, affiliations, addresses). It distinguishes itself conceptually from accelo_list_assets / accelo_get_asset_type, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance. It does not say whether to call this before listing assets, whether it pairs with accelo_get_asset_type, or when filtering is preferable to fetching everything. Usage is only implied by the word 'List'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_checklistsA
List checklists from Accelo.
Checklists are to-do lists attached to tasks. Each checklist contains items that can be marked complete. Currently only supported against tasks.
Args: filters: Filter dict. Keys: id, against_id, against_type, created_by, date_created_before/after, order_by_asc/desc (id, date_created) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose the scope constraint (tasks only) and the domain model (items can be marked complete). It does not state pagination behavior beyond the schema default, whether the operation is safe/read-only, or what the response looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then domain context, then a compact Args block. Every element earns its place; only the leading purpose repeats the tool name, which is minor.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter list tool with no annotations and no output schema, the description supplies the domain framing, the scope limitation, and full parameter documentation. The main remaining gap is return-value shape, which is only marginally needed given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it enumerates the filter keys (id, against_id, against_type, created_by, date_created_before/after, order_by_asc/desc), describes fields, and notes page is 0-indexed and limit caps at 100. It stops short of examples or type/format details for the filter values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List checklists from Accelo') and adds domain context that checklists are to-do lists attached to tasks. This separates it from get_checklist, count_checklists, and the create/update/delete siblings, though it does not name those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The note 'Currently only supported against tasks' implies a usage constraint, which is helpful. However there is no explicit when-to-use guidance versus accelo_get_checklist or accelo_count_checklists, so the agent must infer the choice from the verb alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_collectionsC
List resource collections for an object.
Args: object_type: The object type (e.g. "companies", "issues", "jobs", "contacts") object_id: The object's ID
| Name | Required | Description | Default |
|---|---|---|---|
| object_id | Yes | ||
| object_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'List' implies a read operation, but it does not disclose pagination, auth needs, rate limits, filtering behavior, or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the action, and structured with clear argument labels. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description should explain more about what collections are and what is returned. For a two-parameter list tool, this leaves key context missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It gives useful examples for object_type, but object_id is only restated as 'The object's ID' without adding format or constraint meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('resource collections') scoped to an object, with example object types. It does not distinguish this tool from siblings such as accelo_list_resources, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternatives are provided. The required arguments imply it needs an object, but nothing tells the agent when to choose this tool over related listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_companiesA
List companies from Accelo with optional filtering, field selection, and search.
Args: filters: Filter dict. Supported keys: id, status, standing, manager_id, custom_id, website, contact_number, postal_address, default_affiliation, date_created_before/after, date_modified_before/after, order_by_asc/desc (id, name, date_created, date_modified, standing, status) fields: Additional fields to return, e.g. "website,phone,postal_address(city)", "_ALL" search: Search over website, name, phone, fax page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses useful constraints such as page being 0-indexed and limit max 100, and implies a read operation via 'List', but says nothing about pagination behavior, return format, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose before a well-organized Args block; every listed item adds value. Slightly verbose with a long filter key list, but that detail is functional rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema and no annotations, the description covers inputs thoroughly. It does not need to explain return values, though it omits any note on pagination semantics or total-count behavior, which would be the only remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate fully, and it does: it enumerates the supported filter keys, documents the order_by fields, gives field-selection syntax examples ('website,phone,postal_address(city)', '_ALL'), names the searchable fields, and specifies page indexing and the limit cap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List companies from Accelo') and enumerates its capabilities (filtering, field selection, search). An agent can distinguish it from accelo_get_company and accelo_count_companies via the 'List' verb, though the description does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'optional filtering, field selection, and search' and the parameter hints, but there is no explicit statement of when to prefer this over accelo_get_company (single record) or accelo_count_companies (counts), nor any exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_company_managersB
List the managers (staff) of a company.
Args: company_id: Company ID fields: Additional fields on the returned staff objects page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| company_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose pagination behavior (page is 0-indexed, limit max 100) and that fields selects extra staff fields, but it omits permission requirements, response format, and any read-only safety context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose, followed by a compact Args block. Every line serves a purpose, though the Args formatting is plain and could be tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list endpoint with no output schema and no annotations, the description covers the operation and parameters adequately, but it does not explain the returned staff object shape or fields usage. It is minimally viable but leaves gaps an agent might need for pagination and result interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must document parameters, and it does cover all four: company_id, fields, page, and limit. It adds useful semantics for page indexing and limit cap, though company_id is documented only as 'Company ID' and fields format is unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('managers (staff) of a company'), so an agent can tell it apart from generic staff or company listings. It does not explicitly differentiate from siblings like accelo_add_company_manager or accelo_remove_company_manager, but the list scope is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus accelo_list_staff, accelo_list_companies, or the add/remove manager siblings. The description only states the operation, leaving selection entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_contactsB
List contacts from Accelo.
Args: filters: Filter dict. Keys: id, email, title, standing, affiliation, status, username, contact_number, date_created/modified_before/after, order_by_asc/desc (id, fullname, firstname, surname, date_modified, etc.) fields: Additional fields, e.g. "default_affiliation(),comments" search: Search over firstname, surname, email page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry behavioral disclosure. 'List' implies a read-only operation and it specifies page is 0-indexed and limit max 100, but it omits auth requirements, rate limits, and return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in one sentence, followed by a compact Args block. Every line adds parameter information, and there is no redundant prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the callable parameters but does not address return structure, pagination totals, auth requirements, or when to prefer count/get siblings. For a list endpoint with no output schema and no annotations, it is adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It documents all five parameters, including filter keys, searchable fields, fields example, page indexing, and limit cap; only value formats for filters are not fully specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List contacts from Accelo.' It is clear what the tool returns, but it does not differentiate from siblings like accelo_count_contacts or accelo_get_contact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or alternatives are provided. The description only enumerates arguments, leaving the agent to infer that this is the bulk-retrieval tool rather than count/get.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_contract_periodsA
List contract periods for a specific contract.
Contract periods are billing intervals within a contract (retainer). Each has a budget, allowance type, and rate. To find the company: period → contract_id → get contract → against_id (company_id).
Args: contract_id: Contract ID (required) — the parent contract filters: Filter dict. Keys: id, standing, budget_type, allowance_type, rate_type, rate, service_item, duration_type, rollover, contract_budget, date_created/commenced/expires/closed_before/after, order_by_asc/desc (id, date_created, date_commenced, date_expires, date_closed) fields: Additional fields, e.g. "contract_budget(),rate()" page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No | ||
| contract_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It correctly implies a read-only list and discloses pagination limits (max 100, 0-indexed pages), but says nothing about permissions, ordering defaults, or how closed/reopened periods affect results, leaving the mutation-adjacent siblings (close/reopen_contract_period) as the only signal of state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose then domain model then Args, which is well ordered. The Args block is somewhat long and partially restates schema fields, but nearly every line (filter keys, order_by values, field syntax) adds information the schema lacks.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a filtered list tool with no output schema, the definition covers the entity model, the hierarchy path to related objects, filtering, sparse field selection, and pagination. It stops short of describing the shape of a returned period, which is the main remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it largely does: it documents all five parameters and enumerates filter keys plus valid order_by fields. It still omits value types or accepted enum values for those filter keys, so it is not fully self-sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list contract periods) scoped to a specific parent contract, and its domain gloss ('billing intervals within a contract (retainer)') makes it unambiguous against siblings like accelo_get_contract_period, accelo_list_contracts, and accelo_create_contract.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when this is the right call (you have a contract and need its billing periods) plus a navigation hint from period through contract_id to against_id. It never names an alternative or an explicit when-not condition, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_contractsA
List contracts (retainers) from Accelo.
Contracts are always 'against' a company (against_type="company"). Each contract has billing periods (contract_periods). To find a contract's company: the against_id IS the company_id. Use fields="company()" to expand the company inline.
Contract periods link back via contract_id. To resolve a contract_period to its company: get period → contract_id → get contract → against_id.
Args: filters: Filter dict. Keys: id, standing, contract_type, manager, billable_affiliation, status, against_type, against_id, date_created/started/expired_before/after, order_by_asc/desc fields: Additional fields, e.g. "manager(),company(),contract_type()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses useful structural behavior (the mandatory company linkage, the contract_period → contract → company resolution path, and fields expansion), but says nothing about read-only safety, auth requirements, pagination limits beyond 'max 100', or rate limiting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose, then layers in relationship semantics and a structured Args block. The middle relationship paragraphs are slightly verbose but each conveys a non-obvious navigation rule, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated list tool with no output schema and no annotations, the definition covers the entity model, filter surface, and pagination adequately. Return-shape and read-only expectations are left implicit, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely does: it enumerates valid filter keys (id, standing, contract_type, manager, status, against_type/against_id, date_* range filters, order_by_*), and explains fields, search, page (0-indexed), and limit (max 100). Only the exact accepted values for filter keys remain undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with a clarifying synonym: 'List contracts (retainers) from Accelo.' This cleanly separates it from accelo_get_contract, accelo_count_contracts, and accelo_list_contract_periods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides strong navigational context: contracts are always 'against' a company, against_id IS the company_id, and it walks through resolving a contract_period back to its company. It stops short of explicitly naming alternative tools or stating when-not-to-use this one (e.g. vs accelo_list_contract_periods).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_contributorsA
List contributors from Accelo.
Contributors are third-party contacts involved in client work (jobs, issues, prospects). They link a staff member or affiliation to a work object, and can be auto-CC'd on correspondence.
Args: filters: Filter dict. Keys: id, standing, status_id, contributor_type_id, against_type, against_id, object_id, object_type, auto_cc, order_by_asc/desc (id, contributor_type_id, standing, status_id) fields: Additional fields, e.g. "contributor_type(),description" search: Search over description page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses that contributors can be auto-CC'd on correspondence and that they link staff/affiliations to work objects, which adds useful behavioral context beyond a simple list operation. However, it does not cover pagination behavior or default limits beyond what args imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose paragraph and an Args section. It is front-loaded with what contributors are. It is appropriately sized for a list tool with complex filters, though the Args section could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters at 0% schema coverage, no annotations, and no output schema, the description provides enough context to call the tool correctly: it explains filters, fields, search, and pagination. It is missing explicit guidance on when to use it versus related tools and does not detail the return format, but for a list endpoint this is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by documenting all five parameters with detail: filters keys, fields format, search scope, page indexing, and limit max. This adds substantial meaning beyond the empty schema properties. It loses a point only because some filter key semantics (e.g., standing, against_type) are not explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description provides a specific verb (List) and resource (contributors) and goes beyond the name by defining what a contributor is: third-party contacts involved in client work. This distinguishes it from siblings like accelo_list_contacts or accelo_get_contributor_type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by defining contributors, but it does not explicitly state when to use this tool versus alternatives like accelo_get_contributor or accelo_count_contributors. No when-not or exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_contributor_typesA
List contributor types from Accelo.
Contributor types (e.g. 'Advisor') define whether the type has a status, whether contributors of the type are auto-CC'd, and its default standing.
Args: filters: Filter dict. Keys: id, title, default_status_id, default_standing, order_by_asc/desc (ordering) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the resource's semantics but says nothing about auth requirements, rate limits, whether results are paginated by default, or return shape. Partial coverage only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then a single clarifying sentence on domain meaning, then a compact Args block. Every element earns its place, though the Args formatting is mildly list-heavy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with no output schema and no annotations, the description covers purpose, resource semantics, and all parameter hints. Missing only edge behavior (pagination defaults, error/empty handling) to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and an untyped filters object, the description compensates well: it enumerates filter keys (id, title, default_status_id, default_standing, order_by_asc/desc), documents page as 0-indexed, and caps limit at 100. This is meaningful value the schema lacks, though the 'fields' param remains unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('List contributor types') and enriches it with domain meaning ('Advisor' example, what a type defines). It does not explicitly distinguish itself from siblings accelo_get_contributor_type and accelo_count_contributor_types, though list-vs-get-vs-count is inferable from names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (a read-only listing endpoint) but the description never states when to use this versus the get or count variants, nor any prerequisites. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_divisionsB
List divisions from Accelo (Beta).
Divisions allow managing contacts, companies, and staff under different details, rates, or identities.
Args: filters: Filter dict. Keys: id, title, standing, order_by_asc/desc (id, title, standing, ordering) fields: Additional fields, e.g. "standing,ordering" page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears the full load. It discloses the Beta status, the pagination model (0-indexed pages, max 100 per page), and the expandable-fields behavior, but says nothing about permissions, rate limits, total counts, or whether results are read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action in sentence one, then a short gloss, then a compact Args block. Every line carries information; the only mild redundancy is restating the params in prose that the schema also shows structurally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list endpoint with no output schema, the description covers filtering, field expansion, and pagination limits adequately. It does not describe the shape of a returned division or what 'standing'/'ordering' values are valid, which is the main remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden and does so well: it documents all four params, lists the filter keys (id, title, standing, order_by_asc/desc), gives a fields example, notes page is 0-indexed, and caps limit at 100. That is meaningfully beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List divisions from Accelo') and adds a one-sentence gloss on what a division represents. It clearly separates itself from siblings like accelo_get_division and accelo_count_divisions by naming a batch listing, though it never explicitly says so.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no reference to the closely related accelo_get_division or accelo_count_divisions tools. The (Beta) marker gives some context, but an agent must infer that this is the bulk-retrieval option.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_enumA
List an object's enumeration values (statuses, types, classes, etc.).
Use this to DISCOVER valid IDs before filtering a list endpoint — e.g. call accelo_list_enum("issues", "statuses") to learn the status_id values, then pass one to accelo_list_issues(filters={"status": }).
Valid (object, enum_type) combinations: Statuses: companies, contacts, affiliations, jobs, issues, milestones, quotes, contracts, prospects -> enum_type="statuses" Types: jobs, issues, expenses, contracts, contributors, requests, prospects -> enum_type="types" Issues: enum_type in "classes", "priorities", "resolutions" Other: tasks/"priorities", activities/"classes", prospects/"probabilities"
Args: object: Object name, e.g. "issues", "jobs", "companies" enum_type: Enumeration kind, e.g. "statuses", "types", "classes", "priorities", "resolutions", "probabilities" filters: Filter dict (most enums support id/title/standing + order_by_*) fields: Additional fields (most enums support _fields) search: Search over title (where supported) page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| object | Yes | ||
| search | No | ||
| filters | No | ||
| enum_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the burden. It discloses the valid (object, enum_type) combinations, which is crucial behavioral context that prevents invalid calls, and notes which enums support search/fields/filters. It doesn't cover pagination defaults or error behavior, but the critical constraint is documented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with a leading purpose sentence, a usage example, a categorical table of valid combinations, and an Args section. The valid-combinations list is long but earns its place by preventing invalid calls; slight verbosity in example formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and no annotations, the description is nearly complete: it explains the domain constraints, parameter usage, and usage context. Missing only return-value shape and pagination behavior, which are minor for a discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must fully compensate. It does: it documents each parameter (object, enum_type, filters, fields, search, page, limit) with examples and notes on which enums support them, far exceeding the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('List an object's enumeration values') with parenthetical examples of what enums are. It clearly distinguishes itself from siblings like accelo_list_issues or accelo_list_companies by being the lookup for valid IDs rather than the listing of records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it ('DISCOVER valid IDs before filtering a list endpoint') and provides a concrete end-to-end example chaining to accelo_list_issues. This is best-in-class routing guidance among the many list_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_expensesB
List expenses from Accelo.
Args: filters: Filter dict. Keys: id, standing, expense_type, submitter, approver, against_type, against_id, date_incurred_before/after, order_by_asc/desc fields: Additional fields, e.g. "expense_type(),resource()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses pagination behavior (page is 0-indexed, limit max 100), which is real behavioral context, but it omits auth requirements, rate limits, and any statement about what the listing returns or how filtering interacts with pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose on line one, followed by a compact args block with no filler text. Every line carries information, though the args formatting is slightly terse rather than maximally structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter list tool with no annotations and no output schema, the description covers inputs adequately but says nothing about the returned shape, total counts, or pagination metadata. It is minimally sufficient rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it largely does: it enumerates the filter keys (id, standing, expense_type, submitter, approver, against_type/id, date_incurred_before/after, order_by_asc/desc), gives a fields example ('expense_type(),resource()'), and documents page indexing and limit max. It leaves filter value formats (e.g., date syntax, order_by usage) unspecified, so not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource ('List expenses from Accelo'), which cleanly separates it from siblings like accelo_get_expense, accelo_count_expenses, and accelo_create_expense. However, it never explicitly names which sibling to prefer or how it differs from accelo_count_expenses or accelo_list_expenses-style filtered variants, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as accelo_count_expenses or accelo_get_expense, and no prerequisites or exclusions stated. Usage is only implied by the presence of filter/pagination args.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_extension_fieldsC
List extension fields available for an object type.
Args: object_type: The object type — assets, contracts, issues, jobs, prospects fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | ||
| object_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. It confirms this is a read/list operation only by the verb 'List' and discloses nothing about pagination, permissions, return shape, or whether fields are user-defined. For a tool with zero annotation coverage this is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and kept to a short Args block with no filler. Slightly terse but well-structured and appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema and no annotations, the description is minimally adequate but omits what an 'extension field' is and what the listing returns. The missing return-shape context is a real gap given no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does partially: it enumerates the valid object_type values (assets, contracts, issues, jobs, prospects), which the schema does not. However 'fields: Additional fields to return' is vague and does not clarify format or acceptable values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (extension fields) scoped to an object type, which clearly distinguishes it from write siblings like accelo_set_extension_value. It does not explicitly contrast itself with accelo_get_extension_values or accelo_list_profile_fields, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus the related extension/profile siblings, nor any prerequisites or exclusions. The only guidance is the implied list of valid object_type values, which is a validation aid rather than usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_filtersA
List saved filters on the deployment.
Does not include filters created by other users that have not been shared.
Args: filters: Filter dict. Keys: id, shared, staff (staff_id), object_type, order_by_asc/desc (id, title, shared) fields: Additional fields, e.g. "staff()" page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations the description carries the full burden. It helpfully discloses a visibility constraint (unshared filters by other users are excluded) that is not derivable from the schema, but it omits auth requirements, pagination behavior, and the return shape for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by the key exclusion and a compact Args block. Each line contributes, though the docstring formatting is slightly verbose relative to the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param read tool with no annotations and no output schema, the description covers purpose, visibility scope, and every parameter's meaning. It stops short of describing pagination behavior or auth, which would make it fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it largely does: it enumerates the filters dict keys (id, shared, staff as staff_id, object_type, order_by options), gives a fields example like 'staff()', and documents page as 0-indexed and limit's max of 100. Only minor gaps remain on the exact filter value semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List saved filters on the deployment'), and scopes it with 'saved'. However it does not distinguish itself from the sibling accelo_list_object_filters or the action tool accelo_run_filter, so an agent must infer the difference from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by 'List saved filters' and the description clarifies scope by excluding unshared filters from other users. But it never states when to reach for this versus accelo_list_object_filters or accelo_run_filter, so no explicit routing guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_groupsA
List staff groups from Accelo (Beta).
Groups categorize staff for bulk assignments and access controls. Use filter staff_id to find groups a specific staff member belongs to.
Args: filters: Filter dict. Keys: id, title, staff_id fields: Additional fields, e.g. "standing,parent_id" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the Beta status, the domain role of groups, and pagination limits, but says nothing about permissions, auth requirements, or the shape of returned records. 'List' implies a read, but that is inferred rather than stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then a useful domain sentence, then a compact parameter list derived from an unstructured schema. Neutral but necessary, with little filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema and zero schema-level parameter documentation, the description supplies purpose, domain context, and all five parameters. Return-record structure is absent, but that is the main remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it enumerates the filter keys (id, title, staff_id), shows a fields example, explains search scope, notes page is 0-indexed, and caps limit at 100. Only the exact filter value formats remain unstated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List staff groups') and adds domain meaning ('Groups categorize staff for bulk assignments and access controls'), which clearly separates it from accelo_get_group and accelo_count_groups. It does not name siblings explicitly, but the scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete when-to-use cue: 'Use filter staff_id to find groups a specific staff member belongs to.' No exclusions or explicit alternatives are stated, but the retrieval intent is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_holidaysA
List holidays from Accelo (Beta).
Holidays are staff leave/time-off entries imported from calendars or entered manually. Each has a staff_id, date_start, and either date_end or duration_seconds.
Args: filters: Filter dict. Keys: id, staff_id, date_start/end_before/after, order_by_asc/desc (id, staff_id, date_start, date_end, title) fields: Additional fields, e.g. "staff(),duration_seconds" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It discloses that this is a list operation, notes the Beta status, and describes pagination (page 0-indexed, limit max 100) and search behavior. However, it does not state whether it is read-only, whether it requires specific permissions, or what the response structure looks like beyond the mentioned holiday fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose sentence followed by an 'Args' section. It is appropriately sized and front-loaded. The additional context about holiday fields is useful, though slightly beyond what is strictly needed for parameter documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given five optional parameters, no output schema, and no annotations, the description is nearly complete. It covers entity fields, filtering, pagination, and search. Minor gaps remain regarding output format and permission requirements, but these are not critical for a list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate fully. It does: each parameter is explained, including filter keys (id, staff_id, date ranges, order_by options), a fields example, search scope over title, page indexing, and the limit maximum. This is comprehensive and far exceeds the schema's empty descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'List holidays from Accelo'. It also clarifies what a holiday represents (staff leave/time-off entries) and distinguishes the operation from siblings like get_holiday or create_holiday via the verb 'List', though it does not explicitly name an alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or alternative-tool routing is provided. The parameter documentation implies how to filter and paginate, but the description never says when to prefer this tool over accelo_get_holiday, accelo_count_holidays, or others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_interactionsA
List the interactions (senders/recipients) on a single activity.
An interaction is a sender or recipient of an activity — a staff member or
contact with a role of creator/from/to/cc/bcc/attendee/did_not_attend.
The response contains a "staff" array and a "contacts" array; each object
carries an interact sub-object with the interaction id, date_actioned, and type.
Args: id: Activity ID fields: Additional fields on the returned staff/contact objects
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the return shape: 'staff' and 'contacts' arrays each containing an 'interact' sub-object with id, date_actioned, and type. That is meaningful behavioral context beyond a bare 'list' claim, though it says nothing about pagination, permissions, or result limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, followed by a definition and a compact Args block. The enumeration of roles is slightly long but earns its place by defining the domain term; overall little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and only 2 parameters, the description covers the return structure and both inputs adequately for an agent to call it. It lacks error/auth context, but for a simple read-only list scoped to one activity the essentials are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: it explains that 'id' is an Activity ID and that 'fields' requests additional fields on the returned staff/contact objects — a substantial clarification over the bare 'Fields' schema entry. It stops short of giving the field syntax or format for 'fields'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (interactions on a single activity), and immediately defines what an interaction is (sender/recipient with creator/from/to/cc/bcc/etc. roles). This clearly separates it from siblings like accelo_get_activity and accelo_count_interactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The requirement of a single activity id implies the usage context, but there is no explicit statement of when to prefer this over accelo_count_interactions or accelo_get_activity, nor any prerequisites or exclusions. Usage is only inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_invoice_line_itemsA
List invoice line items from Accelo (Beta).
Line items are the individual lines on an invoice, each carrying a quantity, rate, tax, total, and a link to its parent invoice, ledger, and tax code. Traverse from an invoice via filters={"invoice_id": }.
Args: filters: Filter dict. Keys: id, invoice_id, ledger_id, tax_id, quantity, rate, total, ordering (order/range filters), plus order_by_asc/desc fields: Additional fields, e.g. "line_item_ledger(),line_item_tax()" search: Search over the line item description page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the (Beta) status and the max-100 page size, which are genuinely useful behavioral notes, but is silent on authentication, permission requirements, default sort behavior, and total-result/pagination characteristics beyond limit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose before an Args block, and every sentence adds value. The Args inventory is slightly dense but well organized and not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation, no-output-schema list tool with 5 optional parameters, the definition covers purpose, scoping, and each parameter adequately. It does not describe the return shape, which matters more here since there is no output schema, but the resource-composition sentence partially compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it enumerates filter keys (id, invoice_id, ledger_id, tax_id, quantity, rate, total, ordering, order_by_asc/desc), gives a fields example, and clarifies page is 0-indexed and limit max 100. Minor gaps remain (e.g., accepted search syntax, field syntax rules), but most parameters gain meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List invoice line items from Accelo') and adds a definitional sentence explaining what a line item is (quantity, rate, tax, total, parent links). This distinguishes it from siblings like accelo_count_invoice_line_items and accelo_get_invoice_line_item by verb semantics, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete scoping pattern: 'Traverse from an invoice via filters={"invoice_id": <id>}', which tells the agent how to obtain results in a meaningful context. However, it never states when to prefer this over accelo_get_invoice_line_item or accelo_count_invoice_line_items, so usage is implied rather than fully guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_invoicesB
List invoices from Accelo.
Args: filters: Filter dict. Keys: id, invoice_number, date_raised/due/modified_before/after, order_by_asc/desc fields: Additional fields, e.g. "affiliation(),contact(),against_type" search: Search over subject, invoice_number page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses pagination behavior (page 0-indexed, limit max 100) and search/filter capabilities, but does not state permissions, rate limits, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and then presents a compact Args list. It contains no filler and every line adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0% schema coverage, the description covers parameters well but omits usage guidance and return-value context. It is minimally sufficient for calling the tool but leaves routing and output expectations implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it largely does. It documents all five parameters, including filter keys, search fields, pagination, and a fields example, though some value formats remain unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: list invoices from Accelo. It does not explicitly distinguish this from siblings such as accelo_get_invoice, accelo_count_invoices, or accelo_list_invoice_line_items, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance or alternatives. It does not say to use this for retrieving multiple invoices versus accelo_get_invoice for one invoice or accelo_count_invoices for counts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_issuesA
List issues (tickets) from Accelo.
Issues are 'against' a company or a job. To find the company:
If against_type="company": against_id IS the company_id
If against_type="job": get job → against_id (company_id) Issues have an assignee (staff), affiliation (client contact), class, and priority.
Args: filters: Filter dict. Keys: id, standing, custom_id, against_type, against_id, status, issue_type, affiliation, class, issue_priority, assignee, date_created/started/due/modified/closed_before/after, order_by_asc/desc fields: Additional fields, e.g. "description,resolution_detail,assignee()" search: Search over subject page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It explains the output structure by listing issue attributes (assignee, affiliation, class, priority) and the relational model (issues are 'against' a company or job). It does not mention pagination behavior, rate limits, or permissions, but it does provide substantial context about the data model that is essential for correct interpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then logically structured to explain the relational model, list attributes, and document arguments. It is appropriately sized and every sentence serves a purpose, though the bullet points could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the filter object and the lack of an output schema, the description does a good job of covering the necessary context: it explains the relational model, lists key fields, and documents all parameters. It could be improved by noting pagination defaults or response format, but it is largely complete for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It documents all five parameters in detail: it enumerates the allowed filter keys, clarifies that search operates over the subject field, and specifies that page is 0-indexed and limit has a max of 100. This adds critical meaning beyond the bare schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
State a specific verb and resource: 'List issues (tickets) from Accelo.' It clarifies the domain terminology (issues = tickets) and distinguishes semantics from siblings like accelo_list_tasks or accelo_list_activities by defining what an issue is and how it relates to a company or job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides implied usage context through the against_type resolution logic, which tells the agent how to relate issues to companies or jobs. However, there is no explicit guidance on when to use this tool versus alternatives like accelo_count_issues or when to use filters such as status or date ranges, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_jobsA
List jobs (projects) from Accelo.
Jobs are always 'against' a company (against_type="company", against_id=company_id). Jobs contain milestones (phases) which contain tasks. To find a job's company, the against_id IS the company_id. Use fields="company(),manager()" to expand inline.
Args: filters: Filter dict. Keys: id, standing, against_type, against_id, paused, job_type, manager, modified_by, status, rate, date_created/started/due/modified/commenced_before/after, order_by_asc/desc fields: Additional fields, e.g. "manager(),company(),job_type()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does explain the relationship model (jobs against companies, milestones, tasks) and gives a hint about expanding inline fields, but it doesn't disclose pagination behavior, default ordering, or whether this is a read-only operation. For a list tool with no annotation coverage, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then a domain model explanation, followed by a structured Args section. It is efficient and avoids redundancy, though the domain model paragraph is somewhat dense and could be slightly more scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the Accelo job model and the lack of annotations or output schema, the description provides enough context to call the tool correctly: it explains the relationship to companies and milestones, details the filter keys, and clarifies pagination parameters. However, it doesn't mention the return shape (e.g., what a job object contains) or any rate-limiting considerations, which leaves a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for all parameters. It does this well: it documents the filter keys in detail (id, standing, against_type, against_id, paused, etc.), explains the 'fields' parameter with an example, describes 'search' as a title search, and clarifies that 'page' is 0-indexed and 'limit' maxes at 100. This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List jobs (projects) from Accelo') and immediately clarifies the domain model (jobs are projects, always against a company). This distinguishes it from siblings like accelo_list_tasks or accelo_list_companies, which the agent can rule out based on this scoping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when this tool is appropriate (listing jobs, with relationships to companies and milestones), but it doesn't explicitly name alternatives or state when not to use it. The domain model helps an agent understand the place of jobs in the hierarchy, which implicitly guides usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_ledgersA
List account ledgers from Accelo.
Ledgers are accounting codes used for invoicing and financial reporting. They may sync with external systems (Xero, QuickBooks). Key fields: title, code, standing, parent_id, comment.
Args: filters: Filter dict. Keys: id, code, parent_id, standing, order_by_asc/desc (id, code, parent_id, standing, title) fields: Additional fields, e.g. "code,comment" search: Search over title, code page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does add useful context: the accounting nature of ledgers, that they sync with external systems like Xero/QuickBooks, and the key returned fields (title, code, standing, parent_id, comment). However, it does not state permissions, rate limits, or default page size behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then a compact domain gloss, then a well-organized Args list where each parameter gets a single informative line. Sized appropriately for a 5-parameter list tool with no schema descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies the important return shape by naming key fields, and it covers filtering, search, field selection, and pagination. Adequate for an agent to call the tool correctly; only permissions/defaults are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it enumerates allowed filter keys and order_by fields, gives a fields example ('code,comment'), defines search scope (title, code), notes page is 0-indexed, and caps limit at 100. Minor gap: the accepted values for 'standing' are not given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('account ledgers'), and adds a domain gloss explaining what a ledger is (accounting codes for invoicing/reporting). This makes it distinguishable from accelo_get_ledger and accelo_count_ledgers by implication, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It describes the filtering/search/pagination surface ('search over title, code', 'filters: id, code, parent_id, standing'), which implies when this tool is useful, but there is no explicit when-to-use/when-not guidance or routing to accelo_get_ledger vs accelo_count_ledgers. Usage is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_milestonesA
List milestones from Accelo.
Milestones are phases within a job. Each milestone has a job_id linking to its parent job. To find the company: get milestone → job_id → get job → against_id (company). Use fields="job()" to expand the parent job inline.
Args: filters: Filter dict. Keys: id, standing, ordering, job, parent, manager, rate, object_budget, status, date_modified/created/started/commenced/due/completed_before/after, order_by_asc/desc fields: Additional fields, e.g. "description,manager(),job()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the data-model relationships (milestone→job→company) and the inline-expansion trick, which is useful, but says nothing about return shape, permissions, rate limits, or pagination behavior beyond the parameter names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the identity of the tool before the navigation chain and arguments, with each section earning its place. The relationship walkthrough is slightly tangential to invoking the tool, keeping it just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema and no annotations, the description covers identity, relationships, and all five parameters well. It does not describe the fields a milestone record returns, which is the main remaining gap, but the essential calling information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it enumerates the filter dict keys, shows the fields expansion syntax ('description,manager(),job()'), states search is over title, and adds non-obvious constraints like page being 0-indexed and limit maxing at 100.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List milestones from Accelo') and adds genuine domain context — milestones are phases within a job, each with a job_id linking to a parent job. The 'list' verb implicitly distinguishes it from accelo_get_milestone and accelo_count_milestones, which are the natural siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance or named alternative; the reader must infer it from the verb. The navigation chain ('get milestone → job_id → get job → against_id') and the 'Use fields="job()" to expand' hint are practical how-to tips rather than selection guidance, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_object_budget_materialsB
List materials (line items) from object budgets.
Materials represent physical goods, licences, or other non-time cost items tracked against a budget. Each material has a title, quantity, unit cost, and billing status.
Args: filters: Filter dict. Keys: id, budget_id, against_type, against_id, order_by_asc/desc (id) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It implies a read-only listing operation and discloses pagination semantics (0-indexed page, max 100 per page), but says nothing about authentication requirements, rate limits, or default ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and resource, then a useful definition and an Args block. Every sentence carries weight, though the material-definition paragraph is slightly verbose for a list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must carry everything. It covers purpose, resource meaning, and parameters well, but leaves gaps around result shape, permissions, default filters, and how it relates to sibling budget/material tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does well: it enumerates the filter keys (id, budget_id, against_type, against_id, order_by_asc/desc), explains page is 0-indexed, and sets the limit cap at 100. It adds substantial meaning over the bare schema, though each filter key's exact semantics remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (materials/line items) scoped to object budgets, and even explains what a material is (physical goods, licences, non-time cost items) with its key attributes. It is clearly distinguishable from create/update/get siblings by the 'list' verb, but it doesn't explicitly name sibling tools to route between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as accelo_list_object_budget_services or accelo_get_object_budget, nor any prerequisites or exclusions. The resource definition implies context but provides no actual usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_object_budgetsB
List object budgets from Accelo.
Object budgets track time and money spent against issues, milestones, jobs, and contract periods. Key fields include billable, nonbillable, logged, charged, service_price, material_price, and is_billable. Each budget is linked via against_type/against_id (e.g. against_type='milestone', against_id=15).
Args: filters: Filter dict. Keys: id, against_id, against_type, order_by_asc/desc (id) fields: Additional fields, e.g. "service_price_subtotal,material_cost" page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose pagination semantics (page is 0-indexed, limit max 100) plus the against_type/against_id linkage model. It says nothing about authorization requirements, rate limits, or the shape of the response, so coverage is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then the domain context, then a clean Args block. Every element is relevant and the paragraph-to-list structure aids scanning, with only mild redundancy between the field list and the filters example.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no annotations and no output schema, the description covers purpose, the linked-entity model, updatable field names, and every parameter. The one remaining gap is that it never describes the response envelope (pagination shape, total count) that an agent would need to page correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the Args section documents all four parameters: filter keys (id, against_id, against_type, order_by_asc/desc), a concrete fields example, and page/limit semantics including the max of 100. This meaningfully compensates for the bare schema, though it omits defaults and the accepted values for against_type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List object budgets') and adds a substantive explanation of what an object budget is and what it links to (issues, milestones, jobs, contract periods). This clearly separates it from accelo_get_object_budget and accelo_count_object_budgets, though the description never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. The description explains the resource but offers nothing about when to choose this list endpoint over accelo_get_object_budget, accelo_count_object_budgets, or the related material/service budget tools, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_object_budget_servicesB
List services (time-based line items) from object budgets.
Services represent billable time items tracked against a budget. Each service has a rate, quantity (time), and billing configuration.
Args: filters: Filter dict. Keys: id, budget_id, against_type, against_id, order_by_asc/desc (id) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not state whether results are paginated (beyond listing page/limit args), whether authentication scopes are required, or what the response shape looks like. 'List' implies a safe read, but this is left implicit rather than declared.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then a two-sentence explainer of what a service is, then the Args block. Efficient, though the conceptual explainer is somewhat verbose for a list endpoint and could be terser.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param listing tool with no output schema and no annotations, the description leaves key gaps: it doesn't describe return fields, default sort order, or authentication requirements. The Args block is the only substantive content and does not cover the gaps that annotations would normally fill.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description has to compensate, and it partially does: it documents the filters dict keys (id, budget_id, against_type, against_id, order_by), and page/limit semantics including 'max 100'. However, 'fields' is only glossed as 'Additional fields to return' and the descriptions are not typed (e.g., order_by direction). Adequate but incomplete for a 0%-coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (List) plus resource (services from object budgets), with a parenthetical definition ('time-based line items') and a follow-up sentence establishing what a service is. This distinguishes it cleanly from siblings like accelo_list_object_budget_materials and accelo_list_object_budgets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The agent can infer this is a listing endpoint by the verb, but there is no mention of prerequisites (e.g., needing a budget_id) or alternatives (materials list, budgets list).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_object_budget_templatesB
List object budget templates from Accelo.
Budget templates define reusable budget configurations that can be applied to objects. They contain default values for service rates, material costs, and billing settings.
Args: filters: Filter dict. Keys: id, order_by_asc/desc (id) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It explains the domain concept of templates but discloses nothing about safety profile, rate limits, auth requirements, defaults applied server-side, or return behavior; only the 'List' verb implies read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose in the first sentence, then a definition sentence, then a compact Args block. No filler; the only mild inefficiency is the slightly cryptic filter-key shorthand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with no output schema, the description covers what the resource is, all four parameters, and pagination semantics. It could say more about the return shape (list vs. paginated envelope) but is otherwise adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does add real meaning: filters keys (id, order_by_asc/desc), fields as additional return fields, page as 0-indexed, and limit capped at 100. The 'order_by_asc/desc (id)' phrasing is terse but conveys sort intent the schema lacks entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource ('List object budget templates from Accelo') and a follow-up sentence explaining what a budget template actually is, which helps distinguish it from siblings like accelo_list_object_budgets. It does not explicitly name a sibling to route against, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, prerequisites, or alternatives. There is no mention of how this differs from listing object budgets or when an agent should pick this tool over the closely-named budget/material/service siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_object_filtersB
List saved filters for a particular object type.
Args: object: Object type, e.g. "companies", "issues", "jobs" (one of: activities, affiliations, companies, contracts, expenses, issues, jobs, milestones, prospects, quotes, staff, tasks) filters: Filter dict. Keys: id, shared, staff (staff_id) fields: Additional fields page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| object | Yes | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose useful operational traits — pagination is 0-indexed and capped at 100 per page — but says nothing about return shape, whether filters are read-only, or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose sentence is front-loaded, followed by a compact Args block mapping each parameter. Minimal waste, though the raw docstring formatting is slightly less scannable than prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a list tool with no output schema: params are fully documented. It stops short of describing what a saved filter record contains or how results relate to run/update filter siblings, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: it enumerates all 12 valid object-type values (not present in the schema), documents the filter dict keys (id, shared, staff_id), and explains fields/page/limit including the 0-indexed and max-100 constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List saved filters') with the scope qualifier 'for a particular object type', which is meaningfully distinct from generic filter ops. It does not, however, explicitly contrast with the sibling accelo_list_filters or accent that this is the per-object variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not guidance, and no reference to the adjacent siblings accelo_list_filters, accelo_run_filter, or accelo_update_filter that an agent would need to disambiguate. The usage is only weakly implied by the object-type scoping.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_paymentsA
List payments from Accelo.
Payments record money received against invoices. Each payment has a method, receipt, and currency. Use fields="payment_method(),payment_receipt(), payment_currency()" to expand linked objects.
Args: filters: Filter dict. Keys: id, currency_id, method_id, receipt_id, created_by_staff_id, against_id, against_type, date_created_before/after, against (object filter, e.g. {"account_invoice": [133]}), order_by_asc/desc (id, amount, date_created, direction) fields: Additional fields, e.g. "payment_method(),payment_receipt()" page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose concrete operational traits: page is 0-indexed and limit is capped at 100 results, which are genuinely useful. However, it says nothing about authentication/permission requirements, rate limits, or the shape of returned data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and domain explanation, then uses a clean Args section. Every element is relevant, though the filter key list is dense and slightly overlong for a description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema and no annotations, the parameter side is well covered, but the description never indicates what a payment record returns (field names beyond method/receipt/currency) or whether results are paginated with a total count. That leaves a real gap for an agent invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it does so thoroughly. It enumerates the filter keys (id, currency_id, method_id, receipt_id, created_by_staff_id, against_id/type, date_created_before/after, against object filter, order_by directions) plus the fields syntax and page/limit semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List payments from Accelo') and adds useful domain context that payments are money received against invoices with a method, receipt, and currency. It does not explicitly differentiate from siblings like accelo_get_payment or accelo_count_payments, but the list/count/get distinction is self-evident from the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives practical usage hints (how to expand linked objects via fields, what the filter keys are) but never states when to use this tool versus the sibling get_payment, count_payments, or accelo_list_invoices. Usage is implied by the tool name rather than explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_profile_fieldsC
List profile fields available for an object type.
Args: object_type: The object type — affiliations, companies, contacts, contracts, invoices, issues, jobs, milestones, prospects, staff fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | ||
| object_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it delivers little beyond the verb 'List' (which weakly implies a safe read). Nothing is said about auth requirements, pagination, rate limits, or what a profile field record contains, and there is no output schema to fall back on.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence of purpose followed by a compact Args block; the key constraint (object_type, with values) is front-loaded and there is no filler. Slightly verbose only because the enum list is inlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a small two-parameter lookup tool with no annotations and no output schema, the description is minimally adequate: it names the operation and the valid object types, but leaves the meaning of 'profile field', the return shape, and the relationship to the profile-value tools unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source of parameter meaning — and it does supply the full object_type enumeration, which the schema lacks entirely. However, 'fields: Additional fields to return' is vague: no format (comma-separated? repeated?), no distinction from the default field set, so the second parameter stays under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (profile fields) scoped to an object type, and enumerates the valid object types so an agent immediately knows the domain. It is distinguishable from value-oriented siblings like accelo_get_profile_values and accelo_set_profile_value, though the description never explicitly draws that contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no reference to alternatives. An agent must infer on its own that this is a discovery call typically made before get_profile_values/set_profile_value, or that accelo_list_extension_fields is a different kind of metadata lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_progressionsC
List available progressions for an object (possible status transitions).
Args: object_type: The object type — tasks, companies, jobs, prospects, issues, milestones, affiliations, contracts, contacts, expenses object_id: The object's ID
| Name | Required | Description | Default |
|---|---|---|---|
| object_id | Yes | ||
| object_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It implies a read operation through 'List' and clarifies the domain, but does not disclose authentication requirements, pagination, rate limits, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized, front-loads the core action, and uses a compact Args list with no filler. It could be slightly more integrated, but it is efficient and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema and no annotations, the description gives enough to identify the resource and valid object types, but it does not describe what a progression object contains or any operational constraints such as pagination or auth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It enumerates valid object types for object_type (valuable meaning beyond the schema), but object_id is only restated as 'The object's ID,' leaving half the parameters under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('progressions for an object'), and clarifies the domain by equating progressions with 'possible status transitions.' It does not explicitly name the sibling accelo_run_progression as the alternative for executing a transition, so it misses full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only says what the tool does, not when to use it versus alternatives. It provides no context about prerequisites, when to prefer this over accelo_run_progression, or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_prospectsA
List prospects (sales) from Accelo.
Prospects link to a company via affiliation_id → get affiliation → company_id. Use fields="affiliation()" to expand the client contact, or filter by company directly with the 'company' filter.
Args: filters: Filter dict. Keys: id, standing, weighting, success, affiliation, manager, prospect_type, status, prospect_probability, company, date_created/due/actioned_before/after, order_by_asc/desc fields: Additional fields, e.g. "manager(),affiliation(),value" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'List' implies a read, and it does disclose pagination defaults (page 0-indexed, limit max 100) and the affiliation→company data relationship. However, it says nothing about the response envelope, total counts, or what happens when filters don't match, leaving real behavioral gaps for a zero-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then the affiliation/fields relationship, then an Args block — a clean, scannable structure. It is slightly padded by the nested affiliation_id → get affiliation → company_id chain, but every section still earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-annotation, zero schema-coverage, no-output-schema tool, the description covers inputs well but never describes what a prospect record contains or how pagination results are returned. It is adequate for invocation but incomplete for an agent that must interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it enumerates the filter keys (id, standing, weighting, success, affiliation, manager, prospect_type, status, prospect_probability, company, date bounds, order_by) plus fields, search, page, and limit semantics. Several filter keys (standing, weighting, success, prospect_probability) are named but not explained, and the format of date bounds / order_by is unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List prospects (sales) from Accelo'), which is unambiguous and distinguishable from accelo_get_prospect / accelo_count_prospects / accelo_create_prospect. It adds useful domain framing about prospects linking to companies, but does not explicitly contrast itself with those siblings beyond the obvious list-vs-get distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete operational guidance: how to reach the client contact via fields="affiliation()", and that you can instead filter by company with the 'company' filter. It does not spell out when to prefer this over alternatives or list exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_purchasesA
List purchases from Accelo.
Purchases track costs incurred when completing jobs, issues, or contracts. Key fields: title, amount, tax, total, date_purchased, owner_id, creator_id, affiliation_id.
Args: filters: Filter dict. Keys: id, owner_id, creator_id, affiliation_id, date_purchased_before/after, order_by_asc/desc (id, amount, tax, total) fields: Additional fields, e.g. "amount,tax,total" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden; it does disclose concrete constraints — page is 0-indexed and limit is capped at 100 — which is real, useful operational context. However it says nothing about whether results are ordered by default, what the response envelope looks like, or that the operation is a non-mutating read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence and the one-sentence domain definition are front-loaded, followed by a compact Args block — nothing is redundant. The key-fields line is slightly decorative but still earns its place by naming the return surface.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter, no-output-schema listing tool with zero annotation coverage, the description covers resource meaning, every parameter, and pagination constraints. Missing only return-shape details (e.g. whether a total count or cursor accompanies results) and default ordering, which keeps it from being fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely does: it enumerates filter keys (id, owner_id, creator_id, affiliation_id, date_purchased_before/after, order_by_asc/desc and sortable fields), explains fields as additional fields with an example, defines search as title search, and gives page/limit semantics. It falls short only on filter value formats and how multiple filters combine.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List purchases from Accelo') and then defines the domain object — costs incurred when completing jobs, issues, or contracts — which distinguishes purchases from the neighboring expenses, invoices, and payments list tools. An agent can identify the resource without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus accelo_count_purchases or accelo_get_purchase, nor any stated preconditions or exclusions. The list semantics imply read access to a collection, but nothing in the text routes the agent between alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_quotesA
List quotes (proposals) from Accelo.
Quotes are proposals typically created against a prospect (sale). They contain service and material line items with pricing. Use fields="manager(),affiliation()" to expand linked objects.
Args: filters: Filter dict. Keys: id, standing, affiliation, manager, status, against_type, against_id, created_by, date_created/expiry_before/after, order_by_asc/desc fields: Additional fields, e.g. "manager(),affiliation(),introduction" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full load and does reasonably well: it documents pagination semantics (page is 0-indexed, limit max 100), the fields-expansion mechanism with sample syntax, and a search that covers title only. It omits permissions/auth requirements and rate-limit behavior, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose before the explanatory paragraph and the Args block. Every section earns its place, though the domain-context paragraph is slightly verbose for a list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter list tool with zero annotation and zero schema-description coverage, the description covers all parameters and the domain meaning of a quote. It does not describe the shape of returned quote objects, which is a minor gap given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely does: it enumerates the valid filter keys, explains the fields expansion syntax with concrete examples, states search scope, notes page is 0-indexed, and caps limit at 100. Filter value types and the exact shape of the filters dict remain unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List quotes (proposals) from Accelo') and adds genuine domain context by explaining that quotes are proposals created against a prospect with service/material line items and pricing. It does not, however, explicitly distinguish itself from adjacent siblings like accelo_get_quote or accelo_count_quotes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the filter keys (standing, status, against_type, date ranges) which hint at browse/filter scenarios, but there is no explicit 'use this when...' statement and no named alternative such as accelo_get_quote for a single record. An agent can infer the context but gets no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_ratesB
List rates from Accelo.
Rates define the hourly rate charged for billable work. They are referenced by jobs, milestones, tasks, contracts, and staff. Key fields: title, charged (hourly rate as decimal), standing, object (comma-separated list of object types the rate applies to).
Args: fields: Additional fields, e.g. "charged,object,standing" page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It provides useful domain context (what rates are, their key fields, what they are referenced by), but says nothing about read-only safety, auth requirements, or pagination/return behavior beyond the args section.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then a compact domain explanation, then a clean Args block. Every element is functional; only mild redundancy between the prose key-fields list and the fields arg example.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description usefully enumerates the key returned fields (title, charged, standing, object). For a simple list tool with no annotations this is nearly complete, lacking only pagination/total-count behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates well: it documents all three params, clarifies that page is 0-indexed, limit is capped at 100, and gives a concrete example format for fields. This meaning is absent from the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("List rates") and explains what a rate represents and how it is referenced (jobs, milestones, contracts, staff). This distinguishes it from accelo_get_rate and accelo_count_rates, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when/when-not guidance is given. There is no mention of when to use this list tool versus accelo_get_rate for a single rate, accelo_count_rates, or how it relates to accelo_list_* filters. Usage is only implied by the verb "List".
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_referralsB
List referrals from Accelo.
Referrals link an object to the object it was created from. For example, a job created from a prospect has a referral where referrer_type='prospect' and against_type='job'.
Args: filters: Filter dict. Keys: id, against_type, against_id, referrer_type, referrer_id, created_by, updated_by, standing, date_created/updated_before/after, order_by_asc/desc (id, date_created, date_updated) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It implies a read-only list operation and documents pagination and filter keys, but it says nothing about authentication needs, rate limits, return shape, or how many results are returned by default. The conceptual explanation of referrals is useful but leaves key behavioral traits uncovered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with purpose, then adds a brief conceptual explanation with one illustrative example, and finishes with a structured Args section. The example earns its place by clarifying the referrer_type/against_type filter keys, though the prose could be tightened slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with four optional params, no nested objects, no output schema, and no annotations, the description covers purpose, the referral concept, and all four parameters. It is missing usage guidance and return/pagination behavior, but is otherwise adequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it enumerates the filter keys, states that page is 0-indexed, and caps limit at 100. The 'fields' parameter is only described as 'Additional fields to return', which is vague, keeping this from a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource ('List referrals from Accelo') and then explains the concept of a referral with a concrete example using referrer_type and against_type. It is distinguishable from other list tools, but it does not explicitly differentiate itself from siblings like accelo_get_referral or accelo_count_referrals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what referrals are but offers no guidance on when to use this listing tool versus the single-referral getter or the counter. No exclusions, prerequisites, or alternative-selection criteria are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_requestsC
List requests from Accelo.
Args: filters: Filter dict. Keys: id, standing, affiliation, type, request_priority, lead, claimer_id, date_created/modified_before/after, order_by_asc/desc fields: Additional fields, e.g. "body,affiliation(),claimer()" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read operation but does not state pagination behavior, default page size, maximum results, permissions, or response shape, which matters for a list tool with a 100-item limit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is compact and front-loads the one-line purpose before the argument list. Each line carries information, though the Args format is dense and could be clearer about filter value types.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter list tool with no annotations and no output schema, the description covers the parameters but omits when to use it, pagination semantics beyond indexing, and any return-value or limit/ordering behavior. It is adequate but leaves clear gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source of parameter meaning. It documents filters keys, fields syntax with an example, search scope, and 0-indexed page plus the max-100 limit, which is genuinely useful. However, it does not specify filter value formats or explain the standing/affiliation/type value domains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List requests from Accelo'), which clearly distinguishes it from accelo_get_request and accelo_count_requests. It does not name or compare against a sibling explicitly, but the scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus accelo_count_requests, accelo_get_request, or accelo_list_request_threads. The docstring only documents parameters, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_request_threadsB
List request threads on the deployment.
A request thread groups a request with its activity thread. Returns a "requests" array plus a "linked_objects" array of objects linked to those requests.
Args: filters: Filter dict. Keys: standing, request_type_id (the request type_id), interact_from_staff (staff_id), date_created_before/after page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully describes the return structure (a 'requests' array and a 'linked_objects' array) and notes that the page is 0-indexed and limit has a max of 100. However, it doesn't disclose any permission requirements, rate limits, or error behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the core purpose and return information. The 'Args' section is a standard, readable structure. There is little wasted text, making it easy for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description is nearly complete. It explains the return format and the key input constraints. It could be improved by including pagination behavior (e.g., whether the response includes a total count) or basic usage examples, but it covers the essentials well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so effectively by detailing the `filters` dictionary keys (`standing`, `request_type_id`, `interact_from_staff`, `date_created_before/after`) and their expected value types, plus clarifying that `page` is 0-indexed and `limit` has a max. This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb+resource ('List request threads') and adds valuable conceptual context by defining what a request thread is ('groups a request with its activity thread'). This helps distinguish it from `accelo_list_requests` and `accelo_list_activity_threads`, though it doesn't explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but provides no guidance on when to use it versus alternatives. An agent must infer its use case from the definition alone, with no explicit 'use this when...' or 'for X, use Y instead' instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_resourcesC
List resources (attachments) from Accelo.
Args: filters: Filter dict. Keys: id, mimetype, activity_id, collection_id, date_created_before/after, order_by_asc/desc fields: Additional fields, e.g. "owner_type,owner_id,collection_id" search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It implies a read operation but doesn't state whether it's safe, idempotent, or if it requires specific permissions. It also lacks details on pagination behavior beyond the 'page' and 'limit' parameters, and doesn't describe the return format. This is a significant gap for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then lists parameter details efficiently. It is appropriately sized and every sentence contributes. The use of a structured 'Args' section aids readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (listing with filters, pagination) and the absence of annotations and output schema, the description is minimally adequate. It covers the main parameters and their roles but lacks behavioral context (e.g., read-only nature, rate limits) and doesn't explain return values or how to handle pagination beyond defaults. It is sufficient to invoke but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does provide useful details for the 'filters' parameter (listing keys) and mentions 'search over title' and 'fields' example, which adds meaning beyond the bare schema. However, it doesn't fully explain all filter keys or the format of 'fields', and 'page'/'limit' are only briefly described. The description partially compensates but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb and resource: 'List resources (attachments) from Accelo.' It also clarifies the entity ambiguity by equating 'resources' with 'attachments'. However, it doesn't differentiate this tool from siblings like accelo_get_resource, accelo_count_resources, or accelo_download_resource_url.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. It doesn't mention that this is for listing multiple resources, nor does it point to accelo_get_resource for fetching a single resource or accelo_count_resources for counting. No when-not-to-use or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_segmentationsA
List segmentations (categories) from Accelo.
Segmentations organize companies, contacts, and affiliations into categories for management and reporting. Each segmentation has a link_type ('company', 'contact', or 'affiliation') and can be exclusive (single value) or multi-value.
Args: filters: Filter dict. Keys: id, link_type, standing, required, exclusive, leaf, order_by_asc/desc (id) fields: Additional fields to return page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes the domain model (link_type, exclusive vs multi-value) which adds real value, but does not disclose pagination behavior, max results, read-only safety, or any auth/rate constraints for a tool that returns paginated data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence, then a compact conceptual paragraph, then an args block. Efficient with no filler, though the args prose slightly duplicates what a good schema would carry.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a filtered list tool with no annotations and no output schema, the description covers the domain model and most parameters but omits return shape, pagination totals, and behavioral constraints, leaving gaps an agent would need to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does list filter keys (id, link_type, standing, required, exclusive, leaf, order_by) and documents page (0-indexed) and limit (max 100), adding meaningful semantics the bare schema lacks. It leaves 'fields' vague, so not a full 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb (list) and resource (segmentations/categories from Accelo), then explains what segmentations are and the link_type/exclusive semantics. This gives the agent enough conceptual grounding to distinguish it from siblings like get_segmentation and count_segmentations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage as a listing/retrieval tool, and the definition of segmentations orients the agent somewhat. However, it never states when to use this versus accelo_get_segmentation or accelo_count_segmentations, nor conditions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_signoffsA
List signoffs from Accelo.
Signoffs allow clients to approve work and comment on attachments. They are created against jobs or milestones. Standing: 'draft', 'sent', 'approved', or 'declined'.
Args: filters: Filter dict. Keys: id, created_by, standing, requires, against_type, against_id, date_created/expires/updated_before/after, order_by_asc/desc (id, date_created, date_expires, date_updated, standing, subject) fields: Additional fields, e.g. "html_body,permissions" search: Search over subject page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the max limit of 100 and the domain model (statuses, attachment types), which helps. However, it says nothing about permissions, rate limits, or pagination semantics beyond the limit, leaving behavioral gaps for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose with a brief domain explanation, then a clearly labeled Args section. Structured and mostly waste-free, though the domain explanation of signoffs is somewhat verbose relative to the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no annotations and no output schema, the definition supplies the needed context: what signoffs are, their statuses, and thorough parameter documentation. Return-value shape is left unspecified, but that is a minor gap for a listing endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does well: it enumerates filter keys (id, standing, against_type, date ranges, order_by options), documents fields, search, page, and limit with the 100 max. This meaningfully exceeds the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb+resource ('List signoffs') and adds useful domain context explaining what signoffs are and that they attach to jobs/milestones. It could more explicitly distinguish itself from siblings like accelo_count_signoffs or accelo_get_signoff, but the listing scope is evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'List signoffs' and the domain explanation, but there is no explicit when-to-use guidance or when to prefer this over accelo_get_signoff or accelo_count_signoffs. The standing values and filter keys give context but not selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_skillsA
List skills from Accelo.
Skills are tags assigned to tasks or staff to match work with appropriate team members. Use the 'against' object filter to find skills on a specific task or staff member.
Args: filters: Filter dict. Keys: id, title, against (object filter, e.g. {"task": [24]}), order_by_asc/desc search: Search over title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. Naming it a 'list' conveys read-only semantics and it surfaces operational constraints (page 0-indexed, limit max 100). But it says nothing about permissions, rate limits, or default pagination behavior beyond the param notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose statement is front-loaded and the Args block is compact. Slightly more explanation of skills than strictly needed, but each line carries value for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema and no annotations, the description covers purpose, filtering, and pagination constraints adequately. Return shape is not described, but with no output schema that is a minor gap for a standard list endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it names every parameter and adds real meaning (filters keys id/title/against/order_by, against accepts an object like {"task": [24]}, search over title, page 0-indexed, limit max 100). The filter dict structure is not exhaustively specified, so not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List skills from Accelo') and then explains the domain object ('tags assigned to tasks or staff to match work with appropriate team members'). This clearly separates it from siblings like accelo_count_skills and accelo_create_skill.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It describes how to use the 'against' object filter to scope results to a task or staff member, which is a useful routing hint. However, it never says when to prefer this tool over alternatives such as accelo_count_skills or the broader filter utilities, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_staffB
List staff members from Accelo.
Args: filters: Filter dict. Keys: id, email, standing, username fields: Additional fields, e.g. "email,title,mobile" page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It mentions pagination details (0-indexed page, max limit 100) and filter keys, but omits read-only safety, auth requirements, rate limits, and return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, then a short args block. It wastes little space, though the raw docstring formatting is slightly less polished than ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and low schema coverage, the definition is partially complete: parameters are covered, but usage guidance, safety profile, and return expectations are missing. It is adequate but leaves clear gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It usefully documents all four parameters, including filter keys, a fields example, and pagination constraints, though filter value syntax and operators remain unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb (list) and resource (staff members from Accelo). It is easily distinguishable from get/count staff siblings by operation type, though it does not explicitly name alternatives or scope exclusions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no when-to-use guidance, no prerequisites, and no comparison to siblings like accelo_get_staff or accelo_count_staff. The only implied usage is that it lists staff, which is not enough to route an agent confidently.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_staff_membershipsB
List staff group memberships from Accelo.
Each membership links a staff member to a group.
Args: filters: Filter dict. Keys: id, staff_id, group_id, order_by_asc/desc fields: Additional fields, e.g. "staff()" page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It does disclose useful traits such as limit being capped at 100 and page being 0-indexed, which the schema does not state. However it says nothing about safety profile, pagination totals, or auth requirements for what is presumably a read-only list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then a short clarification, then an Args block. No filler sentences, and each line earns its place, though the Args block is a fairly plain restatement pattern.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter list tool with no output schema, the description covers inputs well but says little about the response: what a membership record contains, whether pagination totals are returned, or default sort behavior. It is adequate but leaves gaps an agent would need to discover by calling the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it enumerates the filter keys (id, staff_id, group_id, order_by_asc/desc), gives an example expansion value for fields ('staff()'), and explains page (0-indexed) and limit (max 100). This adds real meaning beyond the bare schema, though the exact syntax of order_by_asc/desc values is left implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List staff group memberships from Accelo') and adds a clarifying sentence defining what a membership is ('links a staff member to a group'). There is no directly competing sibling (no other membership-listing tool), so sibling differentiation is not really required, but it also does not position itself relative to the related accelo_list_staff, accelo_list_groups, or accelo_list_contributors tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no alternatives (e.g., when to call list_staff or list_groups instead). Usage is only inferable from the tool name and the filters mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_tagsA
List tags from Accelo.
Tags are keywords applied to activities, jobs, and other objects to aid categorisation and search. Use the 'against' object filter to find tags on a specific object.
Args: filters: Filter dict. Keys: id, name, against (object filter, e.g. {"job": [2]}), order_by_asc/desc (id, name) search: Search over name page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose pagination behavior (page is 0-indexed, limit is max 100), which is genuinely useful, but it never states that this is a safe read operation, whether results are filtered by permission, or anything about rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Structure is front-loaded: purpose, domain definition, usage pointer, then a compact Args block. The definitional sentence earns its place by clarifying the 'against' concept used later, and there is little wasted text, though the Args block partially restates schema parameter names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation, no-output-schema list tool, the description covers all four parameters, pagination semantics, and the key object-filter use case. It lacks a hint about return shape and the read-only/safety nature, but it is largely complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does so thoroughly: it enumerates the filters keys (id, name, against, order_by_asc/desc), shows the against syntax with a concrete example {"job": [2]}, and clarifies search, page indexing, and limit bounds. This is meaningful detail that far exceeds what the bare schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific verb and resource ('List tags from Accelo') and the second sentence defines what tags are, making the domain concept concrete. It is clearly distinguishable from create_tag/count_tags by name, though the description never explicitly routes against those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one actionable usage pointer: 'Use the against object filter to find tags on a specific object.' However, it offers no guidance on when to use this tool versus accelo_count_tags or accelo_create_tag, and no conditions for when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_tasksA
List tasks from Accelo.
Tasks are 'against' a job, milestone, or issue. To find the company:
against_type="job": get job → against_id (company)
against_type="milestone": get milestone → job_id → job → company
against_type="issue": get issue → resolve to company (see issues) Use child_of_job filter to find all tasks under a job (including via milestones).
Args: filters: Filter dict. Keys: id, assignee, manager, task_status, standing, against_type, against_id, custom_id, child_of_job, rate_id, date_created/started/due/completed/modified_before/after, order_by_asc/desc fields: Additional fields, e.g. "description,assignee(),manager()" search: Search over description, title page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and mostly does: it discloses the parent-relationship resolution chain, the filter set, the max page size of 100, and 0-indexed paging. It stops short of describing the return shape or rate-limit/auth behavior, which would matter for an unannotated list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the one-line purpose, then the hierarchy guidance, then the Args list — a logical order. The hierarchy bullets add real value but are slightly verbose relative to a simple list call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter list tool with no output schema and no annotations, the description covers parameters well and explains how tasks relate to jobs/milestones/issues. It omits return-value shape and any pagination/rate-limit caveats beyond the limit cap, which is the main remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it enumerates the filter keys (id, assignee, against_type, date_*_before/after, order_by_*, etc.), shows a fields example ('description,assignee(),manager()'), defines search scope (description, title), notes page is 0-indexed, and caps limit at 100. It stops short of explaining each filter key's semantics, but the coverage is well above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List tasks from Accelo') and distinguishes itself from siblings like accelo_get_task and accelo_count_tasks by being the enumeration operation. The added hierarchy explanation ('Tasks are against a job, milestone, or issue') further pins down what kind of records this returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete context on when the against_type/against_id filters matter and explicitly recommends 'child_of_job' to gather all tasks under a job, including via milestones. It does not, however, explicitly state exclusions or point to count_tasks/get_task as alternatives, leaving some inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_taxesB
List tax codes from Accelo.
Tax codes define the tax rates applied to invoices, expenses, and materials. Key fields: title, rate (decimal, e.g. 0.10 for 10%), standing.
Args: filters: Filter dict. Keys: id, standing, order_by_asc/desc (id, standing, title) fields: Additional fields, e.g. "rate,standing" page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden; 'List' implies a read-only operation but this is never stated. It does disclose pagination behavior (page is 0-indexed, limit maxes at 100), which is useful beyond the schema, but says nothing about permissions or result ordering beyond the order_by filter keys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then a compact domain note and an Args block. Every line is short and useful, with only minor slack in restating that tax codes define tax rates applied to invoices/expenses/materials.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description partially compensates by naming the key returned fields (title, rate, standing) and by documenting pagination and filtering. Missing only read-only/safety context, which annotations would normally have supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and all four parameters are documented in the description: filters keys (id, standing, order_by_asc/desc), fields with a concrete example ('rate,standing'), page 0-indexed, and limit max 100. This meaningfully compensates for the empty schema descriptions, though filter value formats are still unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List tax codes from Accelo') and adds a one-line explanation of what a tax code is and which records it affects. It is distinguishable from accelo_get_tax and accelo_count_taxes by the 'list' verb, though it never explicitly names those siblings to route the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives no when-to-use or when-not-to-use guidance relative to accelo_get_tax, accelo_count_taxes, or the adjacent accelo_list_rates / accelo_get_rate tools. The agent must infer that this is the enumeration endpoint and rates are a separate resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_thread_activitiesB
List all activities within a single thread.
Args:
thread_id: The thread's ID (the activity_id of the original activity in
the thread — see the thread/thread_id field on any activity)
fields: Additional fields, e.g. "thread,parent"
page: Page number (0-indexed)
limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| thread_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. Read-only behavior is only implied by 'List', and there is no statement about pagination totals, ordering, permissions, or result shape for a 4-param list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and the per-argument notes are terse and information-dense with no filler. Structure is a clean purpose line plus Args list, appropriate for its size.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema and no annotations, the description covers inputs well but says nothing about what comes back (fields available, total count, ordering) or how the thread results relate to the parent activity. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it largely does: it defines thread_id as the activity_id of the original activity, gives an example value for fields, and states that page is 0-indexed and limit is capped at 100. These details go beyond the bare schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List), resource (activities) and scope (within a single thread), which distinguishes it from the broader accelo_list_activities and from accelo_list_activity_threads. It does not explicitly name those siblings, so the agent must infer the boundary from scope wording alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given. The agent can infer that it should call this to expand a thread, but nothing states how this differs from accelo_list_activities or when a thread_id is the right key to start from.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_time_externalsA
List time externals (imported calendar appointments) from Accelo.
Time externals are appointments imported from Google, Exchange, or Outlook calendars. They can be converted to activities for scheduling and timesheets.
Args: filters: Filter dict. Keys: id, staff_id, order_by_asc/desc (id, staff_id, date_created, date_modified, date_started, date_ended) fields: Additional fields, e.g. "description,date_started,date_ended" search: Search over title, description page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| search | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the domain concept and one concrete constraint (limit max 100), and 'List' implies a read-only operation, but it says nothing about auth requirements, default sort order, or what a returned record contains. Adequate but thin for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the one-line purpose, then a short clarifying paragraph, then a compact Args block. No filler sentences; the only redundancy is mild re-explanation of the domain concept.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no output schema, no annotations, and 0% schema coverage, the definition covers parameters well but omits the return shape (default returned fields), pagination guidance beyond the max limit, and any ordering default. An agent can call it correctly but cannot anticipate what comes back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and largely does: it enumerates the filters keys (id, staff_id, order_by_asc/desc with sortable fields), gives a fields example, defines search scope (title, description), and notes page is 0-indexed and limit caps at 100. Minor gaps remain, such as the default values for page and limit and what 'fields' actually adds to the response.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (time externals), then defines the resource conceptually as imported calendar appointments from Google/Exchange/Outlook that can be converted to activities. That conceptual definition distinguishes it from generic siblings like accelo_list_activities without the agent needing to open a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The note that externals 'can be converted to activities for scheduling and timesheets' implies a workflow context, but there is no explicit when-to-use statement and no routing versus accelo_list_activities, accelo_get_time_external, or accelo_count_time_externals. Usage is only inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_timersB
List timers from Accelo (current user's timers only for service apps).
Args: filters: Filter dict. Keys: id, staff, status fields: Additional fields, e.g. "staff(),against_title" page: Page number (0-indexed) limit: Results per page (max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| fields | No | ||
| filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the service-app scoping rule, which is genuinely useful, but says nothing about auth requirements, pagination behavior beyond the raw params, ordering, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by a compact Args list with no filler. Every line conveys information; the only slight redundancy is restating param names already visible in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers parameters well, but with no output schema and no annotations, the description should ideally describe the return shape or default ordering. As written it is adequate for calling the tool but leaves return-value expectations unset.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: it documents all four params, names the filter keys (id, staff, status), gives a fields syntax example ('staff(),against_title'), and notes page is 0-indexed and limit caps at 100. Only the value types/formats of the filter keys are left ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List timers from Accelo') and adds a meaningful scope qualifier ('current user's timers only for service apps'). It distinguishes itself from get_timer/create_timer by being a list operation, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance, and no alternatives named. The parenthetical is a scope constraint, not routing advice, so an agent gets no help deciding between this and accelo_count_timers, accelo_get_timer, or the create/pause/cancel timer tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_webhook_subscriptionsA
List webhook subscriptions for the current user.
Returns all webhook subscriptions registered by the authenticated user. Each subscription contains: trigger_url, event_id, content_type, trigger_table, trigger_type, user_deployment, user_id.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose the important scoping behavior (only the authenticated user's subscriptions) and enumerates the returned fields, which is real value, but it omits pagination, ordering, and error behavior for an unauthenticated caller.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, purpose front-loaded, followed by the return-field list. No filler, no restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, enumerating the returned fields (trigger_url, event_id, content_type, trigger_table, trigger_type, user_deployment, user_id) is genuinely necessary and provided. The only gap is the absence of pagination or result-set sizing information for a list endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the description to clarify beyond what the empty schema already shows.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource (list webhook subscriptions) and scopes it to the authenticated user, which separates it from create/delete siblings. It does not explicitly contrast itself with accelo_list_webhook_subscription_types, an adjacent tool an agent could easily confuse with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool, no prerequisites, and no pointer to the sibling list_webhook_subscription_types or to the create/delete counterparts. The user-scoping clause hints at context but is not framed as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_list_webhook_subscription_typesA
List available webhook subscription event types.
Returns the available events you can subscribe to. Events include: assign_task, unassign_task, create_task, create_invoice, update_invoice, delete_invoice, create_request, update_request_status, create_issue, update_issue, create_company, update_company, create_contact, update_contact, create_sale, update_sale, delete_activity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden, and it does disclose the substantive behavioral payload: the exact set of event type identifiers returned. It doesn't cover auth requirements, pagination, or whether the list is static, but for a zero-param enumeration the returned values are the key missing piece and they are supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, and the enumerated event list is informative rather than filler since it is the tool's output. The enumeration is long, but it earns its space by telling the caller what valid values look like.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, no-output-schema lookup tool, the description supplies the one thing that matters — the possible return values. What remains missing (auth, whether values are stable) is minor against the simplicity of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the schema adds nothing an agent must interpret; the baseline for a no-param tool applies. There is no parameter information the description needs to compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (webhook subscription event types), and the resource is intrinsically distinct from the sibling accelo_list_webhook_subscriptions (actual subscriptions vs. subscribable event types). It stops short of naming that sibling explicitly, so it loses the top mark for lack of explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied — an agent can infer this should be called before accelo_create_webhook_subscription to discover valid event keys, but the description never says when to call it or what the alternative is. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_pause_timerB
Pause a running timer.
Args: id: Timer ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It states the operation but omits required permissions, whether the pause is reversible, what happens to elapsed time, and how non-running timers are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and terse with no filler. The Args block maps directly to the two schema parameters and every sentence has a clear purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple timer-state mutation with no annotations or output schema, the description covers invocation (verb, id, optional fields). It remains incomplete on behavioral context such as required timer state and return behavior, but is minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema itself gives no parameter meaning. The description documents both parameters: 'id' as Timer ID and 'fields' as additional fields to return, compensating for the gap, though it does not specify the accepted format for 'fields'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Pause') and resource ('running timer'), which is distinct from siblings like start_timer, cancel_timer, and delete_timer by name. However, the description does not explicitly contrast itself with those alternatives, so it is clear but lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternatives are provided. The agent must infer from the tool name and sibling list that this temporarily stops a running timer rather than canceling or deleting it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_progress_task_to_doneC
Auto-progress a task's status to "done" (mark it complete).
Args: id: Task ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a state mutation but does not say whether the change is reversible, whether it validates the current status, whether it errors if the task is already done, or what else the progression cascades to. 'Auto-progress' hints at automation of other fields but is left unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence plus a short args block, front-loaded with the action and outcome. It is efficient and not padded, though the 'Args:' block is a slightly awkward format for a one-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-mutating task operation with no annotations, no output schema, and an ambiguous name next to accelo_progress_task_to_start, the description should explain side effects, idempotency, and error cases. None of that is present, leaving meaningful gaps for an agent invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% in the formal sense, so the description's 'Args: id: Task ID' line does supply the only human-readable meaning for the single required parameter. It confirms the type (task identifier) but adds nothing about format, source, or whether it accepts a human-readable key.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (progress) and resource (task status) with a clear outcome (mark it complete). The parenthetical "(mark it complete)" removes ambiguity about what 'progress to done' means. It does not explicitly distinguish itself from the sibling accelo_progress_task_to_start, though the 'done' in the name carries that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus accelo_progress_task_to_start, accelo_update_task, or the generic accelo_run_progression sibling. The description offers no preconditions, no mention of irreversibility, and no alternative-routing advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_progress_task_to_startC
Auto-progress a task's status to "start" (mark it started).
Args: id: Task ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not say whether this is a mutation with side effects on related records, what the resulting status value actually is, whether the task must be assigned, or what errors occur if the transition is invalid. The bare parenthetical restating 'mark it started' adds nothing beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short, but the 'Args: id: Task ID' block is a restatement of the schema rather than added value, and the parenthetical is redundant. Front-loading is fine. Nothing is bloated, but nothing earns much either.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with no annotations, no output schema, and no discussion of state transitions, side effects, or failure modes. An agent cannot determine what this does to a task's lifecycle from the description alone. This is under-specified even for a simple one-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does minimally document the single parameter as 'Task ID via Args: id', which at least confirms the parameter's identity and intent, though it does not specify format. With only one parameter and its role named, this is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (progress) and resource (task to 'start'), and disambiguates from the sibling accelo_progress_task_to_done. The core action is clear, though the odd phrasing 'auto-progress' slightly obscures whether this is a status transition or a batch operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no explicit routing to alternatives. The sibling accelo_progress_task_to_done exists and the description never acknowledges it, nor does it say what state the task must be in beforehand. An agent must infer everything from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_rate_limit_statusA
Get current API rate limit status.
Returns the remaining requests, total limit, and reset time. Accelo allows 5000 requests per hour per deployment.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the quota (5000 requests/hour per deployment) and the return contents, but omits whether this call itself consumes the quota, auth requirements, or per-deployment scoping behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with no filler: what it does, what it returns, and the quota fact. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description enumerates the return fields (remaining requests, total limit, reset time) and the quota, which is sufficient for a 0-param read tool. Only the quota-consumption question remains open.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, which is the baseline-4 case. The description correctly implies a zero-argument call with no filtering options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get current API rate limit status.' No sibling tool overlaps with this function, so the agent can immediately place it. The scope is exact and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use it (checking remaining quota before a burst of calls), but the description never states a triggering condition or names any alternative. For a self-evident diagnostic tool this is acceptable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_redraft_signoffB
Redraft a signoff — return a sent signoff to draft standing.
Args: id: Signoff ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose the key mutation effect — the signoff's status changes from sent back to draft — which is real added value. It is silent on side effects (recipients, attachments, notification emails), permission requirements, and reversibility (whether it can be re-sent), which matters for a state-changing tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short lines with the purpose front-loaded and no filler. The 'Args:' block is mildly redundant with the schema but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter state-change tool with no annotations and no output schema, the description covers what it does and which ID to pass. It leaves out the preconditions for the redraft, the resulting state guarantees, and any failure modes, so an agent has just enough to call it but not enough to predict the outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 0% schema description coverage, so the description must compensate. 'Args: id: Signoff ID' only restates the parameter name and a label already implied by the tool name; it adds no format, range, or sourcing detail (e.g. where to obtain the ID, whether it is the signoff or a related object's ID).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Redraft a signoff') and defines the exact state transition ('return a sent signoff to draft standing'), which is enough to separate it from accelo_send_signoff and accelo_update_signoff. It stops short of naming those siblings explicitly, so an agent still has to infer the routing from the state semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the state transition: use it when a signoff that was sent must go back to draft. There is no explicit when-not guidance, no mention of alternatives such as accelo_update_signoff, and no prerequisites (e.g. permissions or whether the signoff must already be in 'sent' state).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_remove_company_managerA
Remove a manager from a company.
Identified by the manager relationship's relationship_id (NOT the staff_id),
because a staff member can have multiple manager relationships with one company.
Get the relationship_id from accelo_list_company_managers.
Args: company_id: Company ID relationship_id: The relationship_id of the manager record to remove
| Name | Required | Description | Default |
|---|---|---|---|
| company_id | Yes | ||
| relationship_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It identifies this as a removal and explains the relationship_id nuance, but it does not disclose permissions, reversibility, side effects, or error behavior for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and structured with a clear Args section. Every sentence adds useful information without repetition or waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter removal tool with no annotations or output schema, the description provides enough to call it correctly: company_id and relationship_id, plus how to get the latter. It could still mention permissions or whether the removal is reversible, but the core operational context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does this well for relationship_id by explaining why it is not staff_id and where to obtain it, though company_id is only minimally described as 'Company ID'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: remove a manager from a company. It also distinguishes the exact identifier needed, relationship_id rather than staff_id, and points to the sibling tool that supplies it, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when to use the tool and a prerequisite: get relationship_id from accelo_list_company_managers. It does not explicitly name when not to use it or compare it against accelo_add_company_manager, but the usage path is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_reopen_contract_periodC
Reopen a previously closed contract period.
Args: id: Contract Period ID to reopen fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It indicates a state-changing operation ('reopen') but says nothing about permissions, side effects, reversibility, or what happens to related contract data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with a clean Args section. It is front-loaded and contains no unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It omits authorization requirements, side effects, failure modes, and return behavior, leaving an agent with insufficient context to call it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains both parameters: 'id' as the Contract Period ID to reopen and 'fields' as additional fields to return. However, 'additional fields to return' is vague and lacks format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Reopen a previously closed contract period.' It implies the inverse of accelo_close_contract_period, but does not explicitly name any sibling tool for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives such as accelo_close_contract_period or accelo_get_contract_period. Usage is only implied by the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_run_filterA
Run a saved filter and return the objects it matches.
The returned objects are of the filter's own object_type, with their default
fields plus any requested via fields.
Args: id: Filter ID (required) fields: Additional fields on the matched objects limit: Max results (this endpoint accepts only _limit, not _page)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| limit | No | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses that results contain the filter's object_type with default fields plus requested fields, which is useful. It also notes the pagination constraint ('accepts only _limit, not _page'). However, it omits details like permissions required, whether the operation is read-only, error behavior, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and return behavior, followed by a clear Args section. It is concise without omitting necessary details, and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description provides a solid overview of what the tool does and its parameters. It could be more complete by addressing authentication, error cases, or the relationship to other filter-related tools, but it covers the essential operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does: it documents 'id' as the filter ID, 'fields' as additional fields on matched objects, and 'limit' as max results. The note about _limit versus _page adds critical context. The only gap is that it does not specify the format of 'fields' (e.g., comma-separated string).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (run) and resource (a saved filter), and clarifies that it returns the objects the filter matches. It is clear, but it does not explicitly distinguish itself from sibling tools like accelo_list_filters or accelo_list_object_filters, which manage or list filters rather than executing them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: this tool is for executing an existing filter. However, there is no explicit guidance on when to use it versus alternatives such as accelo_list_filters (to discover filters) or other object-listing tools. The agent must infer the correct context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_run_progressionB
Auto-run a progression to advance an object's status.
Use accelo_list_progressions first to find available progression IDs.
Args: object_type: The object type object_id: The object's ID progression_id: The progression ID to execute
| Name | Required | Description | Default |
|---|---|---|---|
| object_id | Yes | ||
| object_type | Yes | ||
| progression_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It says 'Auto-run' which implies automatic execution, but it doesn't state whether this requires specific permissions, whether the progression is irreversible, what side effects occur, or what the response looks like. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded with the main purpose, followed by a usage hint and parameter list. Every sentence contributes, though the Args section could be slightly more informative to earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero annotation coverage, incomplete parameter documentation, and no output schema, the description is insufficient. A mutation tool that advances object status should describe side effects, permissions, irreversibility, and return behavior. The description does not compensate for these structured data gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 3 parameters have descriptions in the schema. The description lists the parameter names with minimal glosses ('The object type', 'The object's ID', 'The progression ID to execute'), which adds almost no meaning beyond the parameter names themselves. It doesn't clarify valid object_type values, expected ID formats, or where progression_id comes from beyond the reference to list_progressions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (auto-run) and resource (progression) to advance an object's status, distinguishing it from sibling tools like accelo_list_progressions. However, it lacks sibling differentiation beyond pointing to list_progressions; other progression tools exist (e.g., accelo_progress_task_to_start, accelo_progress_task_to_done) and the description doesn't clarify when to use this generic tool versus those specific ones.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to use accelo_list_progressions first to find available progression IDs, which is clear context. It doesn't provide when-not-to-use guidance or mention alternatives like the task-specific progression tools, but the prerequisite discovery step is a strong usage signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_send_signoffA
Send a signoff to its recipients.
CLIENT-FACING WRITE — this dispatches an approval request to the signoff's recipients (typically clients). Confirm with the user before calling.
Args: id: Signoff ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden and does well: it flags this as a client-facing write, explains what actually happens (an approval request is dispatched to recipients), and imposes a confirmation requirement. It omits idempotency/reversibility and whether the signoff becomes immutable after sending.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short units — action, the emphasized write warning, and the arg — with the blast-radius warning front-loaded where an agent will see it. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-param, no-output-schema mutation, the description covers purpose, client-facing impact, and the confirmation requirement. Missing are post-send state (does it lock the signoff?) and error conditions, but the critical operational context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description supplies 'id: Signoff ID', which is more than the bare schema title 'Id'. With only one parameter, baseline is 4; the label adds modest meaning (it identifies which signoff record) but no format or sourcing guidance, so 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (send) and resource (signoff) with an explicit object (its recipients). Clearly distinguishable from siblings like update_signoff, redraft_signoff, create_signoff_recipient — none of which dispatch the signoff.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear condition ('dispatches an approval request to recipients, typically clients') and an explicit pre-call action ('Confirm with the user before calling'). It doesn't name an alternative sibling or state when NOT to use it, but the guidance is actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_set_extension_valueC
Set an extension field value on an object.
Args: object_type: The object type (e.g. "issues", "jobs") object_id: The object's ID extension_field_id: The extension field's ID value: The value to set (use value_int, value_date, value_id for typed fields)
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| object_id | Yes | ||
| object_type | Yes | ||
| extension_field_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it discloses nothing about permissions, whether an existing value is overwritten, what happens on an invalid object_type/field combination, or error behavior. The only behavioral hint is the typed-field note, which is itself unreliable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line purpose is front-loaded and the argument list is compact and scannable. The Args block is a bit repetitive of parameter names, but it earns its place by adding the object_type examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with four required parameters, no annotations, and no output schema. The description identifies the parameters but omits overwrite/conflict behavior, permission requirements, and any response indication, and it references non-existent typed-value parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate; it lists all four required parameters and gives a useful example for object_type ('issues', 'jobs'). However, it directs the agent to 'use value_int, value_date, value_id for typed fields' — parameters that do not exist in the input schema — creating confusion rather than adding usable semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Set') and resource ('an extension field value on an object'), which is distinguishable from siblings such as accelo_set_profile_value and accelo_get_extension_values. It does not explicitly name those alternatives, so differentiation is left partly to the reader.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus accelo_set_profile_value, accelo_get_extension_values, or accelo_list_extension_fields, and no prerequisites or exclusions. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_set_profile_valueB
Set a profile field value on an object.
Args: object_type: The object type (e.g. "companies", "issues") object_id: The object's ID profile_field_id: The profile field's ID value: The value to set (type depends on the field: text, integer, date, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| object_id | Yes | ||
| object_type | Yes | ||
| profile_field_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden for a mutation tool. It does not say whether the value overwrites an existing value, what happens on type mismatch, whether permissions are required, or whether the write is reversible. Only the input shape is described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line summary is front-loaded and the Args block is tight, with each parameter getting exactly one line. No filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-required-param mutation with no annotations and no output schema, the description covers inputs adequately but is thin on effects and outcomes. An agent still cannot tell what happens on success or how errors surface.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and all schema titles are generic, so the Args block is doing real work: it documents all four parameters with examples for object_type and a type-dependency note for value. It stops short of enumerating valid object_type values or the field-type-to-JSON mapping.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (set) and resource (profile field value on an object), which is clear on its own. However, it does not distinguish itself from the sibling accelo_set_extension_value, which is a near-identical operation on a different field family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus accelo_set_extension_value, or when to read via accelo_get_profile_values first. The relationship to accelo_list_profile_fields (to discover the profile_field_id) is implied by the parameter docs but never stated as a workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_start_timerC
Start a timer.
Args: id: Timer ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, yet it discloses almost nothing: it does not say whether the timer must already exist, whether a running timer causes an error, what state changes, or what permissions are required. For a mutation tool this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and short, but the 'Args' block is boilerplate that largely restates the schema, so not every line earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool with no annotations, no output schema, and undocumented parameters should explain effects, preconditions, and return behavior; the description does none of these, leaving the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but its parameter notes are near-tautological: 'id: Timer ID' repeats the field name and 'fields: Additional fields to return' gives no syntax, format, or accepted values. It adds almost no meaning beyond the bare schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Start) and resource (timer), which is clearer than a bare name restatement. However it does not differentiate itself from siblings such as accelo_create_timer or accelo_pause_timer/cancel_timer, leaving the agent to infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives. Given the cluster of timer siblings (create, pause, cancel, delete, get, list), the description should explain when starting is the right action but offers nothing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_activityB
Update an existing activity.
Args: id: Activity ID (required) subject: New subject (only if owner) body: New body (only if owner) visibility: New visibility priority_id: New priority ID billable: Billable time in seconds nonbillable: Non-billable time in seconds fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | No | ||
| fields | No | ||
| subject | No | ||
| billable | No | ||
| visibility | No | ||
| nonbillable | No | ||
| priority_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses that subject and body can only be changed 'if owner', but it omits broader permission requirements, partial-update semantics, side effects, and error behavior for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-line purpose and then an efficient Args list. Every line corresponds to a parameter or constraint, with no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 8 parameters, no annotations, and no output schema, the description is incomplete. It documents parameters but does not explain return behavior, default update semantics, authorization beyond subject/body ownership, or what happens when omitted fields are passed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does list all 8 parameters with some added meaning: owner constraints for subject/body, units for billable/nonbillable, and the purpose of fields. However, it does not clarify formats or allowed values for visibility and priority_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Update an existing activity.' This clearly distinguishes update from create/delete/list activities, but it does not explicitly contrast with sibling update tools such as update_task or update_issue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives like accelo_create_activity or accelo_get_activity. The phrase 'Update an existing activity' implies usage, but no conditions, exclusions, or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_addressB
Update an existing address.
Args: id: Address ID (required) title: New title street1: New street line 1 street2: New street line 2 city: New city state: New state name state_id: New state ID country: New country name country_id: New country ID zipcode: New postcode/zipcode postal: "yes" or "no" physical: "yes" or "no" fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| city | No | ||
| state | No | ||
| title | No | ||
| fields | No | ||
| postal | No | ||
| country | No | ||
| street1 | No | ||
| street2 | No | ||
| zipcode | No | ||
| physical | No | ||
| state_id | No | ||
| country_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, yet only implies a mutation via the word "Update." It does not state whether absent fields are left unchanged (partial update), what permissions are required, whether changes are reversible, or what the response looks like. The Args block documents inputs but not behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in a single clear sentence, followed by a tight, scannable Args list. Slight redundancy with schema titles, but each line adds a semantic hint and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter mutation tool with no annotations and no output schema, the description covers inputs reasonably well but omits behavioral context an agent needs to call it safely. Partial-update semantics and permission requirements are the notable gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: it documents all 13 parameters, marks id as required, and adds non-obvious semantics such as postal/physical accepting "yes" or "no" and fields controlling returned values. This is meaningful value beyond the bare schema property titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Update") and resource ("address") and includes "existing," which signals a mutation on a pre-existing record rather than a create. It is clearly distinguishable from accelo_create_address / accelo_get_address, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus create_address or how to obtain the required id. No prerequisites, permissions, or exclusions are stated. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_affiliationC
Update an existing affiliation.
Args: id: Affiliation ID (required) email: New email phone: New phone mobile: New mobile position: New position standing: New standing fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| No | |||
| phone | No | ||
| fields | No | ||
| mobile | No | ||
| position | No | ||
| standing | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says 'Update' but discloses nothing about partial-update semantics (what happens to omitted fields), required permissions, reversibility, or side effects on related contacts/companies. For a mutation tool with zero annotation coverage this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the one-line purpose before the argument list, and each line is short with no wasted prose. Structure is clear and scannable, though the arg list is boilerplate rather than informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with no annotations and no output schema, the description covers the parameter surface but omits mutation semantics, permissions, and success/failure behavior. It is minimally adequate but leaves meaningful gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does list all seven parameters with short labels (email, phone, mobile, position, standing, fields). However the labels are near-tautological ('New email') and add little meaning such as format, allowed values for 'standing', or what 'fields' controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (update) and resource (affiliation), so the operation is unambiguous. It does not differentiate itself from siblings like accelo_create_affiliation or accelo_get_affiliation beyond the plain meaning of 'update'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus accelo_create_affiliation, accelo_get_affiliation, or accelo_delete_affiliation, nor any prerequisite or context. The body is purely a parameter list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_assetC
Update an existing asset.
Args: id: Asset ID (required) title: New title fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| title | No | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose required permissions, whether title is the only mutable field, whether changes are reversible, side effects on linked assets, or error behavior for an invalid id. The one hint ('Additional fields to return') at least signals response customization.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the purpose sentence comes first, followed by compact arg notes. Nothing is padded, though the raw docstring formatting is slightly mechanical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and a mutation tool, the description is too thin: it omits permission/auth requirements, mutation semantics, and error cases. Only the basic parameter list is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description documents all three params (id required, title new title, fields returned). That compensates partly, but it is shallow: 'fields' format (comma-separated? list?) and allowed values for title/property updates are not clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Update an existing asset'), which is unambiguous on its own. However, it does nothing to differentiate itself from the many sibling update/create/delete tools for other resources, so an agent must rely on the name alone to route correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives (e.g. create_asset_link, get_asset). Usage is only implied by the word 'Update'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_checklistB
Update an existing checklist.
Args: id: Checklist ID (required) items: Updated array of items. Each: {"title": "...", "ordering": 0} fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| items | No | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It says 'Update' but does not explain whether omitted items are preserved, whether items replace the full list, what permissions are needed, or what side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and then uses a compact Args list. Every sentence and argument entry is relevant with no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is incomplete. It explains basic parameters but omits update semantics, return behavior, and permission or side-effect context needed to call it safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It documents all three parameters: id as required, items as an updated array with an example object shape, and fields as additional fields to return, though fields remains somewhat vague.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: update an existing checklist. The word 'existing' distinguishes it from create/delete checklist operations, though it does not explicitly name sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies the tool is used when a checklist already exists, but gives no explicit when-to-use guidance, prerequisites, or alternatives such as get_checklist or create_checklist. Similar to the calibration MID case, this is minimal usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_companyC
Update an existing company.
Args: id: Company ID (required) name: New company name website: New website URL phone: New phone number fax: New fax number comments: New comments fields: Additional fields to return in response
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fax | No | ||
| name | No | ||
| phone | No | ||
| fields | No | ||
| website | No | ||
| comments | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It never explains partial-update semantics (every optional field defaults to null, but it does not say whether null means 'leave unchanged' or 'clear the value'), required permissions, or what the mutation returns. The only behavioral hint is that 'fields' controls the response payload.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action in one sentence, followed by a compact parameter list with no filler. It reads as an auto-generated docstring but every line maps to a real parameter, so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is thin: it omits partial-update semantics, permission requirements, and the shape of the response beyond the vague 'fields' hint. An agent would have to guess at the null-handling behavior before calling it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are 7 parameters, so the description must compensate. It does list all seven parameters and clarifies the ambiguous 'fields' argument as 'Additional fields to return in response', plus flags id as required — but the rest ('New company name', 'New phone number') are largely tautological restatements of the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Update an existing company'), which clearly distinguishes it from accelo_create_company, accelo_get_company and accelo_delete_company by operation. It stops short of naming or contrasting those siblings explicitly, so it lands at a solid 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus accelo_create_company or accelo_get_company, no preconditions, and no note about permissions or how the update interacts with other company operations. The only context is the bare verb 'Update'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_contactB
Update an existing contact.
Args: id: Contact ID (required) firstname: New first name surname: New surname title: New honorific comments: New comments status: New status ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| title | No | ||
| fields | No | ||
| status | No | ||
| surname | No | ||
| comments | No | ||
| firstname | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it discloses almost nothing behavioral. It does not say whether omitted fields are preserved or cleared (partial vs full update), whether permissions are required, or what happens on an invalid status ID.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the operation in one sentence, then lists parameter meaning compactly with no filler. The 'Args:' block is utilitarian rather than polished but wastes nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a seven-parameter mutation tool with no annotations and no output schema, the description covers parameter meaning but omits mutation semantics (partial update behavior, permissions, error cases) and return information. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source of parameter meaning, and it supplies semantics for all seven params including the required id and the 'fields: Additional fields to return' control. It does not explain the format/domain of 'status' (status ID) beyond noting it is an ID, which is a minor gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Update an existing contact'), which is enough to distinguish it from update_company/update_activity/update_task siblings on the basis of the resource alone. It stops short of explicitly naming when this is preferred over e.g. accelo_create_contact or accelo_deactivate_contact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as create_contact or deactivate_contact. The agent must infer that this is for modifying existing contacts only from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_expenseB
Update an existing expense.
Args: id: Expense ID (required) title: New title unit_cost: New unit cost quantity: New quantity billable: "yes" or "no" reimbursable: "yes" or "no" fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| title | No | ||
| fields | No | ||
| billable | No | ||
| quantity | No | ||
| unit_cost | No | ||
| reimbursable | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says 'Update' but never states whether this is a partial or full replacement, what happens to fields not supplied, whether the caller needs specific permissions, or whether the change is reversible. For a mutation tool with zero annotation coverage this is a significant transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose sentence is front-loaded and the parameter list is terse with no filler. Structure is a plain docstring dump rather than prose, but every line carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter mutation tool with no annotations and no output schema, the description covers the parameter surface but omits mutation semantics, permission requirements, and effect-on-unset-fields. The 'fields: Additional fields to return' hint partially addresses output, but the behavioral gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate — and it does document all seven parameters, including the required id and the accepted 'yes'/'no' values for billable and reimbursable, which the schema does not convey. It stops short of explaining partial-update semantics or the format of 'fields', so it is not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Update an existing expense') that an agent can immediately match to the expense family. It does not, however, differentiate itself from the sibling update tools or clarify scope relative to create_expense/delete_expense, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus accelo_create_expense, accelo_get_expense, or accelo_delete_expense, and no prerequisites or preconditions stated. The agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_filterB
Update a saved filter's title or shared flag.
Args: id: Filter ID (required) title: New title shared: "yes" or "no" — whether the filter is shared on the deployment fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| title | No | ||
| fields | No | ||
| shared | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a mutation but says nothing about required permissions, whether changes are reversible, or what is returned; it does at least enumerate the mutation surface (title and shared flag).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, followed by a compact args block. No wasted prose, though the docstring-style Args section is slightly boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter mutation tool with no annotations and no output schema, the description covers what can be changed but omits permission requirements, side effects on the filter's stored definition, and return behavior. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it documents all four parameters. It adds real value beyond the schema by specifying that shared takes "yes"/"no" and that id is required. The 'fields' explanation is thin but acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (update) and resource (saved filter) and names the two fields that can be modified. It is distinguishable from siblings like accelo_list_filters and accelo_run_filter without opening the schema, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus accelo_list_filters or accelo_run_filter, and no note that an id must first be obtained from a list call. Usage is only implied by the presence of a required id parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_holidayC
Update an existing holiday (Beta).
Args: id: Holiday ID (required) title: New title date_start: New start date date_end: New end date duration_seconds: New duration staff_id: New staff ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| title | No | ||
| fields | No | ||
| date_end | No | ||
| staff_id | No | ||
| date_start | No | ||
| duration_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. Beyond the '(Beta)' marker, it says nothing about whether the update is partial or full-replace, whether omitted fields are preserved, what auth is required, or any side effects of changing dates/staff assignment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single leading sentence is front-loaded and the Args block is an efficient, scannable enumeration. There is minimal waste, though the per-parameter glosses are so terse they border on restating the field names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with seven parameters, no annotations, and no output schema, the description documents the parameter surface adequately but leaves the behavioral contract (partial-update semantics, permissions, field-preservation rules) unaddressed, which is a meaningful gap for a write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does enumerate all seven parameters. However, most entries are near-tautological ('title: New title'), adding little beyond the property name; only 'fields: Additional fields to return' and the '(required)' note add real meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource (update an existing holiday), which clearly distinguishes it from accelo_create_holiday, accelo_delete_holiday, and accelo_get_holiday by implication. It is clear but does not explicitly name or contrast with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus accelo_create_holiday or accelo_get_holiday, and no mention of prerequisites, permissions, or the conditions under which an update should be preferred. Usage must be inferred entirely from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_issueB
Update an existing issue.
Args: id: Issue ID (required) title: New title description: New description status_id: New status ID (bypasses progressions) class_id: New class ID assignee: New assignee staff ID priority_id: New priority ID date_due: New due date (unix timestamp) resolution_detail: Resolution details fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| title | No | ||
| fields | No | ||
| assignee | No | ||
| class_id | No | ||
| date_due | No | ||
| status_id | No | ||
| description | No | ||
| priority_id | No | ||
| resolution_detail | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses one genuinely useful trait — status_id 'bypasses progressions' — but says nothing about whether this is a full or partial update, whether omitted fields are preserved, whether changes are reversible, what permissions are needed, or what the call returns. For a mutation tool with zero annotation coverage this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line purpose is front-loaded and the parameter list is compact with no filler. The Args block is a docstring-style enumeration rather than prose, which is slightly mechanical but costs nothing in length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter mutation tool with no annotations and no output schema, the description covers the inputs adequately but omits update semantics, error conditions, and anything about the response. It is minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for 10 parameters, so the description must compensate and largely does: every parameter is given a short semantic gloss, id is marked required, and date_due is specified as a unix timestamp. It still leaves ambiguity on fields ('Additional fields to return' — return vs. set) and on what values are valid for class_id/priority_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (update) and resource (issue), which cleanly distinguishes it from siblings accelo_create_issue, accelo_delete_issue, and accelo_get_issue. It doesn't explicitly name those siblings, but the verb+resource pair is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as accelo_run_progression or accelo_update_task, nor any stated prerequisites (e.g. that the issue must exist, or permission requirements). The only hint is the parenthetical 'bypasses progressions' on status_id, which implies a workflow alternative exists but never names it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_jobB
Update an existing job.
Args: id: Job ID (required) title: New title manager_id: New manager staff ID status_id: New status ID date_due: New due date (unix timestamp) affiliation_id: New affiliation ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| title | No | ||
| fields | No | ||
| date_due | No | ||
| status_id | No | ||
| manager_id | No | ||
| affiliation_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It identifies the operation as an update and lists parameters, but it does not disclose permissions, side effects, reversibility, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by a structured argument list. Each line earns its place, though the initial sentence is very terse and could carry slightly more scope detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a seven-parameter mutation tool with no annotations and no output schema, the description covers parameter names but omits usage context, permissions, side effects, and return behavior. It is adequate for identifying fields but incomplete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source of parameter meaning. It documents all seven parameters, noting that id is required and that date_due is a unix timestamp, which meaningfully compensates for the empty schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: update an existing job. It is specific enough to distinguish from read tools like accelo_get_job or accelo_list_jobs, but it does not explicitly differentiate from other update tools or state what kind of job fields can be modified beyond the parameter list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as accelo_create_job, accelo_delete_job, or accelo_get_job. Prerequisites, permissions, and exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_object_budget_materialB
Update an existing material line item on an object budget.
Args: material_id: ID of the material to update (required) title: New material title/description quantity: New quantity unit_cost: New cost per unit billable: "yes" or "no" — whether this material is billable fields: Additional fields to return on the updated material
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| fields | No | ||
| billable | No | ||
| quantity | No | ||
| unit_cost | No | ||
| material_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose that this mutates an existing line item, that only material_id is required (i.e. a partial update), and the accepted 'yes'/'no' value format for billable, which is genuinely useful. However, it says nothing about permissions, error behavior when the material does not exist, or how omitted fields are treated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-sentence purpose followed by a compact Args block; every line earns its place. Minor redundancy in restating 'material' in the arguments, but no padding or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers the parameters adequately, but omits behavioral essentials: permissions/authentication requirements, failure modes, and confirmation of whether this is a partial or full replacement update. Adequate but with recognized gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: all six parameters are named with meaning, material_id is flagged required, billable's enum-like accepted values are given, and 'fields' is explained as the set of fields returned on the updated material. Only slightly thin on quantity/unit_cost units and validation constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (update) and a specific resource (an existing material line item on an object budget), and the word 'existing' plus 'update' cleanly separates it from siblings like accelo_create_object_budget_material and accelo_list_object_budget_materials. It stops short of naming those siblings explicitly, so it stays at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over create_object_budget_material or the service-line equivalents, and no prerequisites (e.g. the material must already exist, required permissions) are stated. Usage is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_prospectB
Update an existing prospect.
Args: id: Prospect ID (required) title: New title value: New value staff_id: New manager staff ID date_due: New due date (unix timestamp) weighting: New weighting (0-5) progress: New progress (0-100) status_id: New status ID (bypasses progressions) fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| title | No | ||
| value | No | ||
| fields | No | ||
| date_due | No | ||
| progress | No | ||
| staff_id | No | ||
| status_id | No | ||
| weighting | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It earns credit for one genuinely useful behavioral note – status_id 'bypasses progressions' – but says nothing about required permissions, whether unspecified fields are preserved, or what the call returns. Partial-update semantics are only implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence purpose is front-loaded, and the per-argument list is an efficient way to carry the semantics the schema lacks. No filler sentences; structure is scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation tool with no annotations and no output schema, parameter documentation is solid but behavioral coverage is thin: nothing on response shape, error behavior, or mutation side effects beyond the progression bypass. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it largely does: all nine parameters are named with meaning, including units and ranges (weighting 0-5, progress 0-100) and the date_due unix-timestamp format, which the schema does not convey. Only the fields-return parameter is explained thinly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Update) plus resource (an existing prospect), which plainly distinguishes it from accelo_create_prospect, accelo_get_prospect, and accelo_delete_prospect. It does not explicitly call out those siblings, but the operation scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus accelo_create_prospect or accelo_run_progression, no preconditions, and no note on whether omitted fields are left unchanged. The agent must infer that this is a partial-update tool from the optional args list alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_quoteB
Update an existing quote.
Args: id: Quote ID (required) title: New title affiliation_id: New affiliation ID manager_id: New manager staff ID date_expiry: New expiry date (unix timestamp) notes: New notes introduction: New HTML introduction conclusion: New HTML conclusion terms_and_conditions: New HTML terms client_portal_access: "1" or "0" for portal access fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| notes | No | ||
| title | No | ||
| fields | No | ||
| conclusion | No | ||
| manager_id | No | ||
| date_expiry | No | ||
| introduction | No | ||
| affiliation_id | No | ||
| client_portal_access | No | ||
| terms_and_conditions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It reveals nothing about permissions, reversibility, partial-update semantics (all fields optional except id), or side effects on a quote's lifecycle/status.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line purpose is front-loaded and the arg list is compact with no filler sentences. It reads as a raw parameter dump rather than prose, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter mutation tool with no annotations and no output schema, the description covers parameter meaning adequately but omits prerequisites, partial-update behavior, and any note on what is returned or how errors are surfaced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it names all 11 params with meaning, flags date_expiry as a unix timestamp, marks introduction/conclusion/terms_and_conditions as HTML, and specifies client_portal_access accepts "1" or "0". This is real value beyond the bare schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Update') and resource ('an existing quote'), so the operation is unambiguous. It does not, however, distinguish itself from siblings such as accelo_create_quote or accelo_get_quote beyond the verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool, what preconditions apply (e.g., quote must exist, permission requirements), or how it differs from create_quote/get_quote. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_requestC
Update an existing request.
Args: id: Request ID (required) title: New title body: New body type_id: New type ID standing: New standing (pending, open, converted, closed) claimer_id: Staff ID to claim the request priority_id: New priority ID fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | No | ||
| title | No | ||
| fields | No | ||
| type_id | No | ||
| standing | No | ||
| claimer_id | No | ||
| priority_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a mutation but does not disclose whether updates are partial or full replacements, whether changing 'standing' has side effects, what permissions are required, or whether the operation is reversible. For an update tool with no annotation coverage, this leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured as a short sentence followed by an Args list. It is appropriately sized and front-loads the purpose. The Args list is somewhat redundant with the schema, but not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter update tool with no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It does not explain return values, error conditions, partial-update semantics, or how 'standing' transitions affect the request. More context is needed for an agent to call this correctly without trial and error.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It briefly labels each parameter (e.g., 'New standing (pending, open, converted, closed)'), which is helpful for the enum-like standing field. However, it does not clarify that most fields are optional, does not explain the semantics of 'fields' (which likely controls response projection, not an update), and does not document the expected format for IDs beyond type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Update an existing request.' That clearly distinguishes it from accelo_create_request, accelo_get_request, and accelo_list_requests. However, it does not differentiate it from other update_* tools in the Accelo family beyond the resource name, which is sufficient here.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no mention of prerequisites (e.g., permissions, required field lookup), and no indication of what happens when fields are omitted. The description only lists parameters without explaining conditions of use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_signoffA
Update a signoff's body.
Only the body field is updatable via this endpoint.
Args: id: Signoff ID (required) body: New body content (required) fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| fields | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses a meaningful trait — that this endpoint only mutates the body field — but omits auth/permission requirements, reversibility, and side effects of updating a signoff, which matters for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and scope constraint. The 'Args:' block partially restates the schema, but it remains tight and each parameter line adds a small amount of meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Purpose and parameter meaning are covered, and no output schema means return values need not be explained. However, for a mutation tool with no annotations, the description lacks auth requirements and effect/side-effect detail that an agent would need to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does: it labels id as the 'Signoff ID (required)', body as 'New body content (required)', and fields as 'Additional fields to return'. The 'fields' semantics in particular adds meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Update a signoff's body') and constrains scope with 'Only the body field is updatable via this endpoint.' This distinguishes it from sibling signoff mutators like accelo_update_signoff_recipient, accelo_update_signoff_attachment, and accelo_redraft_signoff without needing the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies when to use it via the scope constraint (body-only editing), but there is no explicit statement of when to prefer this over redraft_signoff, send_signoff, or the recipient/attachment update endpoints. Usage must be inferred from the field-scope note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_signoff_attachmentA
Update a signoff attachment's standing.
Only the standing field ("active"/"inactive") is updatable.
Args: attachment_id: The attachment's ID (required) standing: New standing — "active" or "inactive" (required)
| Name | Required | Description | Default |
|---|---|---|---|
| standing | Yes | ||
| attachment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It discloses that only standing is updatable and gives its allowed values, but says nothing about authentication requirements, side effects on the signoff, or whether the change is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with purpose and constraint, then uses a clean Args list. No redundant or empty sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation with no annotations or output schema, the description covers both parameters and the key constraint. It omits prerequisites and return behavior, but given the tool's low complexity, the definition is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must document parameters, and it does: it maps both required parameters and provides the enum values ('active'/'inactive') missing from the schema. It doesn't explain how to obtain the attachment_id, but the essential semantics are covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb+resource ('Update a signoff attachment's standing') and immediately constrains scope to the single updatable field. It distinguishes this from sibling signoff tools like accelo_update_signoff by targeting attachments specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when/when-not guidance is provided. The agent must infer that this is for changing an attachment's standing, but there is no mention of prerequisites or when to prefer this over updating the signoff itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_signoff_recipientA
Update a signoff recipient.
A recipient can only be edited while the signoff is in draft; response
may only be updated for your own recipient record and only if you are an
approver. Only non-None fields are sent.
Args: recipient_id: The recipient record's ID (required) approver: Whether the recipient can approve response: The recipient's response fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | ||
| approver | No | ||
| response | No | ||
| recipient_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose key traits: draft-only editing, the approver restriction on response, and that only non-None fields are sent (partial update). It stops short of describing return values, error behavior, or permissions for other fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then states constraints, then lists arguments in a structured Args block. The parameter list repeats schema names but adds compensating meaning given the missing schema descriptions. No wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, preconditions, and parameter meanings for a 4-param mutation tool. However, with no output schema and no mention of what the update returns or how errors are surfaced, an agent lacks return-value context. This is a notable gap for a tool with zero annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It maps all four parameters to brief meanings (recipient_id ID, approver boolean, response string, fields to return), which is useful, but it does not specify allowed values for `response` or the format for `fields`, leaving semantic gaps that could cause invocation errors.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Update a signoff recipient,' giving a specific verb and resource. It distinguishes this tool from create/delete signoff recipient siblings by the update action, though it does not explicitly name alternatives. The purpose is clear from the first sentence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when/when-not constraints: recipient editable only while signoff is in draft, and response may only be updated for your own record if you are an approver. These are actionable usage rules. However, no alternative tools are named for related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_staffA
Update a staff member's descriptive details.
ADMINISTRATIVE WRITE — edits another user's record. Only the descriptive fields below are updatable via this endpoint (the API does not expose standing/financial_level/username here). Only non-None fields are sent.
Args: id: Staff ID (required) firstname: New first name surname: New surname title: New title email: New email address phone: New phone number mobile: New mobile number fax: New fax number position: New position fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| fax | No | ||
| No | |||
| phone | No | ||
| title | No | ||
| fields | No | ||
| mobile | No | ||
| surname | No | ||
| position | No | ||
| firstname | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses the administrative scope, that only descriptive fields are editable, that standing/financial_level/username are NOT exposed, and that only non-None fields are sent (partial-update semantics). Missing: auth requirements and reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core statement and the administrative warning, then a clean Args list. Efficient, though the Args section largely restates parameter names already visible in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-param mutation tool with no annotations and no output schema, the description covers scope, field constraints, and partial-update behavior well. Auth/permission specifics and whether omitted fields are preserved vs cleared remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate — and it does, listing and explaining each parameter (id required, firstname, surname, title, email, phone, mobile, fax, position, fields) beyond the bare schema titles. The 'fields' param meaning ('Additional fields to return') adds real value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Update a staff member's descriptive details') and explicitly scopes which fields are updatable. Does not differentiate from siblings (e.g. update_contact, update_company), but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'ADMINISTRATIVE WRITE — edits another user's record' line implies when to use it (admin context, not self-service), but there is no explicit when/when-not guidance or naming of an alternative endpoint for self-edits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accelo_update_taskB
Update an existing task.
Args: id: Task ID (required) title: New title description: New description assignee_id: New assignee staff ID manager_id: New manager staff ID date_due: New due date (unix timestamp) priority_id: New priority ID remaining: New remaining time in seconds fields: Additional fields to return
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| title | No | ||
| fields | No | ||
| date_due | No | ||
| remaining | No | ||
| manager_id | No | ||
| assignee_id | No | ||
| description | No | ||
| priority_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether this is a partial update, what happens to unspecified fields, what permissions are required, whether changes are reversible, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-sentence purpose followed by a compact parameter list. It is appropriately sized for a tool with nine parameters, though the list format repeats schema names and could be tighter in places.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with nine parameters, no annotations, and no output schema, the description is thin. It covers parameter meanings but omits usage context relative to sibling task tools, permission requirements, partial-update behavior, and any indication of return shape beyond 'fields: Additional fields to return.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the argument list is the only semantic documentation. It adds useful details such as date_due being a unix timestamp and remaining being in seconds, and identifies several IDs as staff IDs. However, entries like 'New title' and 'New description' are tautological, so not every parameter gains meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Update an existing task.' This clearly identifies the operation as opposed to create/list/get siblings, but it does not differentiate from other task mutation tools such as accelo_progress_task_to_start or accelo_progress_task_to_done.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no exclusions, and does not distinguish this general update tool from specialized task-progression tools. An agent is left to infer all routing decisions from the name alone.
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.
219 tool updates
v0.1.0- First observed
accelo_add_company_manager - First observed
accelo_cancel_timer - First observed
accelo_close_contract_period - First observed
accelo_convert_time_external_to_activity - First observed
accelo_count_activities - First observed
accelo_count_activity_threads - First observed
accelo_count_addresses - First observed
accelo_count_affiliations - First observed
accelo_count_assets - First observed
accelo_count_checklists - First observed
accelo_count_companies - First observed
accelo_count_contacts - First observed
accelo_count_contracts - First observed
accelo_count_contributor_types - First observed
accelo_count_contributors - First observed
accelo_count_divisions - First observed
accelo_count_enum - First observed
accelo_count_expenses - First observed
accelo_count_groups - First observed
accelo_count_holidays - First observed
accelo_count_interactions - First observed
accelo_count_invoice_line_items - First observed
accelo_count_invoices - First observed
accelo_count_issues - First observed
accelo_count_jobs - First observed
accelo_count_ledgers - First observed
accelo_count_milestones - First observed
accelo_count_object_budgets - First observed
accelo_count_payments - First observed
accelo_count_prospects - First observed
accelo_count_purchases - First observed
accelo_count_quotes - First observed
accelo_count_rates - First observed
accelo_count_referrals - First observed
accelo_count_requests - First observed
accelo_count_resources - First observed
accelo_count_segmentations - First observed
accelo_count_signoffs - First observed
accelo_count_skills - First observed
accelo_count_staff - First observed
accelo_count_tags - First observed
accelo_count_tasks - First observed
accelo_count_taxes - First observed
accelo_count_time_externals - First observed
accelo_create_activity - First observed
accelo_create_address - First observed
accelo_create_affiliation - First observed
accelo_create_asset_link - First observed
accelo_create_checklist - First observed
accelo_create_company - First observed
accelo_create_contact - First observed
accelo_create_expense - First observed
accelo_create_holiday - First observed
accelo_create_issue - First observed
accelo_create_job - First observed
accelo_create_object_budget_material - First observed
accelo_create_prospect - First observed
accelo_create_quote - First observed
accelo_create_request - First observed
accelo_create_signoff_recipient - First observed
accelo_create_skill - First observed
accelo_create_staff - First observed
accelo_create_tag - First observed
accelo_create_task - First observed
accelo_create_timer - First observed
accelo_create_webhook_subscription - First observed
accelo_deactivate_contact - First observed
accelo_delete_activity - First observed
accelo_delete_affiliation - First observed
accelo_delete_asset_link - First observed
accelo_delete_checklist - First observed
accelo_delete_company - First observed
accelo_delete_expense - First observed
accelo_delete_holiday - First observed
accelo_delete_issue - First observed
accelo_delete_job - First observed
accelo_delete_prospect - First observed
accelo_delete_signoff_recipient - First observed
accelo_delete_timer - First observed
accelo_delete_webhook_subscription - First observed
accelo_describe_object - First observed
accelo_download_resource_url - First observed
accelo_get_activity - First observed
accelo_get_activity_time_allocated - First observed
accelo_get_address - First observed
accelo_get_affiliation - First observed
accelo_get_asset - First observed
accelo_get_asset_type - First observed
accelo_get_checklist - First observed
accelo_get_company - First observed
accelo_get_contact - First observed
accelo_get_context - First observed
accelo_get_contract - First observed
accelo_get_contract_period - First observed
accelo_get_contributor - First observed
accelo_get_contributor_type - First observed
accelo_get_current_staff - First observed
accelo_get_division - First observed
accelo_get_enum - First observed
accelo_get_expense - First observed
accelo_get_extension_values - First observed
accelo_get_group - First observed
accelo_get_holiday - First observed
accelo_get_invoice - First observed
accelo_get_invoice_line_item - First observed
accelo_get_issue - First observed
accelo_get_job - First observed
accelo_get_ledger - First observed
accelo_get_milestone - First observed
accelo_get_object_budget - First observed
accelo_get_payment - First observed
accelo_get_profile_values - First observed
accelo_get_prospect - First observed
accelo_get_purchase - First observed
accelo_get_quote - First observed
accelo_get_rate - First observed
accelo_get_referral - First observed
accelo_get_request - First observed
accelo_get_resource - First observed
accelo_get_segmentation - First observed
accelo_get_signoff - First observed
accelo_get_staff - First observed
accelo_get_task - First observed
accelo_get_tax - First observed
accelo_get_time_external - First observed
accelo_get_timer - First observed
accelo_list_activities - First observed
accelo_list_activity_threads - First observed
accelo_list_addresses - First observed
accelo_list_affiliations - First observed
accelo_list_asset_links - First observed
accelo_list_asset_types - First observed
accelo_list_assets - First observed
accelo_list_checklists - First observed
accelo_list_collections - First observed
accelo_list_companies - First observed
accelo_list_company_managers - First observed
accelo_list_contacts - First observed
accelo_list_contract_periods - First observed
accelo_list_contracts - First observed
accelo_list_contributor_types - First observed
accelo_list_contributors - First observed
accelo_list_divisions - First observed
accelo_list_enum - First observed
accelo_list_expenses - First observed
accelo_list_extension_fields - First observed
accelo_list_filters - First observed
accelo_list_groups - First observed
accelo_list_holidays - First observed
accelo_list_interactions - First observed
accelo_list_invoice_line_items - First observed
accelo_list_invoices - First observed
accelo_list_issues - First observed
accelo_list_jobs - First observed
accelo_list_ledgers - First observed
accelo_list_milestones - First observed
accelo_list_object_budget_materials - First observed
accelo_list_object_budget_services - First observed
accelo_list_object_budget_templates - First observed
accelo_list_object_budgets - First observed
accelo_list_object_filters - First observed
accelo_list_payments - First observed
accelo_list_profile_fields - First observed
accelo_list_progressions - First observed
accelo_list_prospects - First observed
accelo_list_purchases - First observed
accelo_list_quotes - First observed
accelo_list_rates - First observed
accelo_list_referrals - First observed
accelo_list_request_threads - First observed
accelo_list_requests - First observed
accelo_list_resources - First observed
accelo_list_segmentations - First observed
accelo_list_signoffs - First observed
accelo_list_skills - First observed
accelo_list_staff - First observed
accelo_list_staff_memberships - First observed
accelo_list_tags - First observed
accelo_list_tasks - First observed
accelo_list_taxes - First observed
accelo_list_thread_activities - First observed
accelo_list_time_externals - First observed
accelo_list_timers - First observed
accelo_list_webhook_subscription_types - First observed
accelo_list_webhook_subscriptions - First observed
accelo_pause_timer - First observed
accelo_progress_task_to_done - First observed
accelo_progress_task_to_start - First observed
accelo_rate_limit_status - First observed
accelo_redraft_signoff - First observed
accelo_remove_company_manager - First observed
accelo_reopen_contract_period - First observed
accelo_run_filter - First observed
accelo_run_progression - First observed
accelo_send_signoff - First observed
accelo_set_extension_value - First observed
accelo_set_profile_value - First observed
accelo_start_timer - First observed
accelo_update_activity - First observed
accelo_update_address - First observed
accelo_update_affiliation - First observed
accelo_update_asset - First observed
accelo_update_checklist - First observed
accelo_update_company - First observed
accelo_update_contact - First observed
accelo_update_expense - First observed
accelo_update_filter - First observed
accelo_update_holiday - First observed
accelo_update_issue - First observed
accelo_update_job - First observed
accelo_update_object_budget_material - First observed
accelo_update_prospect - First observed
accelo_update_quote - First observed
accelo_update_request - First observed
accelo_update_signoff - First observed
accelo_update_signoff_attachment - First observed
accelo_update_signoff_recipient - First observed
accelo_update_staff - First observed
accelo_update_task
TDQS
Scored across 219 tools
Most tools are clearly scoped to a resource and action, and the many list/count/get/create/update/delete tools are distinct. Some overlap exists in enumerations and filters, but the descriptions explicitly guide how to distinguish them. A few tools (e.g., accelo_list_enum vs accelo_list_object_filters) require careful reading but are not truly ambiguous.
All tools follow a strict accelo_verb_noun pattern (e.g., accelo_list_companies, accelo_get_task, accelo_create_issue). The prefix is consistent and the verb+noun style is uniform across all 219 tools.
With 219 tools, the surface is extremely large for any single agent to navigate effectively. While each tool may be warranted for the breadth of Accelo's API, the sheer count makes selection and maintenance burdensome, and the toolset feels heavy rather than well-scoped.
The server covers a vast domain with CRUD operations for most objects, plus helpers like progressions, timers, webhooks, and filters. Minor gaps exist (e.g., no contact delete), but overall the surface is remarkably comprehensive for Accelo's model.
Related MCP Connectors
AXL MCP lets AI assistants create and manage landing pages, courses, email campaigns, CRM records, and marketing workflows inside AXL. Built for growing expert businesses, it turns chat requests into real work across sales, marketing, and course delivery. An AXL account is required. Sign in securely with OAuth 2.1. Website: https://axl.tech/developers/mcp . Setup guide: https://docs.axl.tech/mcp . Watch AXL in 77 seconds: pages, courses, CRM, and automation. Product overview: https://www.youtube.com/watch?v=jlhR9CafIww
Let AI agents query data and act across all your business apps via MCP.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
API-first CRM for LLMs - contacts, companies, deals and activities over a native MCP server.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to manage GoHighLevel CRM data including contacts, conversations, opportunities, calendars, and forms through MCP tools and resources.51AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to access and manage CiviCRM data, including contacts, activities, contributions, events, and memberships, with full custom field support.5MIT
- AlicenseBqualityCmaintenanceEnables AI assistants to manage RogerRoger CRM data including people, organizations, lists, tags, and tasks through standardized MCP tools.2211MIT
- AlicenseNot gradedqualityAmaintenanceEnables MCP-compatible LLMs to interact with the MOCO ERP API, providing full read/write access to time tracking, projects, invoices, contacts, and other endpoints.28ISC