Skip to main content
Glama
Wagner-Emden-IT-Services

placetel-web-api-mcp-server

placetel-web-api-mcp-server

npm version CI License: MIT Node.js

MCP (Model Context Protocol) server exposing the complete Placetel Web API v2 — all 124 endpoints as individual, well-annotated tools. Built with the MCP TypeScript SDK (registerTool), Zod validation, and a shared axios client with automatic rate-limit (HTTP 429 / Retry-After) handling.

  • Base URL: https://api.placetel.de/v2

  • Auth: Bearer token via PLACETEL_API_KEY

  • Transport: stdio (local server for Claude Desktop / Claude Code)

Tool catalog (124 tools)

Tools are named placetel_<verb>_<resource> (snake_case). Read-only tools carry readOnlyHint, deletes carry destructiveHint. Full table with methods, paths and annotations: docs/BUILD-PLAN.md.

Domain

Tools

Domain

Tools

AI

1

Prompts

5

Call Center

8

Provisionings

9

Call detail records

1

Recordings

3

Calls

4

Routing plans (+objects)

7

Contacts

5

Routings

5

CTI

15

Sip Users

8

Devices

1

SIM Cards

2

Faxes

4

Sites

2

Groups

5

SMS

1

Microsoft Teams

5

Subscriptions

3

Numbers

8

Webex

14

Users (incl. /me)

8

Total

124

Every data tool accepts response_format (markdown default, or json). List tools accept page / per_page (note: not every endpoint honors per_page; Placetel list endpoints return bare arrays, so has_more is a heuristic).

Related MCP server: planfix-mcp

Setup

npm install
cp .env.example .env        # then put your Placetel API key into .env
npm run build

.env:

PLACETEL_API_KEY=your_api_key_here

Get your key at https://web.placetel.de/integrations/web_api. Never commit .env — it is gitignored.

Run

npm start          # runs dist/index.js over stdio
npm run smoke      # starts the server, lists tools, prints TOOL_COUNT

Register in an MCP client (e.g. Claude Desktop / Claude Code)

Using the published npm package (no local checkout needed):

{
  "mcpServers": {
    "placetel": {
      "command": "npx",
      "args": ["-y", "placetel-web-api-mcp-server"],
      "env": { "PLACETEL_API_KEY": "your_api_key_here" }
    }
  }
}

The env value may reference an existing OS environment variable, e.g. "PLACETEL_API_KEY": "${MY_PLACETEL_KEY}".

Alternatively point at a local build with "command": "node" and "args": ["<absolute-path>/dist/index.js"].

Development

npm run dev        # tsx watch on src/index.ts
npm run build      # tsc -> dist/
npm test           # build, then the offline test suite (no API key, no network)

Tests

npm test calls every tool through a real MCP client (in-memory transport) and checks the HTTP request it would send against a contract generated from the public Placetel spec (test/fixtures/placetel-contract.json): method, path, query and body fields, required fields, annotations, and both response formats. Requests are intercepted on the axios level, so nothing leaves the machine. The run ends with TOOL_COVERAGE=<passed>/<registered> and SPEC_UNCOVERED=<operations without a tool>.

To refresh the contract after an API change, run node scripts/build-contract.mjs (fetches https://api.placetel.de/v2/swagger_doc.json; not part of npm test or CI).

  • src/index.ts — entry point, registers all tool modules, connects stdio.

  • src/services/ — shared client, error mapping, pagination, formatting.

  • src/tools/ — one module per API domain (contacts.ts is the hand-written reference; the rest are generated to the same pattern from the Swagger spec).

  • evaluation.xml — 10 read-only QA pairs (mcp-builder Phase 4).

Notes & limits

  • CTI, Webex, Microsoft Teams and SIM-card tools require the corresponding Placetel add-on products / real devices; they are implemented and type-checked but may not be exercisable on every account.

  • Error messages are actionable (401 → check key, 404 → check id, 422 → validation detail, 429 → rate limited).

Releasing

Publishing to npm is automated via GitHub Actions (.github/workflows/publish.yml) and runs when a GitHub Release is published:

  1. Bump the version and update CHANGELOG.md: npm version patch|minor|major

  2. Push the tag: git push --follow-tags

  3. Publish a GitHub Release for that tag: gh release create vX.Y.Z --generate-notes

The workflow then builds and runs npm publish --provenance. It requires the repository secret NPM_TOKEN — an npm Automation token (Access Tokens → Classic → Automation), which bypasses 2FA. A plain repo push does not republish npm; only a new release with a bumped version does.

Available Tools

124 tools
placetel_activate_numberActivate a numberC

Activate a number. (POST /numbers/{id}/activation)

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a non-read-only, non-destructive, non-idempotent, open-world mutation, so the safety profile is covered. The description adds nothing beyond restating the action and the HTTP endpoint: it doesn't say what activation actually changes on the number, whether it is reversible, whether it consumes licensing/billing, or what state the number must be in beforehand — meaningful gaps for a state-changing operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short clauses, front-loaded with the action, with zero wasted words. However, the brevity crosses into under-specification: the parenthetical endpoint is the only extra content and contributes little to an agent deciding how to call it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating, non-idempotent tool with no output schema, the description should explain effects, preconditions, and expected result. Instead it offers only the verb and the REST path, leaving the agent able to identify the action but not to predict its consequences or confirm success.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — both the `id` path parameter and the `response_format` enum are documented in the schema — so the baseline of 3 applies. The description contributes no additional meaning about what `id` refers to (number ID vs. phone number) or any format hint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ("Activate a number") that an agent can map directly to the tool name and, via the endpoint path, to the numbers/{id} sub-resource. It does not, however, distinguish this from the sibling placetel_deactivate_number or placetel_activate_number_profile, so the agent must infer which of the three activation-style tools applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus placetel_deactivate_number or placetel_activate_number_profile, and no prerequisites or preconditions (e.g., whether the number must be provisioned or unassigned) are stated. The agent gets a purpose but no routing logic.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_activate_number_profileActivates a profile for a numberC
Idempotent

Activates a profile for a number. (PUT /numbers/{number_id}/profiles)

NameRequiredDescriptionDefault
idYesBody field id (required).
number_idYesPath parameter number_id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose that this is a non-read-only, idempotent, non-destructive operation with open-world effects. The description adds only the HTTP verb and path, not what activation changes, whether it switches out another active profile, permission requirements, or the response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with the purpose front-loaded and no wasted prose. It is appropriately sized for a simple endpoint, though the endpoint parenthetical is the only extra detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple mutation with annotations and complete schema coverage, the description covers the basic purpose. However, it leaves key semantic gaps: what activation does and what the required body `id` refers to, which matters for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds the endpoint path showing number_id as a path parameter, but does not clarify that the required body field `id` is the profile identifier or explain its role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: activating a number profile, with the endpoint path. It is clear enough to understand the operation, but it does not explicitly differentiate this tool from nearby siblings such as placetel_activate_number, placetel_deactivate_number, or placetel_create_number_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only restates the tool's purpose and gives no guidance on when to use it versus alternatives or prerequisites. There is no mention of when not to use it, whether a profile must already exist, or how it relates to activate_number/deactivate_number.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_add_subscriptionAdd a subscriptionC
Idempotent

Add a subscription. (PUT /subscriptions)

NameRequiredDescriptionDefault
urlYesBody field url (required).
phoneNoBody field phone.
hungupNoBody field hungup.
numbersNoBody field numbers.
serviceYesBody field service (required).
acceptedNoBody field accepted.
incomingNoBody field incoming.
outgoingNoBody field outgoing.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — no note on what registering a subscription triggers externally (openWorld), whether duplicates are replaced (idempotency semantics), or any auth/scope requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two clauses, front-loaded and waste-free, which is structurally fine. The problem is under-specification rather than verbosity, so it doesn't lose points for length but gains nothing from the brevity either.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation tool with no output schema and opaque field names, the definition is far too thin: it explains neither what gets created, nor the side effects, nor what is returned. The structured annotations partially cover the safety profile, which keeps this above the minimum.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Nominal schema coverage is 100%, but every field description is filler ("Body field url (required)", "Body field hungup"), leaving domain-critical parameters like service, numbers, incoming/outgoing, and accepted unexplained. The description does nothing to compensate, so the baseline-3 allowance for high coverage is not earned here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Add a subscription" restates the tool name and title verbatim, so the only added information is the HTTP endpoint "(PUT /subscriptions)". It never says what a subscription is in this API (webhook/event subscription?) or what adding one accomplishes, and it doesn't differentiate from placetel_list_subscriptions or placetel_delete_subscription.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of the sibling list/delete subscription tools. The agent must infer applicability entirely from the name and the PUT endpoint hint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_assign_webex_user_licenseAssign Webex license to userC

Assign Webex license to user. (POST /webex/users/{id}/license)

NameRequiredDescriptionDefault
idYesPath parameter id.
packageYesBody field package (required).
extensionNoBody field extension.
location_idNoBody field location_id.
phone_numberNoBody field phone_number.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, but the description adds almost no behavioral context beyond the endpoint path. For a mutation tool, it does not clarify whether assigning a package replaces an existing license, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short and front-loaded, with no filler. However, its brevity borders on under-specification for a mutation tool with six parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool mutates a user's Webex license and has no output schema, yet the description omits permissions, replacement semantics, and expected response behavior. Given the mutation context and optional parameters like extension, location_id, and phone_number, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents all six parameters including the package enum. The description adds no meaning beyond the operation itself and the endpoint path, which is acceptable when the schema is fully documented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Assign Webex license to user') and includes the underlying POST endpoint, making the operation identifiable. It does not explicitly distinguish this from sibling tools like placetel_update_webex_user_license or placetel_get_webex_user_license, but the verb 'assign' is clear enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus placetel_update_webex_user_license or placetel_get_webex_user_license. No prerequisites, exclusions, or alternative-selection conditions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_configure_webex_number_fax_settingsConfigure a number as a fax numberC
Idempotent

Configure a number as a fax number. (PUT /webex/numbers/{number_or_id}/fax_settings)

NameRequiredDescriptionDefault
emailNoBody field email.
faxpinYesBody field faxpin (required).
faxheaderYesBody field faxheader (required).
faxsettingsNoBody field faxsettings.
faxwhitelistNoBody field faxwhitelist.
number_or_idYesPath parameter number_or_id.
fax_attachmentNoBody field fax_attachment.
webex_room_idsNoBody field webex_room_ids.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the operation is a non-read-only, idempotent, non-destructive, open-world mutation. The description adds nothing beyond that profile: it does not say whether existing fax settings are replaced by the PUT, what happens to unlisted fields, or what permissions are required. It essentially restates the title.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, action front-loaded with the endpoint path as secondary detail. Nothing is wasted, though the path adds little decision value for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 parameters, 3 required, no output schema, and a mutation of telephony settings, the description should explain at minimum what faxpin and faxheader represent and the effect of the call. Those required-but-opaque parameters are left entirely undocumented, so an agent cannot call this reliably without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description mentions number_or_id via the endpoint path but adds no meaning for faxpin, faxheader, faxsettings, or faxwhitelist beyond the schema's placeholder 'Body field X' labels, so it does not compensate for the schema's semantic thinness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: configuring a number as a fax number, plus the underlying endpoint. It is distinguishable from the read sibling (get_webex_number_fax_settings) and delete sibling, but it never names them, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus get_webex_number_fax_settings or remove_webex_number_fax_settings, nor any prerequisites (e.g. number must be a Webex-enabled number). The agent must infer selection purely from the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_create_call_center_agentCreate an agentC

Create an agent. (POST /call_center_agents)

NameRequiredDescriptionDefault
nameYesBody field name (required).
priorityNoBody field priority.
agent_typeNoBody field agent_type.
descriptionNoBody field description.
extension_sipYesBody field extension_sip (required).
extension_pstnYesBody field extension_pstn (required).
extension_typeYesBody field extension_type (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the description adds nothing new beyond echoing the POST endpoint. It does not disclose whether an account/queue must exist first, whether duplicates are rejected, or what the call returns for the new agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short fragments with zero padding, and the verb is front-loaded. However, the brevity is under-specification rather than economy — the parenthetical endpoint is the only added information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent write tool with 8 parameters, 4 of them required, and no output schema, the description should at minimum state the resulting object and any prerequisites. It provides neither, leaving the agent to infer everything from an endpoint path.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is technically 100%, but the per-parameter text is pure boilerplate ('Body field name.', 'Body field extension_sip.'), so no real semantics are conveyed anywhere. The description does not explain the required name/extension_type/extension_sip/extension_pstn relationship, the Superviser/Agent enum intent, or the response_format switch.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description essentially restates the title ('Create an agent') and appends the raw endpoint path (POST /call_center_agents). The endpoint hints at the Call Center Agents resource family, but the text never says what an 'agent' is here or how it differs from the many other create tools in the sibling list (create_user, create_sip_user, create_contact).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance at all. Nothing distinguishes this from placetel_list_call_center_agents, placetel_update_call_center_agent, or the other user/SIP-user creation tools, and no preconditions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_create_call_center_queueCreate a queueC

Create a queue. (POST /call_center_queues)

NameRequiredDescriptionDefault
nameYesBody field name (required).
priorityNoBody field priority.
num_loopsNoBody field num_loops.
prompt_idNoBody field prompt_id.
descriptionNoBody field description.
play_promptNoBody field play_prompt.
play_mailboxNoBody field play_mailbox.
ringing_timeNoBody field ringing_time.
prompt_end_idNoBody field prompt_end_id.
max_iterationsNoBody field max_iterations.
play_prompt_endNoBody field play_prompt_end.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
mail_notificationNoBody field mail_notification.
prompt_mailbox_idNoBody field prompt_mailbox_id.
prompt_waiting_idNoBody field prompt_waiting_id.
play_prompt_waitingNoBody field play_prompt_waiting.

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the description does not need to restate safety. It adds nothing beyond that, though: no note on whether re-creating the same name errors or duplicates (non-idempotent is only implied by annotations), no side effects on existing routing/agents. The endpoint reference is the only value-add.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero padding and the endpoint front-loaded. Efficiency here comes at the cost of substance rather than through well-chosen compression — it is under-specified rather than crisp.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A non-idempotent create tool with 16 parameters (only 'name' required), no output schema, and many interdependent prompt/ringing settings needs far more than one sentence: which fields are practically required for a working queue, interaction rules, and error behavior are all absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Coverage is nominally 100%, but the schema descriptions are pure placeholders ('Body field priority.', 'Body field ringing_time.'), so the schema explains nothing about 15 optional business fields such as num_loops, max_iterations, or prompt_id. The description offers no compensating explanation of defaults, units, or relationships between prompt fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a queue') and the underlying endpoint (POST /call_center_queues), which disambiguates that this is the call-center queue resource rather than a generic queue. However, it does no explicit sibling differentiation from placetel_list_call_center_queues or placetel_update_call_center_queue, and the phrase is essentially the tool title restated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus the list/update queue siblings, no prerequisites or permissions noted, and no mention of what state the account must be in. The agent must infer everything 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.

placetel_create_contactCreate contactC

Create a new contact. Provide any subset of contact fields (all optional). Returns the created contact object.

NameRequiredDescriptionDefault
faxNo
tagsNo
colorNo
emailNo
phoneNo
mobileNo
addressNo
blockedNo
companyNo
fax_workNo
xing_urlNo
last_nameNo
speeddialNo
email_workNo
first_nameNo
phone_workNo
mobile_workNo
address_workNo
facebook_urlNo
linkedin_urlNo
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
twitter_accountNo

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so safety and repeat-behavior are covered. The description adds that all fields are optional and that the created object is returned, but says nothing about duplicate handling, required identifiers (e.g. whether a contact without a name is meaningful), or side effects like address-book sync.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with the purpose front-loaded and no filler. It is efficient, though the brevity is partly under-specification rather than discipline.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 22-parameter creation tool with no output schema and near-zero schema descriptions, this definition is far too thin — it clarifies neither the field semantics nor the creation semantics (duplicates, defaults, minimum content).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 22 parameters at 5% schema description coverage, the description must carry the parameter burden, yet it only says fields are optional. Non-obvious fields such as 'color', 'speeddial', 'blocked', 'tags', and the enum 'response_format' are never explained, so an agent must guess at semantics and formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new contact') and names the return ('the created contact object'), which separates it from placetel_update_contact and placetel_get_contact. It does not explicitly route against siblings like update_contact, but the verb makes the intent unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, no mention of when to prefer placetel_update_contact or placetel_get_contact instead. The only guidance is a field-level note ('any subset of contact fields'), not a usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_create_faxCreate outbound faxC

Create outbound fax. (POST /faxes)

NameRequiredDescriptionDefault
fileYesBody field file (required).
emailYesBody field email (required).
headerNoBody field header.
to_numberYesBody field to_number (required).
from_numberYesBody field from_number (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond "(POST /faxes)": it does not say whether the fax is dispatched immediately, whether a file must be uploaded/base64-encoded, what account/permission is required, or whether retries could send duplicate faxes (important given idempotentHint=false).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short fragments with no filler and the purpose front-loaded. Size is appropriate; the parenthetical endpoint is near-zero value for an agent but not enough bloat to penalize further.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is an outward-facing, non-idempotent mutation with 6 parameters and no output schema, so the description carries real burden. It omits what is returned (fax id/status), any send semantics, file encoding expectations, and error cases — an agent could construct the call but not predict its effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema is nominally the source of truth and the baseline is 3. However, the schema descriptions are pure tautologies ("Body field file (required)") and the tool description offers no compensating detail such as accepted file formats or the meaning of `header`, so it does not improve on structured data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description pairs a specific verb and resource ("Create outbound fax") and the tool name/sibling set (list_faxes, get_fax, delete_fax) makes the create role unmistakable. It stops short of naming a sibling or stating scope (e.g. vs. send_sms or initiate_call), 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.

Usage Guidelines2/5

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 over neighbors like placetel_send_sms, placetel_list_faxes, or placetel_initiate_call, and no prerequisites or exclusions. The only content is the HTTP verb/path, which does not help an agent decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_create_groupCreate a groupC

Create a group. (POST /groups)

NameRequiredDescriptionDefault
nameYesBody field name (required).
typeYesBody field type (required).
member_idsNoBody field member_ids.
descriptionNoBody field description.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that – no mention that this is a non-idempotent write, no required-permission or naming/uniqueness constraints, and no note on what happens if a duplicate name is submitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two fragments, no waste, verb front-loaded – but the brevity reflects under-specification rather than efficiency. The parenthetical endpoint is the only non-redundant element and it is not the most useful thing that could occupy that space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A 5-parameter mutation tool with no output schema and an unexplained enum needs more than this. An agent cannot learn from the description whether name must be unique, whether member_ids can be empty, or how the three group types differ – gaps the generic schema text does not fill either.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 even with no parameter content in the description. However the schema descriptions are pure boilerplate ('Body field name (required).'), and the description does nothing to explain the meaningful parts – particularly what ring_all/monitoring/hunt actually mean for group behavior or what member_ids controls.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb+resource ('Create a group') does identify the operation and separates it from get/update/delete/list_group siblings, but it is a verbatim restatement of the title with zero added specificity. It never says what a group is in this API or what creating one entails, so the agent learns nothing it didn't already get from the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, no prerequisites, no reference to alternatives such as placetel_create_call_center_queue or the other group tools. The only extra token is the raw endpoint, which gives no selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_create_number_profileCreates a new profile for a numberC

Creates a new profile for a number. (POST /numbers/{number_id}/profiles)

NameRequiredDescriptionDefault
nameYesBody field name (required).
number_idYesPath parameter number_id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the mutating/non-destructive profile is covered. The description adds only the endpoint path; it says nothing about duplicate-name behavior, permission requirements, or what happens to an existing profile on the same number — meaningful gaps for a create operation flagged as non-idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single short sentence plus an endpoint parenthetical, so nothing is buried or bloated. The parenthetical API path is of marginal value to an agent and edges toward filler, keeping it out of the top band.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a create/mutation tool with no output schema, the definition should at least say what a profile represents, what a successful creation returns or enables, and any preconditions. None of that is present, leaving the agent to rely entirely on the schema and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents name, number_id, and the response_format enum; the description supplies no additional parameter meaning. Per the baseline rule for fully covered schemas, a 3 is the appropriate ceiling.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb+resource ("creates a new profile for a number") is identifiable, but it is a near-verbatim restatement of the title and adds no elaboration on what a number profile actually contains or how it differs from siblings like placetel_activate_number_profile or placetel_delete_number_profile. An agent must infer the concept of a 'profile' from the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus placetel_list_number_profiles, placetel_activate_number_profile, or placetel_activate_number, and no stated prerequisites (e.g., whether the number must exist or be activated first). The only contextual cue is the raw POST path, which the agent must decode itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_create_promptCreate a promptC

Create a prompt. (POST /prompts)

NameRequiredDescriptionDefault
fileNoBody field file.
nameYesBody field name (required).
textNoBody field text.
voiceYesBody field voice (required).
descriptionNoBody field description.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-readonly, open-world, non-idempotent, non-destructive write operation. The description only repeats that it's a POST to /prompts, adding nothing about side effects, whether duplicate names overwrite, or what a 'prompt' represents in this system. No contradiction, but no value added.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short, so nothing is bloated, but the second clause '(POST /prompts)' just restates the HTTP verb already implied by the annotations and the tool name. It is appropriately sized but not information-dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter mutation tool with a required voice enum and no output schema, the description should explain what a prompt is, how voice/text/file relate, and what is returned. None of this is present, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. However the description contributes nothing about the meaning of name, voice, file, text, or description fields, and adds no clarification for the large voice enum beyond what the schema already lists.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is 'Create a prompt. (POST /prompts)' — it restates the tool name and title verbatim without adding any scope, target resource detail, or distinguishing behavior from siblings like placetel_update_prompt or placetel_list_prompts. There is no information an agent couldn't get 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus placetel_update_prompt, placetel_list_prompts, or placetel_get_prompt. It does not state prerequisites (e.g. required voice/name) or what happens when a prompt with the same name exists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_create_provisioningCreates a phone provisioningsC

Creates a phone provisionings. (POST /provisionings)

NameRequiredDescriptionDefault
macYesBody field mac (required).
keysNoBody field keys.
nameYesBody field name (required).
codecNoBody field codec.
linesNoBody field lines.
localeNoBody field locale.
encryptionNoBody field encryption.
webuser_idNoBody field webuser_id.
phone_modelYesBody field phone_model (required).
call_waitingNoBody field call_waiting.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, so the safety profile is known. The description adds nothing beyond the raw endpoint (POST /provisionings) — no mention of required permissions, whether a duplicate MAC fails or overwrites, or side effects on associated numbers/lines. It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no bloat, and the verb leads. However the second sentence merely echoes the HTTP route, and the terseness comes at the cost of any useful content rather than from tight editing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a write tool creating a device provisioning record with 11 parameters, the description says nothing about what gets created, whether MACs must be unique, or how the new provisioning relates to lines/webuser_id. With no output schema, the agent also has no picture of what is returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 11 parameters are documented in the schema (albeit generically, e.g. "Body field mac (required)"). The description contributes no additional meaning about what mac, phone_model, codec, encryption, or lines actually control. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Creates a phone provisionings" states a verb and resource, but only restates the tool name and title with no elaboration on what a provisioning actually is. It is barely distinguishable from siblings beyond the create/get/list/update/delete prefix pattern, and the grammar is broken.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to use this versus placetel_update_provisioning or placetel_reconfigure_provisioning, and no prerequisites or preconditions stated. The agent must infer usage entirely from the name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_create_routingCreate a routing objectC

Create a routing object. (POST /routings)

NameRequiredDescriptionDefault
apiNoBody field api.
ivrNoBody field ivr.
nameYesBody field name (required).
groupNoBody field group.
queueNoBody field queue.
forwardNoBody field forward.
mailboxNoBody field mailbox.
notificationNoBody field notification.
music_on_holdNoBody field music_on_hold.
time_settingsNoBody field time_settings.
custom_calleridNoBody field custom_callerid.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
notify_external_apiNoBody field notify_external_api.

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already define it as a mutable operation (destructiveHint: false, readOnlyHint: false). The description adds technical context by including the HTTP method and resource path (POST /routings), which is marginally helpful execution detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely brief and direct. It uses the minimum necessary text to identify the action and the resource, scoring highly for its efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the complex 13-parameter input schema, the description provides no context on what a successful creation looks like (e.g., does it return the new ID, or just a status code). Given no output schema, this is a significant omission for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since the schema coverage is 100%, the schema itself provides all structural meaning for the 13 parameters. The description adds minimal semantic value beyond repeating the core function.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the action (Create) and the resource (routing object). However, it is highly generic and does not specify the scope or type of routing object being created, making it difficult to differentiate from other creation methods.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The definition offers no guidance on when to use this tool compared to alternatives, such as `placetel_create_routing_plan`. It does not describe any prerequisites or conditions for successful execution.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_create_routing_planCreate a routing planC

Create a routing plan. (POST /routing_plans)

NameRequiredDescriptionDefault
didNoBody field did.
nameNoBody field name.
descriptionNoBody field description.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
routing_objectsNoBody field routing_objects.

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is a tautology ('Create a routing plan') and adds no unique behavioral information. While annotations indicate it is a write operation and not inherently destructive, the description fails to clarify side effects, potential failures, or the nature of the resulting resource.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is concise, but the inclusion of the HTTP method and path, '(POST /routing_plans)', adds structural noise that is already strongly implied by the tool's verb and name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since no output schema is present, the description should ideally hint at the expected return (e.g., 'Returns the created routing plan object or a success ID'). The current description provides no information about the successful outcome of the creation process.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage for all 5 parameters. Therefore, the baseline score of 3 applies, as the description adds no semantic value beyond what is already documented in the input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The tool clearly states its purpose (Create a routing plan), which is good. However, the description lacks specificity regarding what a 'routing plan' actually entails or what resource it manages, providing little context beyond the title itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers absolutely no guidance on when to use this tool versus alternatives. Since there are multiple routing plan manipulation tools (list, get, update), the agent is forced to rely solely on the sibling tool list to understand the operational context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_create_sip_userCreate a sip userC

Create a sip user. (POST /sip_users)

NameRequiredDescriptionDefault
didNoBody field did.
nameYesBody field name (required).
typeYesBody field type (required).
calleridNoBody field callerid.
webuser_idNoBody field webuser_id.
descriptionNoBody field description.
hotdesk_pinNoBody field hotdesk_pin.
busy_on_busyNoBody field busy_on_busy.
hotdesk_typeNoBody field hotdesk_type.
hotdesk_loginNoBody field hotdesk_login.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
routing_plan_idNoBody field routing_plan_id.
automatic_prefixNoBody field automatic_prefix.
blocked_prefixesNoBody field blocked_prefixes.
contact_speeddialingNoBody field contact_speeddialing.
hotdesk_provisioning_idNoBody field hotdesk_provisioning_id.

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing about what the call creates, whether required fields must reference existing resources, or what permissions are needed — notable gaps for a 16-field create mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, so it is not verbose in the penalized sense. However the parenthetical endpoint adds almost no decision value, and brevity here reflects under-specification rather than disciplined concision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 16-parameter, non-idempotent create operation with no output schema, the description should explain what a sip user is, what required vs. optional fields accomplish, and what gets returned. None of that is present, leaving the agent dependent entirely on schema field names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 16 fields (including the two required ones and the three enums) are documented structurally; baseline 3 applies. The description contributes no additional meaning about field interactions, defaults, or which optional fields are commonly needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Create a sip user" restates the tool name and title verbatim; the only added content is the HTTP path (POST /sip_users). It does not distinguish this from siblings like placetel_update_sip_user or placetel_create_user, so an agent learns nothing beyond what the name already said.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of prerequisites (e.g., needing a routing plan or webuser_id first), and no routing to alternatives such as placetel_create_user or placetel_create_provisioning. The agent must infer all selection logic from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_create_sip_user_short_codeCreate short codeC

Create short code. (POST /sip_users/{id}/short_codes)

NameRequiredDescriptionDefault
idYesPath parameter id.
codeYesBody field code (required).
actionYesBody field action (required).
numberNoBody field number.
group_idNoBody field group_id.
descriptionNoBody field description.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this is a non-read-only, non-idempotent, non-destructive write with open-world effects, so the bar is lower — but the description adds nothing beyond the route string. It does not say whether creating a duplicate code fails or overwrites, whether the change is live immediately, or what permissions the caller needs. Nothing contradicts the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is brief and the operation name is front-loaded, so there is no padding to trim. However, brevity here comes from under-specification rather than discipline — only the endpoint path is appended, and the whole definition is two fragments.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter create operation with two enums, conditional fields (`number` for `set_forward`/`set_out_number`, `group_id` for `login_group`) and no output schema, the description leaves the agent guessing at field interdependencies and return value. Annotations cover the safety profile but not the semantics the agent needs to construct a valid call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter including the `action` enum and `response_format` is already documented in the schema; per the high-coverage baseline this floors at 3. The description contributes no additional meaning, such as how `number`, `group_id`, and `description` relate to specific `action` values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Create short code" restates the tool title and name almost verbatim, with no elaboration on what a short code is or how it binds to the SIP user identified by `id`. The parenthetical HTTP route hints at the resource nesting, but an agent still cannot tell what the operation actually produces or why a short code differs from a routing entry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites (e.g. that a SIP user must already exist), and no reference to the sibling `placetel_list_sip_user_short_codes` or `placetel_delete_sip_user_short_code`. The agent gets no signal about when this creation tool is the right choice versus configuring forwardings via `placetel_update_sip_user` or routings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_create_userCreate new subuserC

Create new subuser. (POST /users)

NameRequiredDescriptionDefault
didNoBody field did.
emailNoBody field email.
calleridNoBody field callerid.
last_nameYesBody field last_name (required).
phone_macNoBody field phone_mac.
assign_didNoBody field assign_did.
first_nameYesBody field first_name (required).
phone_modelNoBody field phone_model.
sip_user_typeNoBody field sip_user_type.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), so the description only needs to add context. Beyond restating the HTTP endpoint (POST /users), it says nothing about required permissions, side effects such as DID assignment, or what happens when provisioning fields like phone_mac 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, which is good, but at this length the brevity is under-specification rather than economy. The endpoint notation adds little to a reader who already has the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter mutation tool with no output schema, the description omits what a created subuser looks like in the response, which fields are required or mutually exclusive, and any input constraints. Given the complexity of the schema, this is materially incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is nominally 100%, so baseline is 3, but the schema text is pure boilerplate ("Body field did.") that conveys no meaning. The description makes no attempt to explain the 10 parameters, so the agent gets no real semantic guidance for fields like did, assign_did, callerid, or sip_user_type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

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 new subuser"), so the basic operation is inferable. However, it does not distinguish this from sibling creation tools such as placetel_create_sip_user or placetel_create_webex_user, and the term "subuser" is left unexplained relative to the plain "users" resource in the endpoint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many other creation tools (sip_user, webex_user, contact, group). No prerequisites, no exclusions, and no indication of what account or role context is needed to create a subuser.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_create_webex_userCreate a Webex userC

Create a Webex user. (POST /webex/users)

NameRequiredDescriptionDefault
emailYesBody field email (required).
packageNoBody field package.
extensionNoBody field extension.
last_nameYesBody field last_name (required).
first_nameYesBody field first_name (required).
location_idNoBody field location_id.
phone_numberNoBody field phone_number.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a mutating, non-idempotent, non-destructive, open-world operation, so the safety profile is covered. The description adds nothing beyond the HTTP endpoint: no note on required permissions, side effects (e.g., automatic licensing or number provisioning), duplicate-email behavior, or what a retry would do given idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler and the core action front-loaded. Nothing is wasted, 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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter mutation tool with no output schema, the description omits what the response looks like (e.g., created user ID), what the optional package/location/phone fields do, and any post-creation steps. Annotations cover only the safety profile, leaving real behavioral gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 even though the description says nothing about parameters. The schema labels are thin ('Body field package.'), so the description could have clarified the meaning of the 'package' enum values or how phone_number/extension interact, but it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name and title almost verbatim ('Create a Webex user'), adding only the underlying endpoint (POST /webex/users). It offers no differentiation from closely related siblings such as placetel_create_user, placetel_list_webex_users, or placetel_assign_webex_user_license, so an agent cannot tell which creation path applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when this tool should be used instead of placetel_create_user or the license-assignment tools, and no prerequisites (e.g., whether a license or package must exist first) are mentioned. Usage is only inferable from the verb 'Create'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_create_webex_workspaceCreate a Webex workspaceC

Create a Webex workspace. (POST /webex/workspaces)

NameRequiredDescriptionDefault
callingYesBody field calling (required).
extensionNoBody field extension.
location_idYesBody field location_id (required).
display_nameYesBody field display_name (required).
phone_numberNoBody field phone_number.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
supported_devicesYesBody field supported_devices (required).

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=true, so the safety profile is covered. The description adds only the HTTP method/path, which doesn't tell the agent anything about side effects, error conditions, or what the created workspace returns — effectively nothing beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is extremely short and front-loaded, with the verb and resource in the first sentence. The endpoint parenthetical is mildly useful for debugging but is the only supplementary content, so it's efficient but nearly contentless.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter creation tool with no output schema, the description says nothing about what constitutes a valid request, what gets provisioned, or what is returned. The annotations cover the mutation profile, but the description itself leaves the agent with too little to call this confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents all 7 parameters and their enums. The description contributes no additional meaning about fields such as calling, supported_devices, or location_id, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ("Create a Webex workspace") plus the underlying HTTP endpoint, which is unambiguous. It doesn't explicitly distinguish itself from siblings like placetel_list_webex_workspaces or placetel_get_webex_workspace, though the verb makes the distinction obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this vs. alternatives, no mention of prerequisites such as an existing location_id or supported_devices, and no exclusions. 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.

placetel_cti_answerAnswerC

Answer. (POST /cti/{mac}/answer)

NameRequiredDescriptionDefault
macYesPath parameter mac.
lineYesBody field line (required).
call_idYesBody field call_id (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the safety profile is partly covered. The description adds nothing beyond the HTTP path — no note on what state the call enters, whether it fails when the call is already answered, or what the mac/line context means operationally.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is extremely short and front-loaded, but the brevity comes from under-specification rather than efficiency — the only substantive content is the endpoint path. There is no wasted text, yet nothing informative is conveyed either.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a non-idempotent, open-world mutation requiring three parameters with no output schema to explain the result. For a CTI call-control action whose success/failure semantics matter to an agent mid-call, the description should state the effect and the failure conditions; it does neither.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so mac, line, call_id and response_format are all documented in the schema; the description adds no extra meaning. Per the rubric, a baseline of 3 applies when the schema does the heavy lifting and the description contributes nothing further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is 'Answer' plus the raw endpoint POST /cti/{mac}/answer — a restatement of the tool name rather than an explanation. It never says what is being answered (an incoming call), nor which resource is affected, so an agent must infer the meaning from the sibling CTI tools (decline, hangup, hold).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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 comparison to the many adjacent CTI tools such as placetel_cti_decline or placetel_cti_pick_call_center_call. The agent has to guess that this accepts a ringing call rather than picking a queued call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_cti_blind_transferBlind transferC

Blind transfer. (POST /cti/{mac}/blind_transfer)

NameRequiredDescriptionDefault
macYesPath parameter mac.
lineYesBody field line (required).
numberYesBody field number (required).
call_idYesBody field call_id (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose write/non-idempotent/open-world behavior, so the safety profile is covered, but the description adds nothing beyond the endpoint. It doesn't say what happens to the caller on the far end after the transfer (e.g., whether the transferring leg is dropped), which is the key behavioral fact for a blind transfer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the single sentence is pure restatement of the title and URL; there is no additional content to front-load. Brevity here is under-specification rather than economy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-required-parameter telephony mutation with no output schema and many closelooking CTI siblings, the description leaves the agent without the operational context needed to choose and call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters are documented in the schema and the baseline of 3 applies. The description itself contributes no meaning about mac, line, call_id, or number beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is 'Blind transfer' plus the HTTP route, which merely restates the tool name and title. No verb nuance or scope is added, and it doesn't distinguish this from the sibling CTI tools placetel_cti_start_transfer and placetel_cti_complete_transfer, which are precisely the attended-transfer counterpart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use a blind transfer versus an attended transfer (start/complete transfer), nor any precondition such as an active call being required. The agent must infer all routing between sibling tools from their names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_cti_complete_conferenceComplete conferenceC

Complete conference. (POST /cti/{mac}/complete_conference)

NameRequiredDescriptionDefault
macYesPath parameter mac.
lineYesBody field line (required).
call_idYesBody field call_id (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=true, so the safety profile is covered. The description adds only the raw HTTP path, not what completing a conference actually does — whether it disconnects all participants, releases the line, or can be repeated. With annotations doing the heavy lifting, this is a minimal contribution.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short fragments with no padding and the verb is front-loaded, but the brevity comes at the cost of specification rather than from efficiency. The parenthetical endpoint is the only extra signal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A CTI state-changing operation with three required parameters and no output schema needs more than a name echo: the meaning of the conference completion, the role of mac/line/call_id, and the expected outcome are all missing. The HTTP path alone does not close that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so mac, line, call_id, and response_format are all documented in the schema, and the description adds nothing further. Baseline 3 applies when the schema carries parameter semantics entirely.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Complete conference" restates the tool name and title verbatim, adding no elaboration of what completing entails. It doesn't distinguish this from nearby siblings such as placetel_cti_start_conference or placetel_cti_complete_transfer, so an agent must guess which lifecycle step this is.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no reference to alternatives. The agent is given no basis for choosing this over start_conference, hangup, or complete_transfer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_cti_complete_transferComplete transferC

Complete transfer. (POST /cti/{mac}/complete_transfer)

NameRequiredDescriptionDefault
macYesPath parameter mac.
lineYesBody field line (required).
call_idYesBody field call_id (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=true, so the mutation profile is covered structurally. The description contributes nothing beyond the endpoint path — it does not say what state the call ends in, whether it can fail if no transfer is pending, or what happens to the other party.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two very short sentences that are front-loaded but largely wasted: one repeats the tool name and the other is a raw route. Brevity here comes from under-specification rather than from efficient communication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a state-changing CTI action in a crowded family of siblings, the definition omits the flow context (that it finalizes a transfer initiated elsewhere), prerequisites, and any failure conditions. There is no output schema to lean on, so the description should carry more weight than it does.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so mac, line, call_id and response_format are already documented in the schema; a baseline of 3 applies. The description adds no meaning about how line or call_id relate to the transfer being completed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title verbatim ('Complete transfer') and adds only an HTTP route. It gives no indication of what completing a transfer actually does to the call, and it does not distinguish this from the many sibling CTI actions such as placetel_cti_start_transfer or placetel_cti_blind_transfer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisite (e.g. a transfer must first be started), and no mention of any alternative sibling tool. An agent cannot infer from the text when this action is appropriate versus start/blind transfer or complete_conference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_cti_declineDeclineC

Decline. (POST /cti/{mac}/decline)

NameRequiredDescriptionDefault
macYesPath parameter mac.
lineYesBody field line (required).
call_idYesBody field call_id (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true). The description adds only the HTTP endpoint and does not explain the effect on the call, permissions, or state changes beyond what annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is very short, but the issue is under-specification rather than useful concision; the single word plus endpoint does not provide an appropriately sized definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a call-control mutation with multiple CTI siblings and no output schema, the description omits what declining does, expected state, and how it differs from adjacent tools. Schema and annotations give some structure, but the domain context is inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents all four parameters including the required mac, line, and call_id. The description adds no parameter meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only says "Decline" plus the endpoint, restating the tool name/title. It does not identify the object being declined (e.g., an incoming/ringing call) or distinguish it from sibling actions like answer or hangup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this rather than placetel_cti_answer, placetel_cti_hangup, or other call-control tools, nor any prerequisite conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_cti_dialDialC

Dial. (POST /cti/{mac}/dial)

NameRequiredDescriptionDefault
macYesPath parameter mac.
lineYesBody field line (required).
numberYesBody field number (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the mutating/non-repeatable nature is covered structurally. The description adds nothing beyond that — no note that this places a real call, that it requires the device identified by mac to be registered, or what happens on repeat invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, but the brevity is under-specification rather than economy: the only second sentence is a raw endpoint path that gives an agent little actionable information. Nothing is verbose, yet nothing extra earns its place either.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent, open-world telephony action with three required parameters and no output schema, the description leaves critical gaps: what a successful dial produces, what errors occur (invalid mac, busy line), and how it relates to the rest of the CTI tool family. This is insufficient context to invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (mac, line, number, response_format) are documented in the schema itself. The description adds no meaning beyond it — e.g. what 'line' selects on the device — so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially a restatement of the name/title ('Dial') plus the raw HTTP path. It never says what dialing means here — placing an outbound call from a specific device — nor distinguishes it from siblings like placetel_cti_dial_digit or placetel_initiate_call. An agent must infer the resource and the effect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance at all, and the sibling set contains several plausibly-confusable operations (placetel_cti_dial_digit, placetel_initiate_call, placetel_cti_answer). Nothing states the precondition that an active CTI session/device context is required before dialing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_cti_dial_digitDial digitC

Dial digit. (POST /cti/{mac}/dial_digit)

NameRequiredDescriptionDefault
macYesPath parameter mac.
lineYesBody field line (required).
digitYesBody field digit (required).
call_idYesBody field call_id (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, so the write/non-idempotent profile is covered. The description adds nothing beyond the endpoint path — no statement about the active call requirement, whether the call_id must reference a live call, or what happens if the call is gone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but only because it says almost nothing; the one added sentence is a raw HTTP route that an agent calling an MCP tool rarely needs. This is under-specification rather than disciplined concision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A CTI mutation with four required parameters and no output schema needs to explain the live-call precondition and the effect of dialing a digit; none of that is present. The annotations cover only the generic write profile, leaving the operational context missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all five parameters (including the response_format enum) are already documented in the schema. The description contributes nothing extra, which lands at the baseline of 3 for fully-covered schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name and title verbatim ("Dial digit") and appends only the raw HTTP route. It does not clarify what a 'digit' means in this CTI context or how it differs from the near-identical sibling placetel_cti_send_dtmf_digits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance at all. With siblings like placetel_cti_dial, placetel_cti_send_dtmf_digits, placetel_cti_start_transfer, and placetel_cti_answer in the same CTI family, the agent gets no signal about which one to pick for which in-call action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_cti_hangupHangupC

Hangup. (POST /cti/{mac}/hangup)

NameRequiredDescriptionDefault
macYesPath parameter mac.
lineYesBody field line (required).
call_idYesBody field call_id (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, destructive=false, idempotent=false and openWorld=true, so the description carries a reduced burden, but it adds nothing beyond the endpoint path. It does not disclose that this terminates an active call, whether it is safe to retry, or what happens if the call is already gone; no contradiction with the annotations, just no added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is extremely short and front-loads the verb, so nothing is padded. However, the only second sentence is the HTTP route, which is marginally useful to an agent and displaces information that would actually help (scope, effect, preconditions).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a state-changing telephony operation with three required identifiers and no output schema, the description should explain which call is ended and what the caller observes afterward. It supplies none of that, leaving the agent to infer behavior entirely from parameter names and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters, which sets the baseline at 3. The description contributes no extra meaning about mac/line/call_id beyond the schema's placeholder text, so it neither helps nor harms.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is the tool name/title repeated verbatim ('Hangup') plus the raw HTTP route. It does not say what is being hung up (a CTI call on a specific MAC/line) or how it differs from adjacent CTI siblings such as placetel_cti_decline or placetel_cti_complete_transfer, which an agent could easily confuse with ending a call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use, when-not-to-use, or prerequisite guidance. Nothing tells the agent that a call must already be established, that the mac/line/call_id must refer to the active CTI device, or why one would pick hangup over decline/complete_transfer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_cti_holdHoldC

Hold. (POST /cti/{mac}/hold)

NameRequiredDescriptionDefault
macYesPath parameter mac.
lineYesBody field line (required).
call_idYesBody field call_id (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a non-read-only, non-idempotent, non-destructive operation, but the description adds no behavioral context. It does not explain what happens to the call, whether hold is reversible, or any prerequisites such as an active call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but this is under-specification rather than useful conciseness. The endpoint path is the only extra detail, and it does not help an agent understand the action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a CTI action requiring mac, line, and call_id, the description does not provide enough context to invoke it confidently. The annotations and complete schema help, but the description itself is almost entirely absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema itself documents all four parameters. The description adds no parameter meaning beyond the schema, which is the baseline expectation when schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only restates the tool name/title as 'Hold' and adds the raw endpoint path. It does not explain that this places an active call on hold or distinguish it from related CTI actions like resume or hangup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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, when not to use it, or how it relates to alternatives such as placetel_cti_resume, placetel_cti_hangup, or placetel_cti_answer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_cti_resumeResumeC

Resume. (POST /cti/{mac}/resume)

NameRequiredDescriptionDefault
macYesPath parameter mac.
lineYesBody field line (required).
call_idYesBody field call_id (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=true, so the description carries a lower bar — yet it adds nothing about what state change occurs, what happens if no call is held, or whether the action is scoped to a live CTI session. The only extra information is the POST path, which is developer-facing rather than agent-facing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is two tokens long with zero waste, so it is not verbose, but the only content is a redundant verb and a REST path. Brevity here 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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent, open-world CTI mutation with three required parameters and no output schema, the description omits everything an agent needs to act safely: what is resumed, required call state, and error behavior. Annotations cover only part of the safety profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents mac, line, call_id and response_format; baseline 3 applies. The description adds no meaning beyond the schema — for example, whether line and call_id must match an active call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the tool name restated ('Resume') plus an HTTP path fragment. It never says what is being resumed — a held call, a paused line, a recording, or a queue — so an agent cannot distinguish this from siblings like placetel_cti_hold or placetel_cti_answer without guessing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use, when-not-to-use, or alternative is named. The most relevant sibling (placetel_cti_hold) is never referenced, and there is no statement of preconditions such as an existing held call on the given line.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_cti_send_dtmf_digitsSend DTMF DigitsC

Send DTMF Digits. (POST /cti/{mac}/send_dtmf_digits)

NameRequiredDescriptionDefault
macYesPath parameter mac.
digitsYesBody field digits (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the safety profile (readOnlyHint=false, idempotentHint=false, openWorldHint=true, destructiveHint=false), so the description should add what they cannot: the description instead just repeats the HTTP method and path. It says nothing about auth requirements, what happens on an invalid MAC or inactive call, 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short fragments with zero filler and the action front-loaded, so nothing is wasted. But it is under-specified rather than appropriately sized for a CTI mutation tool, which limits the value of the brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and for a stateful CTI action the description omits whether a call must be in progress, how digits are interpreted, and what a successful response looks like. Given the operation's complexity, the definition leaves meaningful gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so mac, digits, and response_format are all documented in the schema itself, which sets the baseline at 3. The description adds no syntax detail (e.g., allowed DTMF characters, length) but does not need to for basic invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ("Send DTMF Digits") plus the underlying HTTP path, which is more than a bare tautology. However, it gives no scope details and does nothing to distinguish it from the closely named sibling placetel_cti_dial_digit, leaving an agent to guess which digit-sending endpoint applies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus placetel_cti_dial_digit, on whether a call must already be active, or on any preconditions. The name only weakly implies context (sending tones mid-call), so the agent gets essentially no routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_cti_start_conferenceStart conferenceC

Start conference. (POST /cti/{mac}/start_conference)

NameRequiredDescriptionDefault
macYesPath parameter mac.
lineYesBody field line (required).
call_idYesBody field call_id (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false, so the safety profile is covered. The description adds nothing about live-call state requirements, whether an existing conference is replaced, or failure modes—real gaps for an operation that mutates an in-progress call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two fragments and no filler, so there is nothing to trim. Brevity here reflects under-specification rather than disciplined editing, but the structure is front-loaded and contains no noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and a call-state-mutating CTI action, the description should at minimum describe the live-call precondition and the resulting conference state. It supplies neither, leaving the agent with only the name, endpoint, and schema to work from.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so mac, line, call_id, and response_format are each documented in the schema; baseline 3 applies. The description contributes no extra meaning—it does not explain that mac identifies the device, line the extension, or call_id the active call to be conferenced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The body 'Start conference' is a verbatim restatement of the tool title, and the only other content is an HTTP route (POST /cti/{mac}/start_conference). It gives no indication of what a conference start does at the CTI layer—who is conferenced, on which call—nor how it differs from placetel_cti_complete_conference or placetel_cti_start_transfer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance: no statement that an active call is required, no mention of prerequisites such as a valid call_id, and no pointer to the sibling that completes or tears down the conference. The agent must infer the whole workflow 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.

placetel_cti_start_transferStart transferC

Start transfer. (POST /cti/{mac}/start_transfer)

NameRequiredDescriptionDefault
macYesPath parameter mac.
lineYesBody field line (required).
call_idYesBody field call_id (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint=false, idempotentHint=false, openWorldHint=true, destructiveHint=false, so the safety profile is known. The description adds nothing beyond that — no mention of side effects on the live call, required call state, or what happens to the existing call leg.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the brevity comes from omitting information rather than from efficiency: the only content beyond the name is an endpoint path, which is of little use to an agent choosing and invoking the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a stateful call-control action with no output schema and several closely related siblings, the description should explain the transfer sequence and effect. It provides none of that, leaving the agent to guess the workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (mac, line, call_id, response_format) is documented in the schema; the baseline of 3 applies. The description contributes no additional semantic detail about what 'line' identifies or the meaning of call_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name ('Start transfer') and appends only the raw HTTP endpoint '(POST /cti/{mac}/start_transfer)'. It does not explain what a 'transfer' means in this CTI context (e.g., starts a consultation/attended transfer of an active call to another line), so it barely exceeds tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus the very similar siblings placetel_cti_blind_transfer and placetel_cti_complete_transfer, nor any prerequisite (e.g., an active call_id). The agent must infer the two-step attended-transfer workflow on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_deactivate_numberDeactivate a numberC
DestructiveIdempotent

Deactivate a number. (DELETE /numbers/{id}/activation) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the description's 'Destructive' label adds no new behavioral insight. It does not explain what deactivation actually does to the number, whether it is reversible, what permissions are required, or what the response contains. The endpoint path is the only additional detail beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is short and front-loads the action, then adds the HTTP route and a safety label. It is efficient, though the 'Destructive' sentence largely duplicates annotation data and could have carried more useful context instead.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation on a phone number, the description is too thin: it does not state the operational effect of deactivation, any caveats, or what the caller receives. Annotations cover the safety profile and the schema documents parameters, but the description leaves important behavioral understanding missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the required 'id' and optional 'response_format' are already documented by the schema. The description adds no parameter-level meaning such as what the id refers to or how output format affects the response, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Deactivate a number') and includes the underlying HTTP endpoint, making the action concrete. It is distinguishable in practice from the sibling 'placetel_activate_number', although the description does not explicitly name that sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of reactivation or the related activate_number tool. The only implied usage comes from the tool name itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_delete_callDelete a callC
DestructiveIdempotent

Delete a call. (DELETE /calls/{id}) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false and openWorldHint=true, so "Destructive" merely echoes structured data and adds no value. The description does not say what is actually removed (call record, recording, CDR), whether the action is reversible, or what an error looks like for a bad id.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments with the action front-loaded and no wasted prose. The parenthetical endpoint and trailing fragment are slightly telegraphic rather than well-structured sentences, but nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter delete whose schema and annotations are complete, the definition is minimally sufficient to invoke correctly. It is still missing the practical context an agent needs for a destructive call-log operation: what is permanently lost and whether the id must be resolved first.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the id path parameter and the response_format enum are already documented in the schema. The description adds no extra meaning about the id (e.g. that it comes from placetel_list_calls), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Delete a call") plus the underlying endpoint DELETE /calls/{id}, which cleanly separates it from placetel_get_call and placetel_list_calls. It stops short of explicitly naming those siblings, so a 5 isn't warranted.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to delete a call versus retrieving or archiving it, no prerequisites (permissions, ownership), and no mention of consequences such as losing associated recordings or call detail records. The only hint, "Destructive", is a one-word warning rather than usable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_delete_contactDelete contactA
DestructiveIdempotent

Delete a contact by id. Destructive and irreversible.

NameRequiredDescriptionDefault
idYesThe contact id.

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states it is 'Destructive and irreversible,' which is largely redundant with the existing `destructiveHint: true` annotation. It does not disclose any further behavioral constraints like idempotency effects, rate limits, or required permissions not already defined in the structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is highly concise and efficient. Every sentence is essential, clearly defining the operation and its high-risk nature without unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the input is a single ID, the description adequately conveys the core logic and safety profile. It lacks detail on potential error states or specific success responses, but provides all critical information for a simple deletion operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the schema already fully defines the 'id' parameter. The description merely reinforces the fact that deletion relies on an ID, providing no additional semantic depth beyond what is provided in the schema and annotations. Baseline score for high coverage applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The tool name, title, and description clearly state the action (Delete) and the resource (contact). It explicitly mentions the method of operation ('by id'), distinguishing it from other potentially similar resource managers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While it clearly defines what the tool does, it offers no guidance on when to use it versus similar tools, such as `placetel_delete_user` or `placetel_delete_group`. The usage context is implied rather than explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_delete_faxDelete a faxC
DestructiveIdempotent

Delete a fax. (DELETE /faxes/{id}) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so 'Destructive.' merely repeats structured data. Nothing is added about what is actually removed (fax record vs. stored document), whether the deletion is reversible, or what permissions are required for a mutation with openWorldHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, front-loaded with the action and endpoint; no wasted prose. 'Destructive.' is redundant against the annotations, keeping it from a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter delete with full schema coverage, complete annotations, and no output schema, the description covers the essentials. It falls short on sourcing the id and on consequences of the destructive call, which an agent would want before invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters (id and response_format) are already documented in the schema. The description adds no meaning about the id's origin or the format toggle, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Delete a fax') plus the underlying endpoint (DELETE /faxes/{id}), which cleanly separates it from placetel_list_faxes, placetel_create_fax, and placetel_get_fax. It doesn't name siblings explicitly, but the operation is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus alternatives, no prerequisites, no note that the fax id must come from placetel_list_faxes or placetel_get_fax first. The only hint is the word 'Destructive', which signals caution 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.

placetel_delete_groupDelete a groupC
DestructiveIdempotent

Delete a group. (DELETE /groups/{id}) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so 'Destructive.' adds nothing beyond structured data. The description does not say what deletion removes (members, assignments, routing references), whether it is reversible, or what error occurs for a nonexistent or in-use group.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, front-loaded with the action and resource; nothing superfluous. It is arguably under-written rather than padded, but the sizing itself is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A simple two-parameter delete with no output schema and full annotation coverage, so the basics are present. However, for a destructive operation the description never explains the consequences of removal (side effects on group membership or dependent configuration) or failure modes, which an agent needs before invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (id, response_format) are documented there. The description only echoes the {id} path parameter from the endpoint string, adding no new meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Delete a group') and includes the underlying endpoint (DELETE /groups/{id}), which unambiguously separates it from placetel_get_group, placetel_update_group, placetel_list_groups and the many other delete_* siblings. It is not explicitly differentiated in prose, but the name and verb leave no ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to prefer this over alternatives (e.g. update_group to modify instead of remove), no prerequisites, and no mention of what must happen to group members first. The only guidance is the bare word 'Destructive.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_delete_number_profileDelete a profile for a numberC
DestructiveIdempotent

Delete a profile for a number. (DELETE /numbers/{number_id}/profiles/{id}) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
number_idYesPath parameter number_id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the description's single word 'Destructive' adds no new information. It does not say what is destroyed, whether it can be undone, or what happens to the number's routing/configuration afterwards — the meaningful gaps for a destructive mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler. Brevity is appropriate, though it borders on under-specification for a destructive operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, irreversible-looking delete with no output schema and only coarse annotations, the description omits prerequisites, side effects, and confirmation of what is removed. An agent has to guess at the blast radius before invoking it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameters are documented; the path template does clarify the roles of number_id (the number) versus id (the profile). Beyond that the description adds nothing to the schemas' minimal 'Path parameter id' text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Delete') and resource ('a profile for a number'), and the included REST path (DELETE /numbers/{number_id}/profiles/{id}) makes the object unambiguous against siblings like placetel_delete_provisioning or placetel_delete_routing_plan. It does not explicitly contrast with related siblings such as placetel_deactivate_number, but the resource is clear enough to select it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus alternatives (deactivate a profile, update a profile, or delete the number itself). The agent must infer that this permanently removes a per-number profile.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_delete_promptDelete a promptB
DestructiveIdempotent

Delete a prompt. (DELETE /prompts/{id}) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true, idempotentHint=true, openWorldHint=true, and readOnlyHint=false. The description only repeats "Destructive" and the endpoint, adding no context about what is removed, whether deletion is permanent, or any 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded: it states the action, endpoint, and destructive nature in three short fragments. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with rich annotations and full schema coverage, the description is largely complete. It could mention permanence or response behavior, but the annotations and schema carry most of the needed context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the id and response_format parameters are already documented in the schema. The description adds no parameter meaning beyond the endpoint path, which is the baseline expectation when the schema is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: "Delete a prompt," and includes the endpoint path. It is clear what the tool does, but it does not explicitly differentiate itself from sibling prompt tools such as get_prompt or update_prompt.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives, nor any prerequisites or warnings beyond the word "Destructive." An agent must infer usage from the name and annotations alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_delete_provisioningDelete a phone provisioningsC
DestructiveIdempotent

Delete a phone provisionings. (DELETE /provisionings/{id}) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, so the description's 'Destructive' adds nothing beyond structured data. It gives no extra behavior context such as irreversibility of the effect on the device, permission requirements, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, front-loaded with the action and endpoint; minimal waste. The trailing 'Destructive' is redundant with annotations but costs only one word.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-id delete with no output schema and full annotation coverage, the essentials are present. However, nothing is said about consequences (e.g., the device losing its configuration) or idempotent re-delete behavior, leaving a modest gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters (id and response_format) are documented in the schema, so the description adds nothing about the required id. Baseline 3 applies when the schema carries full parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (delete a provisioning) and includes the underlying endpoint DELETE /provisionings/{id}, so an agent can tell exactly which object is affected and distinguish it from placetel_get_provisioning or placetel_update_provisioning. The phrasing 'a phone provisionings' is grammatically rough but not ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus siblings such as placetel_update_provisioning or placetel_delete_provisioning_custom_configuration, and no prerequisites or warnings beyond the one-word 'Destructive'. Usage is only inferable from the name and verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_delete_provisioning_custom_configurationDelete a phone provisionings custom configuration keyB
DestructiveIdempotent

Delete a phone provisionings custom configuration key. (DELETE /provisionings/{id}/custom_configurations/{custom_configuration_id}) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
custom_configuration_idYesPath parameter custom_configuration_id.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false. The description merely repeats 'Destructive' and adds no context about permissions, permanence, side effects, or error behavior beyond what the annotations and schema already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the action and endpoint. The trailing 'Destructive' is redundant with annotations, but otherwise there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple destructive delete tool with full schema coverage and annotations covering safety and idempotency, the description provides enough to call the tool correctly. It could add more behavioral context, but nothing essential is missing given the structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters, including that id and custom_configuration_id are path parameters. The description adds the endpoint template but does not add meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: deleting a phone provisioning custom configuration key, with the exact REST path. It is clear enough to distinguish from sibling operations like upserting or listing custom configurations, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no when-to-use guidance, prerequisites, or alternatives. It only implies that the tool is used to remove a key, without clarifying when deletion is preferable to other operations or what conditions must hold.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_delete_recordingDelete a recordingC
DestructiveIdempotent

Delete a recording. (DELETE /recordings/{id}) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the description's 'Destructive' adds nothing new. The only extra detail is the REST path, with no information on permanence, whether the deletion can be undone, or what is actually removed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments with the action and warning front-loaded. 'Destructive' duplicates an annotation and the REST path is mechanical, so it is efficient but not maximally earned.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter delete with full schema coverage and annotations covering the safety profile, the definition is minimally viable. It still leaves out any note about scope (which recording belongs to which call) or irreversibility, which matters for a destructive operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, both the integer id and the response_format enum are fully documented in the schema. The description adds no parameter-specific meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Delete a recording') that cleanly separates it from list_recordings and get_recording. It is clear but offers no explicit differentiation from sibling delete operations like delete_fax or delete_call, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no indication of when to choose this tool over alternatives, no prerequisite or permission guidance, and no warning about consequences beyond the one-word 'Destructive'. 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.

placetel_delete_routingDelete a routing objectB
DestructiveIdempotent

Delete a routing object. (DELETE /routings/{number_or_id}) Destructive.

NameRequiredDescriptionDefault
number_or_idYesPath parameter number_or_id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description merely restates the critical hint provided in the annotations ('Destructive'). It does not add any unique behavioral context, such as specific failure modes, permissions required, or side effects beyond the deletion itself, which a mutation tool should detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is maximally concise, delivering the core action, resource, and impact (destructive) in a single, highly readable sentence that is front-loaded with the most critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 100% schema coverage and strong annotations, the description is sufficient for identifying the tool. However, its brevity prevents it from providing a complete picture of the process or required operational context for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the structure is well-defined. The description mentions 'number_or_id,' which is already explicit in the schema, thus providing only baseline value without adding deeper semantic meaning to the parameter's function.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Delete') and the resource ('routing object'). It further enhances clarity by including the specific HTTP method and endpoint structure (DELETE /routings/{number_or_id}), which distinguishes it from general routing tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides almost no guidance on when or why this tool should be used. While it labels the action as 'Destructive,' it fails to explain operational context or when it is necessary compared to other potential routing management tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_delete_routing_planDelete a routing planC
DestructiveIdempotent

Delete a routing plan. (DELETE /routing_plans/{id}) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false and openWorldHint=true, so "Destructive." merely restates structured data. It adds nothing an agent could not already read: no statement about what happens to routings attached to the plan, whether deletion is reversible, whether the plan must be empty first, or how a missing id behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, front-loaded with the action, with no filler prose. The one weak spot is that the trailing "Destructive." duplicates the annotation rather than earning its place with new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, open-world mutation with no output schema, an agent still lacks critical context: side effects on dependent routings, permission requirements, and failure behavior. The annotations cover the safety profile but the description leaves the operational picture thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the required id path parameter and the response_format enum are already documented in the schema. The description adds no semantics beyond that, which is the expected baseline 3 when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Delete a routing plan") and even names the underlying endpoint DELETE /routing_plans/{id}, which makes the object of deletion unambiguous among siblings like placetel_delete_routing or placetel_delete_routing_plan only by name. It stops short of explicitly contrasting with sibling delete tools, so a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use or when-not-to-use guidance and never mentions alternatives such as placetel_update_routing_plan (to modify instead of remove) or placetel_delete_routing (for a child routing rather than the plan itself). "Destructive" is a warning label, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_delete_sip_userDelete a sip userB
DestructiveIdempotent

Delete a sip user. (DELETE /sip_users/{id}) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, and the description's single word "Destructive" merely restates that rather than adding context. The endpoint path is mildly useful disclosure, but nothing is said about irreversibility, side effects on dependent objects (short codes, routing targets) or failure behavior when the id is unknown.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded verb+resource with the endpoint in parentheses and the risk note last; there is no filler. It is arguably over-terse for a destructive operation, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation with no output schema, the definition leaves important gaps: what a successful response looks like, what happens to dependent entities, and whether the operation is recoverable. The annotations carry the safety profile, but the description should still warn about consequences of an irreversible delete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the id and response_format parameters are already documented, including the enum for output format. The description adds no syntax, format or constraint detail beyond the schema, which is the expected baseline here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Delete a sip user") and adds the underlying endpoint DELETE /sip_users/{id}, so the agent knows exactly which object is removed and that it targets the sip_users collection rather than generic users. It does not explicitly contrast with sibling placetel_delete_user, but the name and path make the distinction inferable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus alternatives such as placetel_delete_user, or when deletion is inappropriate (e.g., deactivate instead). No prerequisites, no preconditions (does the sip user need to exist, must related short codes be removed first).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_delete_sip_user_short_codeDelete short codeC
DestructiveIdempotent

Delete short code. (DELETE /sip_users/{id}/short_codes/{code_id}) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
code_idYesPath parameter code_id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the trailing 'Destructive.' merely repeats structured data rather than adding context. The description adds only the HTTP endpoint, and says nothing about irreversibility, required scope, or error behavior for a non-existent code.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short and front-loaded with the action first. The redundant 'Destructive.' is minor waste but nothing hinders comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation, annotations carry the safety profile and the schema is fully described, so the basics are covered. It still lacks confirmation of side effects or failure conditions an agent might need before invoking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents id, code_id, and response_format. The description adds no semantics beyond the schema, which is the expected baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Delete short code') and the HTTP path scopes it to a short code under a SIP user, distinguishing it from the sibling list/create short code tools. However, it does not explicitly name the sibling alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus placetel_list_sip_user_short_codes or placetel_create_sip_user_short_code, and no prerequisites (e.g., the short code must exist, needed permissions) are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_delete_subscriptionDelete a subscriptionC
DestructiveIdempotent

Delete a subscription. (DELETE /subscriptions/{id}) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the trailing 'Destructive.' merely restates structured data. The description adds nothing new: not whether the deletion is permanent, whether it takes effect immediately, whether the subscription can be recreated with the same target, or what happens on 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, front-loaded with the action; nothing bloated. The parenthetical endpoint is mildly useful for API-literate agents, though 'Destructive.' is a redundant word already covered by annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-required-param delete with no output schema, this covers the mechanics. However, it never explains what a 'subscription' is in this API (webhook/event subscription) or what state the caller is left in after deletion, which matters for a destructive mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both parameters, so the baseline is 3. The description does not clarify what 'id' identifies (webhook subscription vs. another subscription type) or whether response_format affects the delete confirmation, adding no meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb + resource ("Delete a subscription") plus the underlying REST endpoint (DELETE /subscriptions/{id}), which makes it trivially distinguishable from placetel_add_subscription and placetel_list_subscriptions. It stops short of explicitly naming those siblings, so not a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this versus list/add subscription, no prerequisites (e.g. whether the subscription must be paused first), and no warning about irreversibility beyond the single word 'Destructive.' The agent must infer all usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_delete_userDelete a subuserB
DestructiveIdempotent

Delete a subuser. (DELETE /users/{id}) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=false→destructiveHint=true, idempotentHint=true and openWorldHint=true, so the description's single word "Destructive" merely restates the annotation. It does add the DELETE /users/{id} routing detail, but discloses nothing about what happens to the user's numbers, devices, or voicemail, or whether the deletion can be undone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, front-loaded with the action and no filler. Slightly penalized because the trailing "Destructive." duplicates the annotation rather than adding information the agent did not already have.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a destructive mutation with no output schema, and the description says nothing about side effects, cascading effects on related resources, or recoverability. For an irreversible operation in a large sibling set, that is a substantial omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are documented in structured fields and the baseline of 3 applies. The description only echoes the path template {id} and adds no disambiguation about which identifier namespace the id belongs to, which matters given the many delete_* siblings.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

A specific verb plus resource ("Delete a subuser") with the underlying REST endpoint noted. It is clear what is being removed, though the description never explains how a 'subuser' differs from the sip_user, webex_user, or group deletion siblings present in the tool list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no condition for when to use this instead of placetel_delete_sip_user, placetel_delete_webex_user, or an alternative like deactivating the account. There is also no prerequisite or warning about confirming intent before an irreversible removal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_delete_webex_userDelete a Webex userB
DestructiveIdempotent

Delete a Webex user. (DELETE /webex/users/{id}) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=true, so restating "Destructive" adds no information. The description does not say whether deletion is permanent or reversible, what happens to the user's licenses, numbers, or Webex workspace membership, or whether an error is returned for unknown ids.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, purpose front-loaded, endpoint and risk flag trailing. Zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation with no output schema, the essentials (what tool does, that it is destructive) are present, but the agent gets no information on side effects, failure modes, or the id's origin. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are documented in the schema and the baseline is 3. The description adds nothing about the id parameter, leaving ambiguity about whether it is the Webex user id or the PlacETel user id, and says nothing about response_format choice.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Delete a Webex user") and pins the underlying endpoint DELETE /webex/users/{id}, which distinguishes it from the sibling placetel_delete_user and placetel_delete_sip_user. No explicit sibling differentiation in prose, but the resource noun does the work.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus the other delete tools (user, sip user, contact) and no preconditions such as required permissions or what must be cleaned up first (licenses, numbers). The lone signal is the adjective "Destructive."

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_disconnect_microsoft_teams_userDisconnect userC
DestructiveIdempotent

Disconnect user. (DELETE /microsoft_teams/users/{sip_user_id}) Destructive.

NameRequiredDescriptionDefault
sip_user_idYesPath parameter sip_user_id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, and the description's 'Destructive' merely restates them. The endpoint path adds modest context (this is a DELETE on a Teams user), but it says nothing about whether the underlying SIP user is deleted or merely unlinked, or whether the action 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, front-loaded with the action and immediately followed by the route and safety note. No wasted text, though terseness edges into under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations cover the destructive/idempotent profile and the schema covers both parameters, so the essentials are present. Still, for a destructive mutation with no output schema, the description omits what state change actually occurs (unlink integration vs delete the SIP user) and what the response confirms.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema documents both sip_user_id and response_format with an enum, so the baseline of 3 applies. The description's endpoint path shows sip_user_id is a path parameter but adds nothing about its semantics or the format parameter's effect.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'disconnect' plus the endpoint path (DELETE /microsoft_teams/users/{sip_user_id}) identifies the resource as a Microsoft Teams user in Placitel's integration, which is clearer than the bare title. However, 'Disconnect user' alone is vague and it never distinguishes itself from siblings like placetel_import_microsoft_teams_user, placetel_sync_microsoft_teams_user, or placetel_delete_webex_user.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus the sibling import/sync/list Microsoft Teams tools, nor any prerequisites or exclusions. The agent must infer that 'disconnect' removes a Teams user's integration from context alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_ai_statusAI integration statusC
Read-onlyIdempotent

AI integration status. (GET /ai/status) Read-only.

NameRequiredDescriptionDefault
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The 'Read-only' tag merely restates readOnlyHint=true and adds nothing beyond the annotations, which already declare readOnly, idempotent, openWorld, and non-destructive. No added context about what the status object contains, whether an unconfigured integration returns an error or empty result, or any auth/scope requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short fragments, front-loaded and waste-free. The endpoint parenthetical is marginally useful for traceability but is not agent-relevant; nothing is bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-param read with full annotation coverage, the safety profile is clear. But there is no output schema, so the description is the only place an agent could learn what the 'status' response conveys — and it says nothing about that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one optional parameter (response_format) with an enum and 100% schema description coverage, so the schema fully documents it. The description adds no meaning beyond the schema, which is the expected baseline here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (AI integration status) and exposes the underlying endpoint (GET /ai/status), which implies a read. However, it largely restates the tool title verbatim and gives no indication of what 'status' covers (connected/disconnected, provider, last sync) or how it differs from sibling integration tools like placetel_get_microsoft_teams_integration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus alternatives, no prerequisites, and no exclusions. With dozens of sibling getters in the namespace, the agent is left to infer selection 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.

placetel_get_callRetrieve a callC
Read-onlyIdempotent

Retrieve a call. (GET /calls/{id}) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the trailing "Read-only." adds nothing beyond structured data. The description gives no additional behavioral context such as what a call record contains, whether it requires a specific permission/scope, or what happens for a non-existent id.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, front-loaded with the action and immediately followed by the endpoint; nothing bloated. The only waste is the redundant "Read-only" which restates the annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-id tool with no output schema and full parameter documentation, the description is minimally sufficient to invoke correctly. It stops short of describing the returned call object or error behavior, which an agent would want for a single-resource fetch.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the enum for response_format is fully documented in the schema, so the baseline of 3 applies. The description adds no semantics about the id format or how response_format changes behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb+resource combination ("Retrieve a call") plus the endpoint path (GET /calls/{id}) makes clear this fetches a single call record by identifier. It does not, however, distinguish itself from siblings like placetel_list_calls or placetel_list_call_detail_records, so an agent must infer the singular-vs-list split from the tool name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus placetel_list_calls (find a call) or the CTI/call-center siblings. Usage is only implied by the singular resource name and the {id} path template.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_contactGet contactB
Read-onlyIdempotent

Retrieve a single contact by its numeric id. Read-only.

NameRequiredDescriptionDefault
idYesThe contact id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so 'Read-only' merely repeats structured data. Nothing is added about failure behavior for a missing/invalid id, permission requirements, or openWorld implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero filler, and the operation and its key constraint are front-loaded before the safety note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-record getter with full schema coverage and rich annotations, the description is nearly sufficient. The main residual gap is that, with no output schema, it says nothing about what a contact record contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are documented in the schema; the description's 'numeric id' phrasing reinforces the id type but adds no format, range, or lookup guidance. The response_format enum is covered only by the schema, which is acceptable at this coverage level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Retrieve a single contact') and disambiguates from list_contacts by saying 'single contact' and from the delete/update siblings by naming the retrieval semantics. It stops short of explicitly naming the sibling alternatives, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'by its numeric id' implies the precondition (you must already know the id), which suggests using list_contacts to discover it first, but the description never says this. There are no explicit when-to-use/when-not statements or named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_cti_configGet config paramsC
Read-onlyIdempotent

Get config params. (GET /cti/{mac}) Read-only.

NameRequiredDescriptionDefault
macYesPath parameter mac.
paramsNoQuery params.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description's "Read-only" simply restates that. Beyond annotations it adds only the raw endpoint path, with no information about what is returned, whether auth/device state is required, or what happens if the MAC is unknown. With annotations carrying the safety profile, this adds little.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the core action front-loaded and zero filler. It is efficient, though the terseness borders on under-specification rather than disciplined brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should at minimum indicate what configuration data comes back or its shape; it says nothing. For a read tool with three parameters, an ambiguous "params" argument, and no return-value guidance, an agent is left guessing about the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no meaning beyond the schema, and notably does not clarify the ambiguous "params" query parameter (schema only says "Query params."), which is exactly the kind of gap prose could fill.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says "Get config params" and gives the endpoint GET /cti/{mac}, which together imply fetching CTI configuration for a device identified by MAC. But "config params" is vague about what configuration is being read, and the only differentiation from the sibling placetel_set_cti_config is the implicit read/write split. It is minimally identifiable but not specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this versus placetel_set_cti_config or any other CTI tool, and no prerequisites or context described. The agent must infer that this reads while set_cti_config writes, which is left to the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_faxFetch specific faxB
Read-onlyIdempotent

Fetch specific fax. (GET /faxes/{id}) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is fully covered. The description's 'Read-only' merely repeats the annotation and adds no new behavioral context such as auth needs or error behavior, though the HTTP path is a small useful detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with the resource action front-loaded and the path endpoint appended. It is efficient, though 'Read-only' is mildly redundant against the annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-record read with rich annotations, full schema coverage, and no output schema, this is nearly complete. Return values need not be explained, and the only minor gap is the lack of guidance on obtaining the id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the 'id' path parameter and the 'response_format' enum are already documented. The description adds nothing beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (fetch) and resource (fax), scoped to a single fax via the '/faxes/{id}' path. This distinguishes it from list_faxes, create_fax, and delete_fax, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance. The implication is that you call it when you have an id, but no alternative (e.g. list_faxes to discover ids) is named or ruled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_groupFetch a groupB
Read-onlyIdempotent

Fetch a group. (GET /groups/{id}) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered by structured data. The description's "Read-only" largely restates readOnlyHint; the endpoint mapping is the only mildly additive context, and nothing is said about what a missing id returns 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short clauses with the core action front-loaded and no filler. It is efficient, though the terseness borders on under-specification rather than deliberate economy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple single-record read with full annotation coverage and complete schema descriptions, and no output schema exists so return value explanation is not required. The definition is sufficient to call it correctly, though a note on missing-id behavior or the response_format default would round it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both 'id' and 'response_format' fully documented including the enum values, so the schema carries the parameter burden. The description adds only the path-template notation showing id is a path parameter, which the schema already implies. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Fetch a group") and identifies the underlying endpoint GET /groups/{id}, making clear this retrieves a single group by id rather than listing. It does not explicitly differentiate itself from siblings like placetel_list_groups or placetel_get_site, but the singular resource plus path template is unambiguous 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.

Usage Guidelines2/5

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 placetel_list_groups for enumeration or placetel_update_group for mutation. The agent must infer usage entirely from the verb and the endpoint template.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_meMeC
Read-onlyIdempotent

Me. (GET /me) Read-only.

NameRequiredDescriptionDefault
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description's 'Read-only' merely repeats one annotation and adds no further behavioral context such as what identity data is returned or any auth assumptions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded with the endpoint. It is efficient, though its brevity contributes to under-specification rather than helpful conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only identity endpoint, annotations cover safety and the schema covers the lone parameter, but the description omits the essential purpose: returning the current authenticated user's information. That gap makes it hard to select confidently against sibling user tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the single response_format parameter is already fully documented. The description adds no parameter meaning, but the baseline is 3 when the schema carries the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description essentially restates the title 'Me' and adds only the HTTP endpoint (GET /me). It does not state in plain language that this retrieves the currently authenticated user/account, leaving the agent to infer the resource and operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus siblings such as placetel_get_user or placetel_list_users. The agent must infer that this is for the current identity rather than an arbitrary user lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_microsoft_teams_integrationIntegrationC
Read-onlyIdempotent

Integration. (GET /microsoft_teams/integration) Read-only.

NameRequiredDescriptionDefault
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so 'Read-only' in the description is a redundant restatement that adds no context. Nothing is disclosed about what the integration object contains, whether it can return an unconfigured/empty state, or any auth scoping needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loads the endpoint path, but the leading fragment 'Integration.' merely duplicates the title and earns no place. The brevity comes at the cost of substance rather than from disciplined editing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with no output schema, the description should at least hint at what the Microsoft Teams integration payload represents (connected tenant, sync status, configuration). As written, an agent knows only that it is a GET, leaving a real gap on return semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one optional parameter (response_format) with 100% schema description coverage including allowed enum values and defaults. The description says nothing about it, but the schema fully carries the semantics, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description reduces to the resource word 'Integration' plus an HTTP endpoint hint '(GET /microsoft_teams/integration)'. The verb is only inferable from the GET method rather than stated, and the title is a pure restatement. It identifies the resource but does not differentiate this from sibling Microsoft Teams tools such as list_microsoft_teams_users or import_microsoft_teams_user beyond name inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus the many sibling microsoft_teams_* tools, no prerequisites, and no exclusions. The agent must infer from the tool name alone that this retrieves account-level integration configuration rather than user data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_numberRetrieve a numberC
Read-onlyIdempotent

Retrieve a number. (GET /numbers/{id}) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint, so "Read-only" is redundant restatement rather than added value. Nothing is said about what the returned number object contains, whether the id must be an internal id versus a phone number, or what happens on 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments with no padding, and the verb is front-loaded. However the parenthetical HTTP path is of marginal value to an agent and the space saved comes at the cost of under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple two-parameter read with no output schema, so the description carried the burden of explaining the shape of a "number" resource and did not. Combined with a crowded sibling set that includes listing, activating and deactivating numbers, the definition is too thin to guide correct invocation confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both id and response_format, hitting the baseline of 3. The description adds nothing further, notably leaving unresolved whether the integer `id` is the internal record id or a dialable number.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Retrieve a number" gives a verb and a resource, and the endpoint path confirms it is a single-resource fetch. But "number" is ambiguous (telephone number object vs. numeric value) and the description does nothing to separate it from siblings like placetel_list_numbers or placetel_activate_number.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus placetel_list_numbers (list) or placetel_activate_number / deactivate_number. The agent must infer from the name alone that this is the single-id lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_promptRetrieve a promptC
Read-onlyIdempotent

Retrieve a prompt. (GET /prompts/{id}) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, and the description's only behavioral content ("Read-only") merely restates that. It says nothing about error behavior for a missing id, permissions, or the shape/nature of the returned prompt, so it adds no value beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short fragments, front-loaded with the action. Efficient, though the trailing "Read-only" duplicates the annotations rather than earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description is the only place an agent could learn what a prompt object contains (name, text, type, timestamps) and what markdown vs json returns. It provides none of that, leaving the return value entirely opaque for a retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including a documented enum for response_format, so the schema carries the parameter burden. The description adds no meaning beyond it (e.g., whether id is a numeric prompt id or what markdown vs json actually changes), which is the baseline case for full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Retrieve a prompt") and pins it to the upstream endpoint GET /prompts/{id}, so an agent knows this fetches a single prompt by identifier. It does not explicitly contrast with placetel_list_prompts or placetel_update_prompt, but the singular resource plus path is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus placetel_list_prompts (discovery) or the other prompt CRUD siblings. The agent must infer that an id is needed and that listing comes first; nothing in the text says so.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_provisioningRetrieve a phone provisioningsB
Read-onlyIdempotent

Retrieve a phone provisionings. (GET /provisionings/{id}) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, and the description merely restates "Read-only", adding no information the agent doesn't already have structurally. It says nothing about what a provisioning record contains, what a missing/invalid ID returns (404), or any auth/scope requirement — for a GET-by-ID tool with no output schema, that is the useful context that is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded fragments with the resource and endpoint first; the agent gets the essentials immediately. The trailing "Read-only." is pure duplication of readOnlyHint and is the only wasted content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-by-ID tool with full schema coverage and four annotations, the core need-to-call information is present. But with no output schema, the description never indicates what a provisioning object represents or returns, leaving the agent unable to judge whether the result answers its question.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both `id` (path parameter) and `response_format` (markdown/json enum, default markdown). The description adds no meaning beyond that, which is acceptable but earns only the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ("Retrieve") plus the resource ("phone provisioning") and pins the exact endpoint (GET /provisionings/{id}), which clearly distinguishes it from placetel_list_provisionings, create, update and delete. The only defect is the ungrammatical phrasing ("a phone provisionings"), which slightly muddies an otherwise unambiguous purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the `{id}` path and the singular resource signal 'fetch one item by ID', so an agent can infer it is not the list call and not a mutation. However, nothing states when to prefer this over listing provisionings or what to do if the ID is unknown, and no prerequisites are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_provisioning_custom_configurationsRetrieve a phone provisionings custom configurationsC
Read-onlyIdempotent

Retrieve a phone provisionings custom configurations. (GET /provisionings/{id}/custom_configurations) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so 'Read-only' in the description is pure repetition and adds no value. Nothing is said about whether an empty result is an error, whether the payload is paginated, or what the configuration objects contain — the actual behavioral questions an agent would have.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the operation and no wasted preamble. The trailing 'Read-only.' is redundant with the annotations but costs little.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description is the only place return shape could be conveyed; the plural 'configurations' hints at a collection but nothing more is said about structure or emptiness. For a simple, fully documented GET this is marginally adequate, but it leaves the return contract unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with only two parameters, including an enumerated response_format, so the schema carries the semantics. The description adds nothing about the id path parameter (e.g. whether it is the provisioning ID from placetel_list_provisionings), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (Retrieve) and resource (a provisioning's custom configurations), so the purpose is discernible. However, it is a verbatim restatement of the title plus an HTTP path, and it does nothing to distinguish this read from the closely named siblings placetel_get_provisioning, placetel_upsert_provisioning_custom_configuration, and placetel_delete_provisioning_custom_configuration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus placetel_get_provisioning (which may already embed configurations) or the upsert/delete variants on the same sub-resource. 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.

placetel_get_recordingFetch specific recordingC
Read-onlyIdempotent

Fetch specific recording. (GET /recordings/{id}) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, destructiveHint, and openWorldHint, and the description repeats 'Read-only' rather than adding new behavioral context. The endpoint path is useful but not a behavioral trait; auth requirements, error behavior, and return characteristics 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise and front-loaded, with the core action stated first. The redundant 'Read-only' phrase slightly weakens it, but there is no wasted exposition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only GET by id, the definition is mostly complete because annotations cover safety and the schema covers parameters. However, it does not explain what a recording fetch returns or when to choose this tool over listing recordings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the required id path parameter and the response_format enum. The description adds only the endpoint pattern GET /recordings/{id}, which lightly reinforces the id parameter but does not add meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: fetching a specific recording, reinforced by the GET /recordings/{id} endpoint. It is clearly not a list or delete operation, 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.

Usage Guidelines2/5

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 placetel_list_recordings or other recording-related siblings. The only contextual clue is that it fetches a specific recording by id, but no alternatives or preconditions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_routingRetrieve routingC
Read-onlyIdempotent

Retrieve routing. (GET /routings/{number_or_id}) Read-only.

NameRequiredDescriptionDefault
number_or_idYesPath parameter number_or_id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the phrase 'Read-only' adds nothing beyond structured data. The description omits anything about lookup failure (e.g. unknown number_or_id), permissions, or what a routing 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, which is good, but the second sentence merely echoes annotation data ('Read-only') rather than earning its place with useful detail. Brevity here reflects under-specification rather than efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should explain what a routing record is and what a successful or failed lookup returns; it does neither. For a simple two-parameter GET tool it is callable, but an agent still cannot predict the response shape or error behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (number_or_id, response_format) are documented in the schema, so the baseline of 3 applies. The description contributes only the URL template showing number_or_id as a path segment, which is marginal value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Retrieve routing' essentially restates the tool name and title with no added specificity, and it never distinguishes this single-routing fetch from siblings such as placetel_list_routings, placetel_get_routing_plan, or placetel_update_routing. Only the appended endpoint path hints at the resource addressed by number_or_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus placetel_list_routings (or the routing-plan variants), and no preconditions or exclusions are stated. An 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.

placetel_get_routing_planGet a routing planC
Read-onlyIdempotent

Get a routing plan. (GET /routing_plans/{id}) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the description's 'Read-only' is a restatement rather than added value. It says nothing about failure behavior (e.g., unknown id), permissions, or what a returned routing plan contains, which is the context that would actually help beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, front-loaded with the action and resource, with no filler. The endpoint parenthetical is of marginal utility but does serve as a compact REST-semantics hint, so the terseness reads as efficient rather than padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read with full schema coverage and complete annotations, the essentials are covered. Because there is no output schema, the description could have said what a routing plan object contains, and it omits any mention of the response_format choice's effect, leaving a modest gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both the id path parameter and the response_format enum fully documented in the schema, so the baseline of 3 applies. The description adds no semantics about id format or when to prefer json over markdown output.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource ('Get a routing plan') and pins it to a concrete endpoint (GET /routing_plans/{id}), so there is no ambiguity about what is retrieved. It does not, however, distinguish this from close siblings such as placetel_list_routing_plans, placetel_get_routing, or placetel_simulate_routing_plan, leaving the agent to infer the boundary 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage signal is 'Read-only', which describes the operation's nature rather than when to choose it. There is no statement of when to use this versus listing routing plans, fetching a routing, or simulating a routing plan, and no mention of prerequisites such as needing a valid plan id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_sim_cardRetrieve a SIM cardC
Read-onlyIdempotent

Retrieve a SIM card. (GET /sim_cards/{id}) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, and the description merely restates 'Read-only,' adding no new behavioral context. It does note the underlying GET endpoint, but says nothing about error behavior, missing IDs, or lookup scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three terse fragments with the resource stated first and no filler; size is well matched to a trivial getter. It borders on under-specification rather than being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with rich annotations and a fully documented schema, the essentials are present. However, with no output schema, the description never indicates what a SIM card record contains, leaving the return shape entirely unknown.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters (id and response_format, including the markdown/json enum) are fully documented in the schema. The description adds no meaning beyond that, which is the expected baseline when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Retrieve a SIM card') and identifies the endpoint, so the agent knows exactly what it fetches. It does not explicitly distinguish itself from the sibling placetel_list_sim_cards, relying on singular/plural inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus placetel_list_sim_cards or other retrieval tools, and no mention of prerequisites or when this would be the wrong choice. The agent must infer usage purely 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.

placetel_get_sip_userFetch a sip userC
Read-onlyIdempotent

Fetch a sip user. (GET /sip_users/{id}) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so 'Read-only' merely restates structured data. The description adds no behavioral context such as what happens when the id does not exist, whether the resource is scoped to the caller's account, or any 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short and front-loaded with the action and resource, plus the endpoint in parentheses. There is minor waste in repeating 'Read-only' after the annotations already say so, but nothing is confusing or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read tool with full schema coverage and annotations, this is largely sufficient to invoke correctly. However, with no output schema present, the description could have said what a fetched sip user record contains, and it omits error behavior for an unknown id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the id path parameter and the response_format enum (markdown vs json) are both documented in the schema, including the default. The description contributes nothing extra about parameter meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (fetch) and resource (sip user) and includes the underlying endpoint GET /sip_users/{id}, making it clearly a single-resource read. It does not explicitly distinguish itself from siblings like placetel_list_sip_users or placetel_get_user, but the singular 'a sip user' plus the {id} path implies the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus placetel_list_sip_users (to discover ids) or the related placetel_update_sip_user / placetel_delete_sip_user. The only hint is the word 'Read-only', which is implied usage at best, not an explicit routing statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_siteRetrieve a siteC
Read-onlyIdempotent

Retrieve a site. (GET /sites/{id}) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true. The description's 'Read-only' simply repeats this and adds no extra behavioral context such as authentication needs, error behavior when the ID does not exist, or what happens with unknown IDs. For a read tool with full annotation coverage, it is consistent but adds almost nothing beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded, but 'Read-only.' is redundant with the annotation and the parenthetical endpoint adds little beyond the tool name and schema. It is not verbose, but it is under-specified rather than efficiently complete.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read tool with full schema coverage and rich annotations, the description is minimally adequate. However, it does not mention where site IDs come from (e.g., placetel_list_sites) or what the returned 'site' represents, leaving useful context absent. Since there is no output schema, some return-value framing could have helped.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both the id path parameter and the response_format enum fully documented in the schema. The description adds no parameter-level meaning beyond the schema; baseline 3 applies because the schema already carries the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Retrieve a site', with the endpoint GET /sites/{id}. This is clear enough to distinguish from broader listing tools at a conceptual level, but it does not explicitly reference the sibling placetel_list_sites or explain why an agent would choose this single-site retrieval over that listing tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives such as placetel_list_sites. The description only implies usage by including the path /sites/{id}, leaving the agent to infer that this requires a known site ID and should be used for single-record lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_userFetch user by IDC
Read-onlyIdempotent

Fetch user by ID. (GET /users/{id}) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the appended 'Read-only' adds nothing structured data doesn't already say. Nothing is disclosed about auth requirements, behavior on a missing/invalid ID, or error semantics — the real gaps for a lookup tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, front-loaded with the purpose, with zero padding. The parenthetical endpoint and 'Read-only' are slightly redundant against the annotations but cost almost nothing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A simple single-ID read with rich annotations and a fully documented schema, so the essentials are covered. However, with no output schema, the description never hints at what a 'user' record contains, leaving the agent unable to predict the response shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including the enum for response_format, so the schema carries parameter meaning. The description adds no additional detail on what 'id' refers to (internal user ID vs. SIP/Webex ID) or how response_format changes output.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Fetch user by ID') and even pins the underlying endpoint (GET /users/{id}). It is clear what the tool does, but with siblings like placetel_get_sip_user, placetel_get_webex_user, placetel_get_me and placetel_list_users, it never clarifies which kind of 'user' this returns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus placetel_list_users (to find an ID) or placetel_get_me (for the caller's own record). The agent is left to infer routing from the name alone, and 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.

placetel_get_webex_number_fax_settingsFetch fax settings for a numberC
Read-onlyIdempotent

Fetch fax settings for a number. (GET /webex/numbers/{number_or_id}/fax_settings) Read-only.

NameRequiredDescriptionDefault
number_or_idYesPath parameter number_or_id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint. The description only repeats 'Read-only' and adds the endpoint path, providing almost no behavioral context beyond what the annotations already cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, with no wasted sentences. The first clause largely repeats the title, but the endpoint and read-only note are compactly presented.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read with complete schema coverage and rich annotations, the description is minimally sufficient. It does not explain what the fax settings contain or how to interpret an unconfigured number, but the core invocation requirements are covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameter semantics are already fully documented. The description's endpoint template confirms number_or_id is a path parameter, but adds no further meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: fetch fax settings for a number, and includes the underlying endpoint. It does not distinguish itself from the related configure/remove fax-settings siblings, but the purpose is otherwise clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use or when-not-to-use guidance. An agent must infer from the tool name that this is the read counterpart to configure/remove operations, with no stated conditions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_webex_user_licenseFetch Webex license for userC
Read-onlyIdempotent

Fetch Webex license for user. (GET /webex/users/{id}/license) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the "Read-only." sentence simply repeats structured data. The only additional signal is the endpoint path (GET /webex/users/{id}/license); nothing is said about error behavior for non-Webex users, rate limits, or what "license" data is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, front-loaded with purpose then endpoint then safety, with no filler. It is lean to the point of being terse, but nothing is wasted or buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only GET with fully documented parameters and no output schema, this is minimally sufficient — an agent could call it correctly. What's missing is sibling routing guidance against the two other Webex license tools on the same resource, which is the main way a caller could pick wrong.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both parameters (id as path parameter, response_format enum with default markdown), so the schema carries the burden. The description adds no meaning about the id's required format (Plaćetel vs Webex user identity) or when to choose json over markdown, which is the one place it could have helped.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description essentially restates the tool title ("Fetch Webex license for user"), adding only the REST endpoint path. The verb/resource are specific enough that an agent knows what it retrieves, but there is no differentiation from the license-mutating siblings (placetel_assign_webex_user_license, placetel_update_webex_user_license), which matters here because all three operate on the same user license resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this read versus the assign/update license siblings, and no stated prerequisites (e.g., a valid Webex-enabled user id). The agent must infer that "fetch" means read-only retrieval 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.

placetel_get_webex_user_numbersFetch numbers for userB
Read-onlyIdempotent

Fetch numbers for user. (GET /webex/users/{id}/numbers) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered; 'Read-only' in the description largely repeats this. The description does add the underlying endpoint path (GET /webex/users/{id}/numbers), which is modest extra context but not rich behavioral detail like pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short and front-loaded, with the action and endpoint stated immediately and no wasted prose. The telegraphic fragments are efficient, though slightly under-specified rather than padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with full schema coverage and rich annotations, the core is present. The main gap is the absence of sibling differentiation (especially versus update_webex_user_numbers), which leaves the agent to infer the read/write boundary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all four parameters including the enum for response_format. The description adds no parameter-level meaning beyond the schema, which is the expected baseline when the schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Fetch) and resource (numbers for a webex user), which an agent can distinguish from most siblings. However, it does not explicitly differentiate from the closely-related write sibling placetel_update_webex_user_numbers, so the read/write split is only implied by 'Read-only'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this versus alternatives such as placetel_update_webex_user_numbers or placetel_get_webex_user_license. The agent must infer usage entirely from the name and the 'Read-only' tag.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_get_webex_workspaceFetch a single Webex workspaceC
Read-onlyIdempotent

Fetch a single Webex workspace. (GET /webex/workspaces/{id}) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the trailing 'Read-only.' repeats structured data rather than adding to it. Beyond the redundant HTTP path, the description says nothing about not-found behavior, permissions, or what a workspace 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short fragments, front-loaded with the purpose. The '(GET /webex/workspaces/{id})' and 'Read-only.' clauses are near-redundant but cost little.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-resource read with rich annotations and a fully described schema, the minimum is met without an output schema. However, nothing tells the agent what identifier source to use or how missing workspaces surface, which a slightly longer description could cover.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, including an enum for response_format, so the schema carries the parameter burden and the baseline of 3 applies. The description adds no meaning about the id parameter (e.g., that it is a Webex workspace id) or format selection.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Fetch a single Webex workspace'), and the word 'single' implicitly contrasts with the sibling list_webex_workspaces. It does not name the sibling or clarify what a workspace is, so it stops short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus placetel_list_webex_workspaces or other Webex tools, and no prerequisites such as where the workspace id comes from. 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.

placetel_import_microsoft_teams_userImport userC

Import user. (POST /microsoft_teams/users)

NameRequiredDescriptionDefault
ms_uuidYesBody field ms_uuid (required).
sip_user_idYesBody field sip_user_id (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false and destructiveHint=false, so the safety profile is covered. The description adds nothing beyond them: it does not say whether re-importing the same user errors or overwrites, whether an existing mapping is replaced, or what happens to data on conflict — exactly the behavioral detail a non-idempotent write needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and has no padding, but that is under-specification rather than economy. The bare verb phrase is front-loaded, yet the only substantive content is the endpoint in parentheses, which does little work for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent mutation that links a Microsoft Teams identity to a Placatel SIP user, with no output schema to explain results, the description leaves the agent without prerequisites, side effects, or success/failure semantics. It is not complete enough to call safely without opening the schema and guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all three parameters documented, so the schema carries parameter meaning. The description contributes nothing about ms_uuid (Teams user UUID) or sip_user_id (which SIP user to bind), but with full schema coverage the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Import user" restates the tool name and title verbatim; the only extra information is the endpoint path "(POST /microsoft_teams/users)", which hints at resource scope but never explains what importing actually does (create a mapping? link a SIP user to a Teams UUID?). It does not distinguish this from siblings like placetel_sync_microsoft_teams_user or placetel_list_microsoft_teams_users.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and crucially no disambiguation from placetel_sync_microsoft_teams_user, placetel_disconnect_microsoft_teams_user, or placetel_list_microsoft_teams_users, all of which operate on the same resource. An agent must guess which Teams-user operation is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_initiate_callInitiate a callC

Initiate a call. (POST /calls)

NameRequiredDescriptionDefault
sipuidYesBody field sipuid (required).
targetYesBody field target (required).
from_nameNoBody field from_name.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, openWorld=true, idempotent=false, destructive=false, so the safety profile is covered structurally. The description adds nothing beyond the endpoint path — no word on side effects (a real outbound call is placed), auth/permission needs, failure modes, or that repeated calls create distinct calls since it is non-idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short and front-loaded, but the single substantive addition "(POST /calls)" is an implementation detail of limited value to an agent choosing a tool. Brevity here reflects under-specification rather than disciplined economy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent, open-world mutation that places a real phone call, with no output schema, the description should explain what the call does and what comes back. None of that is present, so the definition is not complete enough to invoke confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so sipuid, target, from_name and response_format are already documented in the schema, establishing the baseline of 3. The description contributes no additional meaning about what sipuid or target identify in the context of dialing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ("Initiate a call") and adds only the HTTP endpoint "(POST /calls)". It gives no indication of what distinguishes this from siblings such as placetel_cti_dial or placetel_list_calls, so an agent cannot tell which call-creating tool to pick.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus the many call-related siblings (cti_dial, cti_answer, list_calls, get_call), nor any prerequisites such as needing a registered SIP user. Use 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.

placetel_list_call_center_agentsFetch all call center agentsB
Read-onlyIdempotent

Fetch all call center agents. (GET /call_center_agents) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the 'Read-only' sentence is largely redundant. The only added signal is the raw HTTP endpoint, which is mildly useful for API-literate agents. Nothing about pagination behavior, rate limits, or the shape of returned agents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments with the purpose front-loaded and zero filler. It is terse to the point of under-specification, but every sentence is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-param read-only list tool with rich annotations and a fully documented schema, this is mostly adequate. However, with no output schema the description says nothing about what an agent record contains, and it omits any pagination or result-set expectation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so page, per_page and response_format are fully documented in the schema, including the enum and the 'not honored by every endpoint' caveat. The description adds no parameter meaning beyond that, which is acceptable at this coverage level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Fetch') and resource ('all call center agents') and pins the underlying endpoint (GET /call_center_agents). An agent can distinguish it from create/update_call_center_agent by the 'all' scope, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus sibling listing tools (list_call_center_queues, list_call_center_calls) or versus the create/update agent tools. No mention of pagination strategy even though page/per_page exist and per_page is only partially honored.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_call_center_callsFetch all call center callsC
Read-onlyIdempotent

Fetch all call center calls. (GET /call_center_calls) Read-only.

NameRequiredDescriptionDefault
dateNoQuery date.
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
queue_idsNoQuery queue_ids.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so 'Read-only' is a restatement rather than added context. The only genuine addition is the HTTP endpoint path; nothing is said about pagination behavior, filtering semantics, or volume of results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action, with no filler prose. The redundant 'Read-only' clause is mild waste that duplicates the annotations rather than informing the agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has five optional params and no output schema, and the description never explains what a call record contains or how this listing differs from placetel_list_calls. An agent cannot confidently choose this tool or predict its results from the definition alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters (date, page, per_page, queue_ids, response_format) are already documented and the baseline of 3 applies. The description adds no meaning beyond the schema, not even clarifying what queue_ids accepts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb plus a distinct resource ('call center calls'), which is separable from the general placetel_list_calls and placetel_list_call_detail_records siblings. It stops short of explicitly contrasting itself with those siblings, so it lands just below the top score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use context, no prerequisites, and never names an alternative such as placetel_list_calls or placetel_pick_call_center_call. The agent is left to infer from the name alone which call-listing tool to pick.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_call_center_queuesFetch all call center queuesA
Read-onlyIdempotent

Fetch all call center queues. (GET /call_center_queues) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reiterates that the operation is 'Read-only' and provides the HTTP endpoint. Since annotations already provide comprehensive safety context (readOnlyHint, destructiveHint), the description adds minimal new behavioral information beyond redundancy.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is highly concise, front-loading the core purpose while providing essential context (the GET endpoint) in a single, effective statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It is minimally complete. Given the presence of pagination parameters, the description could benefit from noting that these parameters control the volume of the returned list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since the schema coverage is 100%, the schema already defines all parameters (`page`, `per_page`, `response_format`) adequately. The description provides no value that isn't present in the structured data, meeting the minimum viability score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the function (Fetch) and the resource (call center queues). This is unambiguous and distinguishes it from creation or detail retrieval tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While it doesn't explicitly mention how to handle filtering or errors, the name 'list' implies the intended use case. It is clear that this tool is used to retrieve the catalog of existing queues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_call_detail_recordsGet call detail recordsC
Read-onlyIdempotent

Get call detail records. (GET /call_detail_records) Read-only.

NameRequiredDescriptionDefault
dateNoQuery date.
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description repeats "Read-only" and adds the REST path, but does not disclose pagination behavior, date filtering semantics, return volume, or any operational caveats beyond structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very compact and front-loaded: purpose, endpoint, and read-only status. No filler, though the brevity contributes to missing usage and behavioral detail elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list endpoint with full schema and rich annotations, the definition is minimally adequate. However, with no output schema and no explanation of returned records or how this differs from sibling call-listing tools, it leaves meaningful gaps for an agent selecting and invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents date, page, per_page, and response_format. The description adds no parameter meaning beyond what the schema provides, which meets the baseline for full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: "Get call detail records," and adds the underlying endpoint. It does not distinguish this from sibling call-listing tools such as placetel_list_calls or placetel_list_call_center_calls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no guidance on when to use this tool instead of alternatives. The description does not mention the call_detail_records scope versus generic calls or call center calls, so 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.

placetel_list_callsFetch all incoming callsC
Read-onlyIdempotent

Fetch all incoming calls. (GET /calls) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
orderNoQuery order.
per_pageNoItems per page (max 100). Not honored by every endpoint.
filter_dateNoQuery filter[date].
filter_typeNoQuery filter[type].
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
filter_to_numberNoQuery filter[to_number].
filter_from_numberNoQuery filter[from_number].

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true. The description only repeats 'Read-only' and the endpoint path, adding no further behavioral context such as pagination behavior, filter scope, or result ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core action. The endpoint and 'Read-only' notes are compact, though 'Read-only' is redundant with the annotation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Rich annotations and full schema coverage cover the safety profile and parameters. However, the description does not mention pagination, filtering, or result shape, and there is no output schema to compensate, so it is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all eight parameters are already documented in the input schema. The description adds no additional parameter semantics, which is acceptable at baseline when the schema is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Fetch all incoming calls', plus the endpoint path. It does not explicitly distinguish this from sibling list tools such as placetel_list_call_detail_records or placetel_list_call_center_calls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description merely says it fetches all incoming calls, leaving the agent 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.

placetel_list_contactsList contactsA
Read-onlyIdempotent

Fetch all contacts of the Placetel account. Supports field filters, number search and pagination. Read-only.

Returns a list of contact objects (id, first_name, last_name, company, phone/mobile numbers, email, tags, ...).

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
filter_emailNoFilter by email (filter[email]).
search_numberNoSearch by phone number (search[number]).
filter_blockedNoFilter by blocked flag (filter[blocked]).
filter_companyNoFilter by company (filter[company]).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
filter_last_nameNoFilter by last name (filter[last_name]).
filter_first_nameNoFilter by first name (filter[first_name]).

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the explicit "Read-only" sentence is largely redundant. The description does add value beyond annotations by sketching the returned contact fields (id, name, company, numbers, email, tags), which matters because no output schema exists, but it omits pagination defaults, total-count behavior and any 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, with the core purpose front-loaded and the return shape second. The only wasted material is the "Read-only." fragment, which duplicates an annotation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 0 required parameters, full schema documentation and no output schema, an agent has what it needs: purpose, capability categories and a partial field list are all present. A complete definition would have enumerated the available filters and clarified whether response_format changes the returned shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the 9 parameters is already self-documented, including the filter[x]/search[number] naming conventions and the per_page caveat. The description only restates the capability categories (filters, number search, pagination) at a higher level, adding little beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Fetch all contacts of the Placetel account" states a specific verb and resource, and the filter/search/pagination clause clarifies the listing scope. It does not explicitly distinguish itself from placetel_get_contact (single contact) or placetel_create_contact, so sibling differentiation is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a bulk-retrieval use case by mentioning filters, number search and pagination, which lets an agent infer it is for listing rather than fetching one record. However, it never names placetel_get_contact or placetel_create_contact as alternatives, nor states any when-not conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_devicesFetch all devicesC
Read-onlyIdempotent

Fetch all devices. (GET /devices) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so "Read-only" is pure repetition. The only added fact is the endpoint path GET /devices, which does not tell the agent anything about result volume, pagination behavior, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, front-loaded with the action and resource. It is efficient but wastes a clause restating the read-only annotation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should say what a device record looks like or at least what fields come back, and it does not. For a fetch-all tool that may return large paged collections, the absence of any result-shape or volume context leaves a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all three parameters (page, per_page, response_format) are fully documented, including the enum and the note that per_page is not honored by every endpoint. The description adds nothing beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Fetch all devices") with an explicit scope of 'all' and the underlying endpoint GET /devices. It doesn't need sibling differentiation because no other tool in the list deals with devices, though it never clarifies what a 'device' is in Placetel terms (phones, SIMs, provisionings).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus alternatives, no preconditions, and no note about pagination or filtering limits. The agent is left to 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.

placetel_list_faxesFetch in- and outbound faxesB
Read-onlyIdempotent

Fetch in- and outbound faxes. (GET /faxes) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
orderNoQuery order.
per_pageNoItems per page (max 100). Not honored by every endpoint.
filter_typeNoQuery filter[type].
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
filter_to_numberNoQuery filter[to_number].
filter_from_numberNoQuery filter[from_number].

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the 'Read-only' line mostly restates structured data. The endpoint reference (GET /faxes) adds a small amount of context, but nothing is said about pagination behavior, default ordering, or result volume.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short clauses, front-loaded with the operation, no filler. It is perhaps too terse — the 'Read-only' clause is redundant given annotations — but there is no wasted verbiage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter list tool with no output schema, the description is minimally adequate: the agent knows it lists faxes and is read-only, and the schema covers parameters. It omits pagination/return-shape expectations and any disambiguation from sibling fax tools, so it is complete but thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all seven parameters (page, per_page, order, filters, response_format) are already documented in the schema. The description contributes nothing parameter-specific, which is acceptable at baseline 3 but adds no extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (fetch) and resource (in- and outbound faxes), plus the underlying endpoint GET /faxes. It's clear this is the list operation versus siblings like placetel_get_fax, placetel_create_fax, and placetel_delete_fax, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus placetel_get_fax (single) or the other fax tools. The 'in- and outbound' phrase hints at scope, but there are no exclusions, prerequisites, or alternative routing, leaving the agent to infer selection 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.

placetel_list_groupsFetch all groupsC
Read-onlyIdempotent

Fetch all groups. (GET /groups) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
filter_nameNoQuery filter[name].
filter_typeNoQuery filter[type].
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
filter_descriptionNoQuery filter[description].

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the description's 'Read-only' statement is redundant. It adds the endpoint path (GET /groups), which is slightly useful context, but discloses nothing about pagination, filtering, or result structure beyond what annotations and schema already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short and front-loaded, with no wasted prose. It is telegraphic but efficient; a brief mention of filtering capability would have improved it without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given full schema coverage, annotations covering the safety profile, and no required parameters, the description is adequate. However, it omits mention of pagination and filtering capabilities, and the absence of an output schema means it could say more about what a group listing contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters (page, per_page, filter_name, filter_type, filter_description, response_format) are fully documented in the schema. The description adds no additional parameter meaning, which is acceptable given full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Fetch') and resource ('all groups'), making the listing operation clear. It does not explicitly differentiate from sibling tools like placetel_get_group, though 'all groups' implies a list vs. single-fetch distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives such as placetel_get_group or when filtering is appropriate. 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.

placetel_list_microsoft_teams_usersFetch all usersC
Read-onlyIdempotent

Fetch all users. (GET /microsoft_teams/users) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
filter_sync_statusNoQuery filter[sync_status].

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the description's 'Read-only' sentence merely repeats structured data. It adds nothing about pagination behavior (schema warns per_page is 'not honored by every endpoint'), result size, or the meaning of filter_sync_status.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded, but the second half ('Read-only') is redundant with annotations and the terse framing leaves the tool under-identified. Short is not the same as efficient here.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list endpoint with an unfiltered-by-default behavior and a sync_status filter, the description omits what is returned, how paging behaves, and how the result differs from other user lists. With no output schema, that burden should fall on the description and doesn't.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented, including the response_format enum and the per_page caveat. The description adds no parameter meaning, which is acceptable at the baseline but is not value-add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'Fetch all' with the endpoint '(GET /microsoft_teams/users)' identifies the resource, but the prose itself says only 'all users', which is ambiguous against siblings placetel_list_users and placetel_list_webex_users. An agent must read the parenthetical URL to know which user collection is meant.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no mention of the sibling Microsoft Teams tools (import/sync/disconnect) or of list_users/list_webex_users as alternatives. The agent gets no criteria for choosing this tool over near-identical list endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_number_profilesList profiles for a numberC
Read-onlyIdempotent

List profiles for a number. (GET /numbers/{number_id}/profiles) Read-only.

NameRequiredDescriptionDefault
number_idYesPath parameter number_id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false. The description mostly repeats 'Read-only' and adds only the HTTP path, without explaining return behavior, pagination, permissions, or profile contents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences and front-loads the action and resource. It contains no wasted text, though it is terse enough that some useful context is omitted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with a fully described schema and safety annotations, the description is minimally adequate. However, it does not clarify what profile data is returned or whether results are paginated, and no output schema is available to compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters are fully documented in the schema, including the response_format enum. The description adds no additional parameter semantics beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific verb 'List' and resource 'profiles' scoped to a number, plus the underlying endpoint. This clearly distinguishes it from the create/activate/delete number profile siblings, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to choose this tool over related tools such as get_number, list_numbers, or the number profile mutation tools. 'Read-only' implies safe usage but does not provide selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_numbersGet all numbersC
Read-onlyIdempotent

Get all numbers. (GET /numbers) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
filter_nameNoQuery filter[name].
filter_numberNoQuery filter[number].
filter_prefixNoQuery filter[prefix].
filter_site_idNoQuery filter[site_id].
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
filter_activatedNoQuery filter[activated].
filter_descriptionNoQuery filter[description].

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so "Read-only" merely repeats structured data. Beyond the HTTP route (GET /numbers) the description adds nothing — no mention of pagination behavior, filter interaction, or result ordering, even though page/per_page exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two terse sentences, front-loaded and free of padding. The only near-waste is "Read-only", which duplicates the annotation rather than adding new information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nine-parameter listing endpoint with no output schema, the description should explain what a "number" record contains, how paging behaves (the schema itself warns per_page is not honored by every endpoint), and how results can be filtered. None of that is present, leaving the agent under-informed about invocation behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all nine parameters (paging plus seven filter[...] fields) are documented in the schema itself. The description contributes no additional meaning about how filters combine or whether per_page is honored, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Get all numbers") and the plural scope distinguishes it from the singular placetel_get_number sibling. However, it does not explicitly name any sibling or clarify how it differs from placetel_list_number_profiles or placetel_get_number.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of alternatives among the many number-related siblings (activate_number, deactivate_number, get_number, list_number_profiles). The agent must infer that this is the bulk-listing endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_promptsFetch all promptsC
Read-onlyIdempotent

Fetch all prompts. (GET /prompts) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
filter_nameNoQuery filter[name].
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
filter_descriptionNoQuery filter[description].

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=true, so 'Read-only' merely restates structured data. The only added value is the HTTP route mapping; nothing is said about pagination behavior, filter semantics, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments with the core purpose front-loaded and no filler. It is terse rather than verbose, though the brevity borders on under-specification rather than sharply earned concision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a fully documented schema and rich annotations, the definition is functional: an agent can call it correctly. However, for a paginated filtered list endpoint nothing tells the agent about default page size, total counts, or when to prefer json output, leaving gaps the schema cannot fill.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters (page, per_page, filter_name, filter_description, response_format) are already documented, establishing a baseline of 3. The description adds no meaning beyond the schema, such as filter matching behavior or how pagination interacts with the filters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Fetch all prompts" gives a clear verb and resource, and the GET /prompts route confirms it is a collection read. Combined with the name placetel_list_prompts it is distinguishable from placetel_get_prompt/create_prompt, though the description never explicitly says 'list, not single-record fetch'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus placetel_get_prompt or placetel_list_prompts alternatives, nor any prerequisites or filter guidance. Usage is only inferable from 'all prompts'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_provisioningsGet all phone provisioningsC
Read-onlyIdempotent

Get all phone provisionings. (GET /provisionings) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
searchNoQuery search.
per_pageNoItems per page (max 100). Not honored by every endpoint.
webuser_idNoQuery webuser_id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, and the description's only behavioral claim ('Read-only') merely restates them. Nothing is added about pagination behavior, total counts, how the search/webuser_id filters combine, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short clauses with the resource front-loaded and no filler. The trailing 'Read-only' is redundant with annotations but costs little.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description could reasonably say what a returned provisioning looks like or how results are paginated, but it does not. For a simple zero-required-param list endpoint this is adequate but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level insight (e.g. how search interacts with webuser_id, or pagination defaults) beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get all phone provisionings') and even pins the underlying endpoint (GET /provisionings), which clearly separates it from the singular sibling placetel_get_provisioning. The scope word 'all' signals a list operation, though it does not explicitly name the sibling it differs from.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this list endpoint versus placetel_get_provisioning, nor any prerequisites or exclusion conditions. An agent must infer usage purely from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_recordingsFetch call recordingsC
Read-onlyIdempotent

Fetch call recordings. (GET /recordings) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
orderNoQuery order.
per_pageNoItems per page (max 100). Not honored by every endpoint.
filter_toNoQuery filter[to].
filter_dateNoQuery filter[date].
filter_fromNoQuery filter[from].
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
filter_directionNoQuery filter[direction].

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so 'Read-only' merely repeats structured data. The description says nothing about pagination behavior, filter semantics, or that per_page is not honored by every endpoint — the kind of context that would actually help an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short segments, front-loaded with the purpose, no filler. It is efficient, though the terseness borders on under-specification rather than crisp conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With eight parameters, no output schema, and filter parameters whose semantics (filter_from/to/date/direction) are opaque, the description does far too little. An agent gets no hint about pagination, date filtering behavior, or what a recording record contains before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all eight parameters are documented in the schema (page, order, per_page, filter_* fields, response_format). The description adds no parameter meaning beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Fetch call recordings') and gives the underlying endpoint GET /recordings, so an agent knows this is a list-style read. It does not, however, distinguish itself from close siblings like get_recording or list_call_detail_records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus get_recording for a single item or list_call_detail_records. The agent must infer usage purely from the tool name and plural resource.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_routing_plan_routingsGet a routing plans objectsC
Read-onlyIdempotent

Get a routing plans objects. (GET /routing_plans/{id}/routings) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the HTTP method context (GET) and a simple 'Read-only' label. However, these behavioral traits are already extensively covered by the provided annotations (readOnlyHint, destructiveHint: false), so it adds minimal unique behavioral value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is concise, but the phrasing is grammatically weak ('Get a routing plans objects'). While it front-loads the intent, the low quality of the prose prevents a higher score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is clearly a read operation against a specific ID, and the schema is complete for defining the call. However, the description lacks the specific context (e.g., 'list all routings contained in this plan') that would make the definition truly robust.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema coverage is 100%, meaning the input fields (id and response_format) are fully documented. The description adds no semantic meaning beyond what the schema already provides, thus meeting the baseline score for full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the resource (routing plans objects) and the action (Get), but the wording is vague. It relies heavily on the tool name to differentiate it from other routing list tools, rather than defining the hierarchical relationship (routings *within* a plan).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus simply listing all routings, or getting a whole routing plan. It offers no explicit alternatives or conditions for use beyond the technical nature of the GET request.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_routing_plansGet all routing plansA
Read-onlyIdempotent

Get all routing plans. (GET /routing_plans) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds functional context (HTTP method and 'Read-only') which complements the `readOnlyHint` annotation. However, since the safety and behavioral profile is already largely covered by the hints, the description adds minimal novel behavioral information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is maximally concise, efficiently conveying the core function and constraints (read-only) in a single, direct sentence. There is no filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 100% schema coverage and strong read-only annotations, the tool is functionally complete. A perfect score might require briefly mentioning pagination behavior, but for a basic list tool, it is highly sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning all parameters (page, per_page, response_format) are fully defined within the input schema. The description adds no unique meaning or context to the parameters themselves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get all') and the resource ('routing plans'). This is easily distinguishable from sibling functions like 'get_routing_plan' (singular) or 'create_routing_plan' (creation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tool lacks explicit guidance on when to use it versus the singular fetch tools available in the sibling list. While the function name implies listing, it doesn't tell the AI if this is the preferred method for discovery or if there are known limitations regarding total plan count or filtering.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_routingsGet all routingsC
Read-onlyIdempotent

Get all routings. (GET /routings) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
filter_updated_at_gteNoQuery filter[updated_at_gte].
filter_updated_at_lteNoQuery filter[updated_at_lte].

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the appended "Read-only." adds no new information. The only added context is the HTTP verb/path mapping; nothing is said about pagination behavior, the fact that per_page is not honored everywhere, or result ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler. The size is appropriate, though the terseness shades into under-specification rather than disciplined concision given the tool's sibling ambiguity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a fully documented schema, zero required parameters and annotations covering the safety profile, the description is minimally sufficient to invoke the tool. It is incomplete in that it never clarifies the scope of "all routings" relative to routing-plan routings, which is the main ambiguity an agent would face.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters (page, per_page, response_format, and both updated_at filters) are already documented in the schema. The description contributes nothing beyond that, which is the baseline case for full-coverage schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Get all routings") plus the underlying endpoint GET /routings, so the operation itself is unambiguous. However, it does not distinguish this from close siblings such as placetel_list_routing_plan_routings or placetel_get_routing, leaving the agent to infer that this is the flat, account-wide routing list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus placetel_list_routing_plan_routings (routings scoped to one plan) or placetel_get_routing (single record). No prerequisites, no exclusions, no mention of how the updated_at filters should be applied to narrow results.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_sim_cardsFetch all SIM cardsB
Read-onlyIdempotent

Fetch all SIM cards. (GET /sim_cards) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
filter_statusNoQuery filter[status].
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, destructiveHint and openWorldHint, so the trailing "Read-only" mostly repeats structured data; the endpoint path (GET /sim_cards) adds marginal tracing value. The description says nothing about pagination behavior or the caveat that per_page is not honored by every endpoint, which is genuinely useful behavioral context that only the schema hints at.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and scope. It is efficient almost to a fault — the "Read-only" clause duplicates annotations rather than earning its place, but nothing is bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterized list endpoint with no output schema, the definition is minimally adequate: safety profile comes from annotations and parameters from the schema. It does not explain pagination semantics (how to iterate pages, what per_page limitation means in practice), which is the main gap for a paged listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (page, per_page, filter_status, response_format) are already documented with bounds, defaults and enums. The description adds no parameter guidance of its own, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ("Fetch") and resource ("SIM cards") and the plural scope implies enumeration, which implicitly separates it from the singular sibling placetel_get_sim_card. However, it does not name or contrast with that sibling explicitly, leaving the distinction to inference from the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus placetel_get_sim_card, nor any prerequisite or context guidance. A caller must infer from the name alone that this is the bulk-listing variant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_sip_usersFetch all sip usersB
Read-onlyIdempotent

Fetch all sip users. (GET /sip_users) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
filter_didNoQuery filter[did].
filter_nameNoQuery filter[name].
filter_usernameNoQuery filter[username].
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
filter_descriptionNoQuery filter[description].

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, and the description's 'Read-only' merely restates that. The endpoint path (GET /sip_users) is minor added context, but pagination behavior, whether filters combine, and default result size are left undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments with zero waste; the resource is front-loaded and the endpoint/read-only metadata follows.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A list endpoint with seven optional parameters and no output schema needs at least a note on pagination and filtering behavior; the description provides none. Annotations carry the safety profile and the schema carries parameter meaning, so the remaining gap is moderate rather than critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all seven parameters (page, per_page, four filters, response_format) are already documented in the schema. The description adds nothing about filter semantics or the caveat that per_page is not honored by every endpoint, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Fetch all sip users') and the plural 'all' implicitly distinguishes it from the sibling placetel_get_sip_user. It stops short of explicitly naming that sibling or the related create/update/delete SIP user tools it should not 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus placetel_get_sip_user (single record) or when a filtered list is preferable. 'Read-only' is the only contextual signal, and it is already conveyed by annotations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_sip_user_short_codesShort codesC
Read-onlyIdempotent

Short codes. (GET /sip_users/{id}/short_codes) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description's only behavioral claim, 'Read-only', duplicates the annotation and adds no context about authentication, pagination, rate limits, or what is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loads the resource and endpoint. However, the fragment 'Short codes.' carries little information and 'Read-only.' merely repeats the annotation, so it is concise but not maximally informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list endpoint with fully documented parameters and annotations covering safety, the description is minimally adequate. It still omits an explicit statement that the id refers to a SIP user and that the tool returns that user's short codes, which would remove ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters (id and response_format) are documented in the schema, including the response format enum. The description adds no parameter meaning beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is largely a restatement of the title/name ('Short codes') and does not explicitly state the verb 'list'. The parenthetical endpoint (GET /sip_users/{id}/short_codes) does clarify the resource and retrieval method, so an agent can infer this lists short codes for a SIP user, but the purpose is not stated in plain language.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as placetel_create_sip_user_short_code or placetel_delete_sip_user_short_code. The only usage cue is 'Read-only', which is insufficient to route between sibling short-code operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_sitesGet all sitesC
Read-onlyIdempotent

Get all sites. (GET /sites) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description's 'Read-only' restates structured data rather than adding context. It says nothing about pagination behavior, result completeness, or what the response contains beyond the bare GET /sites path.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, front-loaded with the action and scope, with no filler. It is efficient, though the telegraphic style edges toward under-specification rather than genuine conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paginated list endpoint with page and per_page parameters, the description never indicates whether results are paginated, how large the default page is, or whether the list can be treated as complete. With no output schema to explain the return shape, these gaps are left entirely to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with page, per_page, and response_format all documented in the schema itself. The description adds no parameter-level meaning, which is acceptable given the schema does the work, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get all sites'), and the endpoint path reinforces it. However, it does not distinguish itself from the sibling placetel_get_site, so an agent must infer that this is the list variant 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.

Usage Guidelines2/5

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 placetel_get_site (single site) or other list endpoints, and no mention of prerequisites or filtering options. The agent gets a verb and nothing about selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_subscriptionsList subscriptionsC
Read-onlyIdempotent

List subscriptions. (GET /subscriptions) Read-only.

NameRequiredDescriptionDefault
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so "Read-only" merely restates structured data. The description adds only the raw endpoint path and omits behavioral traits an agent would want, such as pagination, rate limits, or scope of results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three very short fragments, front-loaded with the action, with no filler. It is efficient, though the endpoint parenthetical contributes little to an agent's decision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-required-parameter list tool this is close to adequate, but with no output schema the description should hint at what is returned (fields, pagination, or result shape). As written, the agent knows it lists subscriptions but nothing about the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one optional parameter exists and schema description coverage is 100%, with the enum values for response_format fully documented in the schema. The description adds nothing beyond that, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("List subscriptions"), which is immediately distinguishable from the sibling write operations add_subscription and delete_subscription by name. It stops short of describing what a subscription is or what the listing contains, so it is clear but not maximally informative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus alternatives, no prerequisite notes, and no indication of whether listing requires account-level permissions. The only context is the HTTP endpoint, which does not help an agent decide between tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_usersFetch all usersC
Read-onlyIdempotent

Fetch all users. (GET /users) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
filter_typeNoQuery filter[type].
filter_emailNoQuery filter[email].
filter_loginNoQuery filter[login].
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
filter_last_nameNoQuery filter[last_name].
filter_first_nameNoQuery filter[first_name].

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so "Read-only" in the description is pure repetition of structured data. The only genuinely added detail is the HTTP path, and nothing is said about pagination behavior, the fact that per_page is not honored by every endpoint, or how filters interact – context an agent calling this tool would actually need.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments, front-loaded with the action and resource. Tighter than most, though the trailing "Read-only" earns nothing given the annotations and could be dropped.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Eight optional parameters, no output schema, and rich annotations mean the safety profile is covered, but the description leaves out pagination expectations and the fact that results can be narrowed by filters – an agent reading only the description would not know this is a paginated, filterable list. Adequate as a minimum-viable definition, not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for all eight parameters, including page/per_page semantics and the note that per_page is not honored everywhere, so the schema carries parameter meaning. The description adds nothing about the filter_* parameters or the markdown-vs-json default, which is acceptable at baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Fetch all users") and adds the underlying endpoint (GET /users), which lets an agent distinguish it from placetel_get_user, placetel_create_user, and placetel_list_sip_users. The only weakness is that "all users" reads as unfiltered even though the schema exposes six filter parameters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this over placetel_get_user (single user) or placetel_list_sip_users (a similarly-named sibling that could easily be confused with it). A "list all users in the account" framing is implied by the verb, but nothing states prerequisites, when filtering is preferable, or 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.

placetel_list_webex_usersFetch all Webex usersC
Read-onlyIdempotent

Fetch all Webex users. (GET /webex/users) Read-only.

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
per_pageNoItems per page (max 100). Not honored by every endpoint.
filter_loginNoQuery filter[login].
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
filter_last_nameNoQuery filter[last_name].
filter_first_nameNoQuery filter[first_name].

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true. The description repeats 'Read-only' and gives the endpoint path but adds no further behavioral context such as pagination behavior, filtering semantics, or what the response contains. With annotations carrying the safety profile, this is thin added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded, with no wasted prose. The endpoint path is mildly useful and the brevity suits a simple list operation, though the extreme sparseness borders on under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with full schema coverage and rich annotations, the description is minimally adequate. However, it does not clarify whether the result is paginated, how filters combine, or what shape the output takes, and there is no output schema to cover those gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters are already documented in the schema, including page, per_page, filters, and response_format. The description adds no parameter-level meaning beyond the schema, which meets the baseline of 3 when structured data does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Fetch all Webex users') and includes the underlying endpoint, which makes the purpose clear. It does not explicitly differentiate from close siblings like placetel_list_users or placetel_list_webex_workspaces, but the Webex-user scope is unambiguous from the name and description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, nor any mention of prerequisites, filtering behavior, or pagination constraints. The agent must infer usage entirely from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_list_webex_workspacesList all Webex workspacesB
Read-onlyIdempotent

List all Webex workspaces. (GET /webex/workspaces) Read-only.

NameRequiredDescriptionDefault
display_nameNoQuery display_name.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so 'Read-only' is largely redundant. The endpoint hint adds minor context, but nothing is said about pagination, result size, or filtering behavior beyond what annotations cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short clauses, front-loaded with the action. The trailing 'Read-only' duplicates the annotation and could be cut, but the size is otherwise appropriate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read-only list tool with annotations and no output schema, the description is minimally sufficient but omits the existence of a display_name filter and any return-shape expectations, which an agent would want.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented, giving baseline 3. The description adds nothing about the display_name filter or the response_format choice.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List all Webex workspaces') that unambiguously separates it from placetel_get_webex_workspace and placetel_create_webex_workspace. The endpoint reference adds no ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to use this versus the sibling get_webex_workspace for a single workspace, nor any prerequisite. Usage is only inferable from the verb 'List'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_pick_call_center_callPick a call center callC

Pick a call center call. (POST /call_center_calls/{id}/{pick})

NameRequiredDescriptionDefault
idYesPath parameter id.
pickYesPath parameter pick.
sipuidYesBody field sipuid (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds only the raw HTTP route (POST /call_center_calls/{id}/{pick}), which merely confirms it is a mutation; it says nothing about side effects on the call, whether it can fail if already picked, or what state changes result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with nothing wasted; the purpose and the REST mapping are front-loaded. It is under-specified rather than bloated, which is a completeness problem rather than a structural one.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent, open-world mutation with three required parameters, the definition leaves too much unexplained: what 'pick' does to the call, who is allowed to pick, and what happens on repeat invocation. Annotations carry the safety hints, but the semantic gap around the core action remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description's path template implies id and pick are path parameters and sipuid is a body field, but that is already stated in the schema; it adds no meaning to what 'pick' as an integer actually encodes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb ('Pick') and a resource ('call center call'), so the general domain is clear, but 'pick' is undefined jargon that an agent cannot confidently interpret (answer? claim? select from queue?). It does not distinguish this from siblings such as placetel_cti_answer or placetel_list_call_center_calls, and the sentence largely restates the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this instead of placetel_cti_answer, placetel_initiate_call, or the call-center listing tools. No preconditions (must an agent be assigned, must the call be queued) are mentioned, leaving selection entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_reconfigure_provisioningTrigger reconfiguration of a phoneC

Trigger reconfiguration of a phone. (POST /provisionings/{id}/reconfigure)

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-read-only, non-idempotent, open-world, non-destructive, so the safety profile is known. The description adds no behavior beyond the endpoint: whether reconfiguration is asynchronous, whether the device reboots or loses service, whether repeated calls are harmful, or whether permissions beyond the id are needed is all unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded fragments with no filler. The endpoint parenthetical is of marginal value but is cheap and confirms the REST mapping.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a non-idempotent mutation with no output schema, and the description says nothing about the result, timing, or side effects on the physical phone. For an action that likely triggers device-side changes, that leaves the agent without enough to call it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (id, response_format) are already documented in the schema. The description contributes nothing beyond that, which is the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb+resource ('Trigger reconfiguration of a phone') and adds the underlying endpoint, so the action is identifiable. However, it is essentially a restatement of the title with no differentiation from nearby siblings such as placetel_update_provisioning or placetel_get_provisioning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when this should be used instead of updating a provisioning record, what state the phone must be in, or what happens afterward. The agent gets no routing guidance among the ~15 provisioning-related siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_remove_webex_number_fax_settingsRemove the fax configuration from a numberA
DestructiveIdempotent

Remove the fax configuration from a number. (DELETE /webex/numbers/{number_or_id}/fax_settings) Destructive.

NameRequiredDescriptionDefault
number_or_idYesPath parameter number_or_id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so repeating 'Destructive' earns no credit. The endpoint notation (DELETE .../fax_settings) adds modest context, but the description doesn't say whether the number itself survives, what happens to pending fax traffic, or how the result is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and ending with the risk flag. Every element earns its place; nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter destructive mutation with full schema coverage and annotations carrying the safety profile, the description covers what the agent needs to call it. Only the post-deletion state of the number is unaddressed, a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are documented structurally and baseline 3 applies. The description adds nothing about number_or_id format (number vs. internal id) or the response_format choice.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Remove') and resource ('fax configuration from a number'), which clearly distinguishes it from placetel_get_webex_number_fax_settings and placetel_configure_webex_number_fax_settings by operation. It does not name those siblings explicitly, so it stops just short of full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'Destructive' plus 'Remove' implies the removal scenario, but the description never states when an agent should choose this over reconfiguring via placetel_configure_webex_number_fax_settings, nor any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_reset_user_passwordReset password for accountC

Reset password for account. (POST /users/{id}/password_reset)

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, but the description adds nothing beyond the endpoint path. For a password reset it omits crucial context: whether a new password is generated and returned, emailed, or whether existing sessions/tokens are invalidated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence, front-loaded with the action, with the endpoint in parentheses. Nothing extraneous, though the parenthetical adds little value for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a non-idempotent mutation with no output schema, and the description never explains what the call returns (new password? confirmation?) or the side effects on the user's credentials. Annotations cover the safety profile but the semantic gaps remain significant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the id and response_format parameters are already documented in the schema. The description contributes no additional semantics (e.g. format of id), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Reset password for account') and includes the underlying endpoint, so the agent knows exactly which operation is performed and can distinguish it from the sibling reset_user_two_factor_authentication. It doesn't explicitly contrast with that sibling, keeping it just below a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus update_user or the two-factor reset sibling, no prerequisites (e.g. admin privileges), and no note about when a reset is appropriate. 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.

placetel_reset_user_two_factor_authenticationReset two factor authentication for userC
DestructiveIdempotent

Reset two factor authentication for user. (DELETE /users/{id}/two_factor_authentication) Destructive.

NameRequiredDescriptionDefault
idYesPath parameter id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, and the description's 'Destructive' merely repeats that with no added context. It gives the underlying endpoint (DELETE /users/{id}/two_factor_authentication), which corroborates the HTTP method, but says nothing about what actually gets cleared, whether the user is locked out until re-enrollment, or what permissions are needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short fragments with zero filler, and the core action is front-loaded ahead of the endpoint detail. It is telegraphic rather than explanatory, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations cover the safety profile and the schema covers both parameters, so the definition is callable as-is. It is still thin for a destructive user-account mutation: it does not say what the reset leaves the account in, whether the operation is reversible, or what a successful response looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both the required 'id' and the 'response_format' enum are fully documented in the schema. The description adds no meaning beyond that, which is the expected baseline when the schema carries the full burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (reset two factor authentication for a user) and its name distinguishes it from the neighboring placetel_reset_user_password. However, the description itself never explicitly contrasts the two, so an agent must infer the distinction from the tool name rather than the prose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus placetel_reset_user_password, placetel_update_user, or placetel_delete_user, and no stated prerequisites or preconditions. The only operative cue is the trailing word 'Destructive', which does not tell the agent when this action is warranted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_send_smsSend SMSC

Send SMS. (POST /sms)

NameRequiredDescriptionDefault
messageYesBody field message (required).
recipientYesBody field recipient (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, so the safety profile is covered structurally. The description adds nothing further: no mention of cost/credits, delivery semantics (async vs. immediate), sender number requirements, or whether a retry duplicates the message despite non-idempotency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, so there is no wasted prose, but the brevity is under-specification rather than efficiency. The POST endpoint parenthetical consumes the only secondary sentence slot instead of carrying useful invocation context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a mutating, open-world, non-idempotent action that sends real messages to real recipients, with no output schema to explain the result. For that risk profile the description is far too thin—no delivery confirmation behavior, error conditions, or sender identity information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. However the schema itself is thin—'recipient' and 'message' are labeled only as body fields—and the description does not compensate with phone-number format (E.164), message length limits, or what the response_format enum means in practice.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description "Send SMS. (POST /sms)" essentially restates the tool name and title, which is the textbook tautology case. The only extra information is an HTTP endpoint parenthetical that does not tell an agent anything about the operation's scope, target network, or result.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is offered, and no alternative is named. With siblings like placetel_initiate_call and placetel_create_fax in the same catalog, the description never clarifies that this is the text-messaging channel versus voice or fax pathways.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_set_cti_configSet config paramsC
Idempotent

Set config params. (PUT /cti/{mac})

NameRequiredDescriptionDefault
macYesPath parameter mac.
paramsYesBody field params (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since annotations already define this as a non-read-only and non-destructive operation, the description adds no unique behavioral context. It fails to mention rate limiting, required scopes, or specific side effects of setting config parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is maximally concise. It uses two short sentences, efficiently pairing the action with the API route. There is zero superfluous language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the 100% schema coverage, the description is insufficient for a mutation tool that requires a complex 'params' payload. It provides no high-level context about what types of configuration parameters are valid or expected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, meaning the schema provides adequate documentation. The description itself is too brief to add meaningful semantic value beyond what is already present in the structured input fields like 'mac' and 'params'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Set config params') and provides the HTTP method and endpoint template (PUT /cti/{mac}), making the function and target resource clear. It is functionally specific, although it does not elaborate on the nature of the configuration being set.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like get_cti_config or other update tools. It lacks crucial context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_simulate_routing_planSimulate the usage of a routing planC
Read-onlyIdempotent

Simulate the usage of a routing plan. (GET /routing_plans/{id}/simulate) Read-only.

NameRequiredDescriptionDefault
idYesPath parameter id.
timeNoQuery time.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the appended 'Read-only' is redundant rather than additive. The description contributes nothing beyond annotations, e.g., whether the simulation is a true dry-run with no side effects, whether it consumes quota, or what the result represents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, purpose front-loaded, endpoint and safety hint placed after. No filler, though the brevity comes at the cost of leaving the simulation output unexplained.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations cover the safety profile and the schema covers parameters, so the remaining burden on the description is small. Still, with no output schema, the description should say what the simulation returns (e.g., the evaluated routing path or matched targets), which is the single most important thing an agent needs to interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents all three parameters and the baseline is 3. The description adds no meaning beyond the schema, notably leaving the ambiguous 'time' query parameter (what instant/format the simulation evaluates) undefined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Simulate the usage of a routing plan') and includes the underlying endpoint, which distinguishes it from the sibling placetel_get_routing_plan (config read vs. dry-run evaluation). However, it never explains what a 'simulation' produces, leaving the resource's behavior partly opaque.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No statement of when to choose this over placetel_get_routing_plan, placetel_list_routing_plan_routings, or placetel_list_routings, and no prerequisites mentioned. Usage must be inferred entirely from the verb 'simulate'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_sync_microsoft_teams_userSync userC

Sync user. (PATCH /microsoft_teams/sync/{sip_user_id})

NameRequiredDescriptionDefault
sip_user_idYesPath parameter sip_user_id.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare that this is a non-read-only, open-world, non-idempotent mutation. The description adds nothing beyond the HTTP method and path: it does not say what state is changed, whether syncing can alter or overwrite existing Teams mappings, or what permissions are required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is very short, but it is under-specified rather than concise: the title is repeated and the only additional information is the HTTP path. There is no useful front-loaded explanation of the operation's effect.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an open-world mutation in a Microsoft Teams integration, the description is too thin: it does not explain what sync means, what side effects occur, or how the result should be interpreted. Annotations and the schema cover some basics, but the core behavioral meaning is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already documented structurally, and the description only echoes sip_user_id through the endpoint path. With full schema coverage, a baseline 3 is appropriate because the description adds no further meaning about the required identifier.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Sync user" is close to a restatement of the title and does not explain what syncing a Microsoft Teams user actually does. The endpoint path adds a hint that this targets the Microsoft Teams sync resource, but the definition never distinguishes the operation from siblings like import_microsoft_teams_user or disconnect_microsoft_teams_user.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use, when-not-to-use, or prerequisite guidance. It does not tell an agent how to choose this over placetel_import_microsoft_teams_user, placetel_disconnect_microsoft_teams_user, or placetel_list_microsoft_teams_users.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_update_call_center_agentUpdate an agentC
Idempotent

Update an agent. (PUT /call_center_agents/{id})

NameRequiredDescriptionDefault
idYesPath parameter id.
nameNoBody field name.
statusNoBody field status.
priorityNoBody field priority.
descriptionNoBody field description.
extension_sipYesBody field extension_sip (required).
extension_pstnYesBody field extension_pstn (required).
extension_typeNoBody field extension_type.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a non-destructive, idempotent, open-world write. The description adds nothing beyond that: it does not disclose PUT replacement semantics (why extension_sip/extension_pstn are mandatory and whether omitted fields are cleared) or any auth/rate-limit context, which is the key risk for an update operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short and front-loaded, but the second sentence merely restates the HTTP endpoint already implied by the tool, so a portion of the already-minimal text does not add decision value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation with no output schema, the description says nothing about required fields, replacement vs. partial-update behavior, or what the call returns. Annotations cover safety, but an agent still lacks the operational context needed to invoke this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3, but the schema descriptions are generic labels like 'Body field name.' and the tool description supplies no additional meaning, formats, or constraints for the 9 parameters (e.g., priority range, extension formats).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Update an agent" names a verb and resource, but 'agent' is ambiguous in this catalog (call-center agent vs. SIP user or user records), and the title already carries the same meaning. The parenthetical endpoint maps it to call_center_agents, which is the only real disambiguation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to use this rather than placetel_create_call_center_agent or placetel_update_sip_user, and no prerequisites or preconditions are stated. The agent must infer usage entirely from the name and endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_update_call_center_queueUpdate a queueC
Idempotent

Update a queue. (PUT /call_center_queues/{id})

NameRequiredDescriptionDefault
idYesPath parameter id.
nameNoBody field name.
priorityNoBody field priority.
num_loopsNoBody field num_loops.
prompt_idNoBody field prompt_id.
descriptionNoBody field description.
play_promptNoBody field play_prompt.
play_mailboxNoBody field play_mailbox.
ringing_timeNoBody field ringing_time.
prompt_end_idNoBody field prompt_end_id.
max_iterationsNoBody field max_iterations.
play_prompt_endNoBody field play_prompt_end.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
mail_notificationNoBody field mail_notification.
prompt_mailbox_idNoBody field prompt_mailbox_id.
prompt_waiting_idNoBody field prompt_waiting_id.
play_prompt_waitingNoBody field play_prompt_waiting.

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds zero unique behavioral information. The annotations already define it as a non-read, non-destructive operation (`readOnlyHint: false`, `destructiveHint: false`). By repeating only the basic action, it fails to provide useful context beyond what the structure already provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is technically concise, but the inclusion of the full HTTP path syntax `(PUT /call_center_queues/{id})` is more of a technical specification detail than a concise explanation meant for guiding an LLM agent on task completion.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high parameter count (17), the definition is extremely incomplete. It fails to explain the scope of the update, for example, whether it updates a queue's metadata, its routing behavior, or its prompt settings. An agent would require more context on what kind of changes are possible.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since the schema coverage is 100%, the schema itself contains all parameter semantics. The description offers no semantic value (e.g., it doesn't explain that most fields are optional for updates). It fails to add the value expected of a description when schema coverage is high, defaulting to a low score as it adds nothing but noise.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource being manipulated (a queue) and the action (update). However, it relies almost entirely on the tool name and HTTP syntax for context rather than providing a clear, distinct purpose that differentiates it from sibling tools like list or create queues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides absolutely no guidance on when to use this tool versus alternatives. It does not explain what fields can be modified, nor does it offer any comparative usage context to help the agent decide if this is the correct action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_update_contactUpdate contactB
Idempotent

Update an existing contact by id. Provide the fields to change. Returns the updated contact.

NameRequiredDescriptionDefault
idYesThe contact id.
faxNo
tagsNo
colorNo
emailNo
phoneNo
mobileNo
addressNo
blockedNo
companyNo
fax_workNo
xing_urlNo
last_nameNo
speeddialNo
email_workNo
first_nameNo
phone_workNo
mobile_workNo
address_workNo
facebook_urlNo
linkedin_urlNo
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
twitter_accountNo

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that it returns the updated contact (valuable, since there is no output schema) and implies a partial patch. It omits what happens to fields not supplied and any auth/rate-limit context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the verb and resource, with no filler. The final sentence about the return value earns its place because there is no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 23-parameter mutation tool with 9% schema coverage and no output schema, the description is thin: it never hints at the breadth of updatable fields or their formats. An agent must fall back almost entirely on raw schema inspection to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 9%: just 'id' and 'response_format' are documented, leaving 21 contact fields (fax, tags, blocked, social URLs, etc.) with no meaning beyond their names. The description compensates only marginally by stating that the fields to change are supplied by the caller.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Update an existing contact by id') and clarifies it is a field-level modification of an existing record, which distinguishes it from create_contact and get_contact in the sibling list. It stops short of naming 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Provide the fields to change' implicitly communicates partial-update semantics and that the record must already exist, which is useful context. However, there is no explicit when-to-use guidance, no exclusion against create_contact/upsert patterns, and no statement about erroring on unknown ids.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_update_groupUpdate a groupC
Idempotent

Update a group. (PUT /groups/{id})

NameRequiredDescriptionDefault
idYesPath parameter id.
nameNoBody field name.
member_idsNoBody field member_ids.
descriptionNoBody field description.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, idempotent=true, destructive=false and openWorld=true, so the safety profile is covered. However, the description omits behavior that matters for a PUT-style partial update: whether omitted body fields are cleared or left untouched, whether member_ids replaces or extends the current membership, and what permissions are required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short fragments with no filler and the resource is front-loaded, but the brevity comes at the cost of under-specification rather than efficiency. The endpoint notation is the only substantive content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A 5-parameter mutation with no output schema needs the description to explain update semantics, required identifiers vs optional fields, and the response shape. The definition supplies none of this, leaving only the verb and the route.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline of 3 applies; the description adds no parameter meaning beyond it. The schema's own descriptions are boilerplate ('Body field name.'), so nothing clarifies whether name/member_ids/description are optional or how they are applied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title verbatim ('Update a group') and adds only the raw HTTP method/path, which is plumbing rather than purpose. It does not differentiate the tool from siblings like placetel_create_group or placetel_get_group in terms of what a caller actually achieves.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of the sibling update-like operations. The agent must infer from the name alone that this modifies an existing group and that create/get/delete are the alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_update_promptUpdate a promptB
Idempotent

Update a prompt. (PUT /prompts/{id})

NameRequiredDescriptionDefault
idYesPath parameter id.
fileNoBody field file.
nameYesBody field name (required).
textNoBody field text.
voiceYesBody field voice (required).
descriptionNoBody field description.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is purely functional and adds no unique behavioral traits beyond the API endpoint structure. Since `readOnlyHint: false` is present, the description fails to add critical safety or side-effect context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is highly concise, consisting of only two short sentences that front-load the core function of the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the schema is complete, the description itself is too brief for a mutation tool. A slightly more descriptive summary of what properties can be modified would improve agent instruction without redundant effort.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since schema description coverage is 100%, the baseline score of 3 is appropriate. The description adds no additional meaning or context to the specific input parameters like 'voice' or 'response_format' beyond their structure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and description clearly state the action (Update) and the resource (Prompt), making the function of the tool unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like creating or retrieving prompts. It relies solely on the agent knowing the distinct purpose of an 'update' operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_update_provisioningUpdate a phone provisioningsC
Idempotent

Update a phone provisionings. (PUT /provisionings/{id})

NameRequiredDescriptionDefault
idYesPath parameter id.
keysNoBody field keys.
nameNoBody field name.
codecNoBody field codec.
linesNoBody field lines.
localeNoBody field locale.
encryptionNoBody field encryption.
webuser_idNoBody field webuser_id.
call_waitingNoBody field call_waiting.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true). The only extra signal is the PUT verb, which vaguely implies replace-style semantics, but the description never says whether omitted body fields are cleared or preserved, nor whether any permission is required. Beyond the endpoint string it adds essentially nothing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loaded, so no waste in length, but the second sentence is a bare endpoint reference that adds little for an agent, and the grammar ("a phone provisionings") undermines clarity. Brevity here reflects under-specification rather than discipline.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a 10-parameter mutation tool with no output schema, and the description says nothing about which fields are updatable, whether partial updates are allowed, or what the call returns. Annotations cover the safety profile, but the operational behavior of the update itself is left entirely to the schema and guesswork.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with enums documented for codec, locale, encryption, and response_format, so the schema carries parameter meaning on its own. The description contributes no additional semantics (e.g., which fields are optional in practice or how lines/keys interact), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title almost verbatim ("Update a phone provisionings") and adds only the raw HTTP endpoint. It states a verb and resource, but conveys no scope, no updatable fields, and no differentiation from siblings such as placetel_create_provisioning or placetel_reconfigure_provisioning beyond what the tool name already implies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no mention of alternatives. An agent is not told when to call this versus placetel_reconfigure_provisioning, placetel_upsert_provisioning_custom_configuration, or placetel_get_provisioning for inspection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_update_routingUpdate routingD
Idempotent

Update routing. (PUT /routings/{number_or_id})

NameRequiredDescriptionDefault
apiNoBody field api.
ivrNoBody field ivr.
nameNoBody field name.
planNoBody field plan.
groupNoBody field group.
queueNoBody field queue.
forwardNoBody field forward.
mailboxNoBody field mailbox.
notificationNoBody field notification.
number_or_idYesPath parameter number_or_id.
music_on_holdNoBody field music_on_hold.
time_settingsNoBody field time_settings.
custom_calleridNoBody field custom_callerid.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
notify_external_apiNoBody field notify_external_api.

TDQS

D1.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare that this is a non-destructive, idempotent, open-world mutation; the description adds nothing about what a PUT replaces, whether omitted fields are cleared or preserved, or what permissions are required. The only extra information is the raw endpoint path, which the agent can derive from the schema anyway.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the brevity comes from under-specification rather than efficiency: two fragments, one a tautology of the title and one a raw path template. Nothing is front-loaded beyond the verb, leaving no actionable content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 15 parameters including many nested schemaless objects, a mutation, no output schema, and no annotations bridging the gap, the description should carry substantial weight. Instead it provides none of it, leaving an agent unable to call this correctly without guessing the shape of the routing payload.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although nominal schema coverage is 100%, the schema descriptions are pure placeholders ('Body field api.', 'Body field name.', 'Path parameter number_or_id.') and the nested objects are untyped additionalProperties, so effectively no semantics are conveyed anywhere. The description does not clarify the key ambiguity for a PUT on 15 optional body fields: whether it is a full replacement or a partial merge, nor what the nested objects (ivr, plan, queue, forward, mailbox, time_settings) should contain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the title ('Update routing') and adds only the HTTP endpoint (PUT /routings/{number_or_id}). It does not say what a 'routing' is, what aspects are being updated, or how it differs from sibling tools such as placetel_create_routing, placetel_delete_routing, or placetel_update_routing_plan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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 placetel_create_routing, placetel_get_routing, placetel_delete_routing, or placetel_update_routing_plan. No prerequisites, no mention that the routing must already exist, and no exclusion of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_update_routing_planUpdate a routing planC
Idempotent

Update a routing plan. (PUT /routing_plans/{id})

NameRequiredDescriptionDefault
idYesPath parameter id.
didNoBody field did.
nameYesBody field name (required).
descriptionNoBody field description.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
routing_objectsNoBody field routing_objects.

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation and idempotency profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false). The description adds nothing beyond the endpoint, notably omitting whether PUT means full replacement of unspecified fields, what permissions are needed, or what happens to omitted routing_objects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is two short fragments with no waste, so it is not bloated. However, the brevity is under-specification rather than economy: the space saved carries no useful information for the agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter mutation tool with no output schema, the description leaves critical gaps: whether it is a full PUT replacement, which fields are mandatory (name plus id), and what the response returns. The endpoint string alone is not sufficient context to call this safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents id, name, did, description, routing_objects and response_format. The description contributes no extra parameter meaning, but per the high-coverage baseline a 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name and title verbatim ("Update a routing plan") and adds only the HTTP endpoint. It gives no indication of what aspects of a routing plan can be changed (name, did, routing_objects) or how this differs from create_routing_plan or update_routing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no preconditions, and no mention of the obvious siblings (create_routing_plan, delete_routing_plan, simulate_routing_plan). The only signal is the PUT path, from which an agent must infer that this replaces an existing plan.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_update_sip_userUpdate a sip userC
Idempotent

Update a sip user. (PUT /sip_users/{id})

NameRequiredDescriptionDefault
idYesPath parameter id.
didNoBody field did.
nameNoBody field name.
calleridNoBody field callerid.
webuser_idNoBody field webuser_id.
descriptionNoBody field description.
hotdesk_pinNoBody field hotdesk_pin.
busy_on_busyNoBody field busy_on_busy.
hotdesk_typeNoBody field hotdesk_type.
hotdesk_loginNoBody field hotdesk_login.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
routing_plan_idNoBody field routing_plan_id.
automatic_prefixNoBody field automatic_prefix.
blocked_prefixesNoBody field blocked_prefixes.
p_asserted_identityNoBody field p_asserted_identity.
contact_speeddialingNoBody field contact_speeddialing.
hotdesk_provisioning_idNoBody field hotdesk_provisioning_id.

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered by structured data. The description adds nothing beyond that, such as whether unspecified body fields are cleared, which fields are updatable, or permission requirements — notable gaps for a 17-parameter 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded and waste-free, but the extreme brevity reflects under-specification rather than disciplined writing. The parenthetical endpoint is the only substantive addition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 17 parameters, a write operation, and no output schema, the description should convey partial-update semantics, which fields matter, and what happens on success. None of that is present, leaving the agent to infer behavior from the schema alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema documents all 17 parameters. The description's mention of PUT /sip_users/{id} confirms id is a path parameter, but it does not explain the semantics of the many body fields; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource: 'Update a sip user', plus the underlying endpoint PUT /sip_users/{id}. It is clear what the tool does, but it does not distinguish itself from siblings such as placetel_create_sip_user or placetel_get_sip_user 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.

Usage Guidelines2/5

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 placetel_get_sip_user, placetel_create_sip_user, or placetel_delete_sip_user, and no prerequisites or conditions are given. 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.

placetel_update_userUpdate a subuserC
Idempotent

Update a subuser. (PUT /users/{id})

NameRequiredDescriptionDefault
idYesPath parameter id.
didNoBody field did.
emailNoBody field email.
avatarNoBody field avatar.
localeNoBody field locale.
calleridNoBody field callerid.
last_nameNoBody field last_name.
admin_userNoBody field admin_user.
first_nameNoBody field first_name.
permissionsNoBody field permissions.
rights_numbersNoBody field rights_numbers.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown
obfuscate_othersNoBody field obfuscate_others.
primary_sip_user_idNoBody field primary_sip_user_id.
obfuscate_billing_recordsNoBody field obfuscate_billing_records.

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond the PUT path, which merely restates 'update'; it does not say whether omitted fields are preserved, whether the call replaces or patches, or what permissions are required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action. The parenthetical HTTP endpoint is largely redundant with 'update' but does at least confirm the endpoint mapping.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter mutation with a nested object and no output schema, the description is far too thin: it never explains partial-vs-full update semantics, required vs optional behavior (only id is required), or the effect of fields like admin_user and permissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is nominally 100%, so the baseline of 3 applies. In practice the schema descriptions are placeholders ('Body field did.'), and the tool description compensates for none of them, so it adds no real semantic value for the 15 parameters, including the nested 'permissions' object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update a subuser'), which is enough to separate it from create_user/get_user/delete_user in the sibling list. However, 'subuser' does not match the naming of the sibling user tools, and the agent could plausibly confuse it with placetel_update_sip_user; the description gives no clarification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus placetel_update_sip_user or the other user tooling, no prerequisites, and no note on which fields are actually editable. The agent has to infer everything from the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_update_webex_user_licenseUpdate Webex license for userC

Update Webex license for user. (PATCH /webex/users/{id}/license)

NameRequiredDescriptionDefault
idYesPath parameter id.
packageYesBody field package (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare that this is a non-read-only, non-idempotent, non-destructive, open-world operation. The description adds only the HTTP method and path, without explaining what happens to the existing license, whether package changes take effect immediately, or any permission requirements. It does not contradict the annotations, but it contributes little behavioral context beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is very short and front-loaded with the action. The endpoint path in parentheses is somewhat redundant but harmless and confirms the HTTP method.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter mutation with full schema coverage and safety annotations, the essential call information is present. However, the description does not clarify the effect of changing the package or how this differs from assigning a license, leaving a meaningful behavioral gap for an update operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents id, package, and response_format, including the package enum. The description adds no extra parameter meaning, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: updating the Webex license for a user. It does not distinguish this mutation from adjacent tools like placetel_assign_webex_user_license or placetel_get_webex_user_license, 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.

Usage Guidelines2/5

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 assign_webex_user_license, get_webex_user_license, or any other license-related sibling. The description merely restates the action and endpoint, 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.

placetel_update_webex_user_numbersUpdate numbers for userC

Update numbers for user. (PATCH /webex/users/{id}/numbers)

NameRequiredDescriptionDefault
idYesPath parameter id.
numbersNoBody field numbers.
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already tell the agent this is a non-readonly, non-idempotent, open-world mutation with no destructive hint. The description adds little beyond the PATCH route and never answers the crucial behavioral question for an array update: are the supplied numbers replacing the existing set or being merged into it? That omission matters more than the safety profile that annotations already cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short, front-loaded sentences with no filler; the structure is efficient. The terseness is a content problem rather than a verbosity problem, which is penalized on other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema and no return-value documentation, the description should at minimum explain the semantics of modifying the numbers collection. It leaves the agent unable to predict the effect of the call on existing numbers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema documents id, numbers, and response_format without help. The description adds no meaning beyond the schema — in particular, it doesn't explain how the numbers array is applied (replace vs. append) or what formats are expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb (update) and resource (a Webex user's numbers) are named, but 'numbers' is ambiguous — it could mean phone numbers, DID assignments, or extensions — and the description never clarifies which. It also doesn't distinguish this from near siblings like placetel_get_webex_user_numbers or placetel_assign_webex_user_license.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when this tool should be used, what precondition (existing Webex user, provisioned numbers) is required, or which sibling to choose for related tasks. The only usage signal is the raw HTTP route in parentheses.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

placetel_upsert_provisioning_custom_configurationUpdate or create a phone provisionings custom configuration keyC
Idempotent

Update or create a phone provisionings custom configuration key. (PUT /provisionings/{id}/custom_configurations)

NameRequiredDescriptionDefault
idYesPath parameter id.
configurationsYesBody field configurations (required).
response_formatNoOutput format: 'markdown' (human-readable, default) or 'json' (machine-readable).markdown

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare write (readOnlyHint=false), idempotentHint=true, destructiveHint=false and openWorldHint=true; the description only restates 'update or create' consistently with them and adds no new behavioral context. It says nothing about what happens to unspecified existing configuration entries on merge, permission requirements, or scope of the open-world effect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is appropriately front-loaded and wastes nothing. The second sentence is a bare HTTP path that largely duplicates the tool name, so the definition is short but not maximally informative per sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A mutating tool taking an untyped nested 'configurations' object with no output schema needs more: what a 'custom configuration key' is, the expected key/value structure, and what the response returns. Annotations cover the safety profile, but the description leaves the core data contract unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds nothing about what the 'id' refers to (provisioning id) or what shape the free-form 'configurations' object must take, which is the one genuinely ambiguous parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb pair (update or create) and a specific resource (a phone provisioning's custom configuration key), which is enough to distinguish it from the sibling read (get_provisioning_custom_configurations) and delete (delete_provisioning_custom_configuration) tools. It does not explicitly call out those siblings, 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.

Usage Guidelines2/5

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 upsert versus create_provisioning/update_provisioning or the custom-configuration delete/get siblings. The only usage signal is the '(PUT /provisionings/{id}/custom_configurations)' path, which implies idempotent upsert semantics but 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 124 tool updatesv1.0.1
    • First observedplacetel_activate_number
    • First observedplacetel_activate_number_profile
    • First observedplacetel_add_subscription
    • First observedplacetel_assign_webex_user_license
    • First observedplacetel_configure_webex_number_fax_settings
    • First observedplacetel_create_call_center_agent
    • First observedplacetel_create_call_center_queue
    • First observedplacetel_create_contact
    • First observedplacetel_create_fax
    • First observedplacetel_create_group
    • First observedplacetel_create_number_profile
    • First observedplacetel_create_prompt
    • First observedplacetel_create_provisioning
    • First observedplacetel_create_routing
    • First observedplacetel_create_routing_plan
    • First observedplacetel_create_sip_user
    • First observedplacetel_create_sip_user_short_code
    • First observedplacetel_create_user
    • First observedplacetel_create_webex_user
    • First observedplacetel_create_webex_workspace
    • First observedplacetel_cti_answer
    • First observedplacetel_cti_blind_transfer
    • First observedplacetel_cti_complete_conference
    • First observedplacetel_cti_complete_transfer
    • First observedplacetel_cti_decline
    • First observedplacetel_cti_dial
    • First observedplacetel_cti_dial_digit
    • First observedplacetel_cti_hangup
    • First observedplacetel_cti_hold
    • First observedplacetel_cti_resume
    • First observedplacetel_cti_send_dtmf_digits
    • First observedplacetel_cti_start_conference
    • First observedplacetel_cti_start_transfer
    • First observedplacetel_deactivate_number
    • First observedplacetel_delete_call
    • First observedplacetel_delete_contact
    • First observedplacetel_delete_fax
    • First observedplacetel_delete_group
    • First observedplacetel_delete_number_profile
    • First observedplacetel_delete_prompt
    • First observedplacetel_delete_provisioning
    • First observedplacetel_delete_provisioning_custom_configuration
    • First observedplacetel_delete_recording
    • First observedplacetel_delete_routing
    • First observedplacetel_delete_routing_plan
    • First observedplacetel_delete_sip_user
    • First observedplacetel_delete_sip_user_short_code
    • First observedplacetel_delete_subscription
    • First observedplacetel_delete_user
    • First observedplacetel_delete_webex_user
    • First observedplacetel_disconnect_microsoft_teams_user
    • First observedplacetel_get_ai_status
    • First observedplacetel_get_call
    • First observedplacetel_get_contact
    • First observedplacetel_get_cti_config
    • First observedplacetel_get_fax
    • First observedplacetel_get_group
    • First observedplacetel_get_me
    • First observedplacetel_get_microsoft_teams_integration
    • First observedplacetel_get_number
    • First observedplacetel_get_prompt
    • First observedplacetel_get_provisioning
    • First observedplacetel_get_provisioning_custom_configurations
    • First observedplacetel_get_recording
    • First observedplacetel_get_routing
    • First observedplacetel_get_routing_plan
    • First observedplacetel_get_sim_card
    • First observedplacetel_get_sip_user
    • First observedplacetel_get_site
    • First observedplacetel_get_user
    • First observedplacetel_get_webex_number_fax_settings
    • First observedplacetel_get_webex_user_license
    • First observedplacetel_get_webex_user_numbers
    • First observedplacetel_get_webex_workspace
    • First observedplacetel_import_microsoft_teams_user
    • First observedplacetel_initiate_call
    • First observedplacetel_list_call_center_agents
    • First observedplacetel_list_call_center_calls
    • First observedplacetel_list_call_center_queues
    • First observedplacetel_list_call_detail_records
    • First observedplacetel_list_calls
    • First observedplacetel_list_contacts
    • First observedplacetel_list_devices
    • First observedplacetel_list_faxes
    • First observedplacetel_list_groups
    • First observedplacetel_list_microsoft_teams_users
    • First observedplacetel_list_number_profiles
    • First observedplacetel_list_numbers
    • First observedplacetel_list_prompts
    • First observedplacetel_list_provisionings
    • First observedplacetel_list_recordings
    • First observedplacetel_list_routing_plan_routings
    • First observedplacetel_list_routing_plans
    • First observedplacetel_list_routings
    • First observedplacetel_list_sim_cards
    • First observedplacetel_list_sip_user_short_codes
    • First observedplacetel_list_sip_users
    • First observedplacetel_list_sites
    • First observedplacetel_list_subscriptions
    • First observedplacetel_list_users
    • First observedplacetel_list_webex_users
    • First observedplacetel_list_webex_workspaces
    • First observedplacetel_pick_call_center_call
    • First observedplacetel_reconfigure_provisioning
    • First observedplacetel_remove_webex_number_fax_settings
    • First observedplacetel_reset_user_password
    • First observedplacetel_reset_user_two_factor_authentication
    • First observedplacetel_send_sms
    • First observedplacetel_set_cti_config
    • First observedplacetel_simulate_routing_plan
    • First observedplacetel_sync_microsoft_teams_user
    • First observedplacetel_update_call_center_agent
    • First observedplacetel_update_call_center_queue
    • First observedplacetel_update_contact
    • First observedplacetel_update_group
    • First observedplacetel_update_prompt
    • First observedplacetel_update_provisioning
    • First observedplacetel_update_routing
    • First observedplacetel_update_routing_plan
    • First observedplacetel_update_sip_user
    • First observedplacetel_update_user
    • First observedplacetel_update_webex_user_license
    • First observedplacetel_update_webex_user_numbers
    • First observedplacetel_upsert_provisioning_custom_configuration

TDQS

C2.7/5.0

Scored across 124 tools

Disambiguation4/5

Most tools map to a clearly distinct resource and action, with names and endpoint hints that help separate similar areas like calls, call detail records, and call-center calls. A few CTI and routing tools (e.g. cti_dial_digit vs. cti_send_dtmf_digits, routing vs. routing_plan) could still be confused, so the set is mostly but not perfectly distinct.

Naming Consistency5/5

Every tool uses the placetel_ prefix with snake_case verb_noun/resource naming, and CRUD operations are highly predictable. Minor variants such as add_subscription, upsert_provisioning_custom_configuration, and get_me are domain-specific but do not break the overall convention.

Tool Count1/5

124 tools is far beyond the practical 3-15 range for an MCP toolset and creates very high context and selection overhead. Although the tools mirror many real API endpoints, the surface is too large to be well-scoped as an agent-facing tool set.

Completeness4/5

The surface covers a broad range of Placetel resources: calls, contacts, numbers, SIP users, routing, provisionings, faxes, recordings, users, Webex, and Microsoft Teams. Some resources lack full lifecycle operations (e.g. sites/devices/SIM cards are mostly list/get only, and call-center agents/queues lack delete/get), but core workflows are well covered.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    B
    maintenance
    MCP server for Voximplant API enabling calls, SMS, recordings, scenarios, and rules management with 11 tools and 2 skills.
    23
    44 npm
    3
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for Planfix API enabling task, project, contact, and comment management with 10 tools and 2 skills.
    20
    25 npm
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server wrapping the full VitoDeploy REST API to manage projects, servers, sites, databases, services, workers, SSL, DNS, and more through any MCP-compatible agent, with 108 tools covering every endpoint.
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    An MCP server that wraps the UTEL IP-telephony REST API as MCP tools, enabling LLM agents to make authenticated HTTP requests to the UTEL API via a simple tool interface.
    1
    1
    -