Skip to main content
Glama

Server Quality Checklist

92%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation4/5

    Tools have distinct purposes overall, but the high number and some conceptual overlap (e.g., multiple 'candidate' and 'preview' tools) could cause minor confusion. Descriptions are clear enough to differentiate.

    Naming Consistency5/5

    All tool names follow a consistent camelCase verb_noun pattern (e.g., listSkillsByCategory, createCustomer, confirmJobRequest), making them predictable and easy to navigate.

    Tool Count2/5

    43 tools is excessive for any domain. The set includes many specialized operations for scheduling and technician management, which could be consolidated. This volume may overwhelm agents and increase selection complexity.

    Completeness4/5

    The tool surface is thorough, covering CRUD for customers, technicians, job types, and resources, plus advanced scheduling. Missing a deleteJobRequest tool is a minor gap, but overall lifecycle coverage is strong.

  • Average 4.2/5 across 36 of 43 tools scored. Lowest: 3.3/5.

    See the Tool Scores section below for per-tool breakdowns.

    • 0 of 1 community issues answered or closed in the last 6 months
    • 21 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • This repository includes a glama.json configuration file.

  • This server has been verified by its author.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

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

    Annotations already indicate destructiveHint=true and readOnlyHint=false. Description adds the 'soft-remove' detail (sets status to deactive), which is beyond annotations, but lacks other behavioral context like reversibility or permission requirements.

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

    Conciseness4/5

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

    Two sentences, no filler. Could be slightly more concise but overall well-structured and efficient.

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

    Completeness2/5

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

    No output schema provided, and description does not mention return value or confirmation. As a destructive tool, more completeness would be expected (e.g., what happens on success/failure, idempotence implications).

    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 covers the 'id' parameter completely (100% coverage). Description does not add additional meaning to the parameter, so baseline score of 3 applies.

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

    Purpose5/5

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

    Description clearly states verb (remove) and resource (technician), and specifies it's a soft-remove by setting status to deactive. This distinguishes it from createTechnician or updateTechnician.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool vs alternatives (e.g., updateTechnician to deactivate instead). No exclusion criteria or prerequisites mentioned.

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

  • Behavior1/5

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

    Description claims 'Read-only' and 'Computes (WITHOUT writing)' but annotation readOnlyHint is false, constituting a direct contradiction. This undermines agent trust.

    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?

    Well-structured with front-loaded purpose, mode details, safety note, and error codes. Slightly long but every section earns its place.

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

    Completeness3/5

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

    Covers essential behavior and error handling, but no output schema exists and description does not explain the return format (e.g., the structure of the preview). Adequate for a preview tool but could be more complete.

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

    Parameters3/5

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

    Schema coverage is 100% (all parameters described). Description adds contextual explanation of modes and displacement but does not provide significant value beyond the schema descriptions.

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

    Purpose5/5

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

    Clearly states it computes a cascade preview without writing, distinguishes from commit sibling via explicit 'Read-only — safe to call repeatedly; commit is a separate endpoint.'

    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?

    Provides error codes and next steps, mentions isolation feature reference. Could explicitly contrast with previewJobRequestMove or state when not to use, but context is adequate.

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

  • Behavior1/5

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

    The description claims the tool is 'Read-only—safe to call repeatedly while dragging', but the annotations set readOnlyHint to false. This direct contradiction violates the evaluation rule that scores 1 for such contradictions. Although the description provides extensive behavioral details (warnings, 409 codes), the contradiction undermines trust and transparency.

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

    Conciseness3/5

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

    The description is front-loaded with purpose but becomes verbose with detailed error code explanations. While structured, it could be more concise. The length is appropriate for the complexity, but some details (e.g., full 409 error list) might be better placed elsewhere.

    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 tool with 5 parameters, no output schema, and numerous error conditions, the description is highly complete. It covers warning details, error codes with next steps, and behavioral constraints. The only gap is the lack of explicit return value structure, but the description implies what is returned (new location, pushed jobs, warnings).

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

    Parameters3/5

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

    Schema description coverage is 100%, so baseline is 3. The description adds marginal value beyond the schema, such as clarifying that technician_id may be the current tech (pure time move) or different (manual reassign), and that idempotency_key is forwarded as header. However, this does not significantly reduce ambiguity beyond what the schema already provides.

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

    Purpose5/5

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

    The description starts with the verb 'Preview' and clearly states the tool computes the outcome of moving a confirmed job without writing, distinguishing it from the sibling tool 'commitJobRequestMove'. It specifies the scope (time and/or technician) and mentions it is safe for dragging, making the purpose unmistakable.

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

    Usage Guidelines4/5

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

    The description explicitly states when to use (previewing moves before committing) and when not (it is read-only, commit is separate). It also provides context for error codes and next steps, but does not explicitly list alternative tools for similar operations (e.g., previewEmergencyReschedule) or conditions under which this tool should be avoided.

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

  • Behavior4/5

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

    The description adds behavioral context beyond the readOnlyHint annotation, explaining the real-time nature of the data (based on technician capacity, working hours, service territory) and the purpose of preventing unschedulable bookings. No contradictions with 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?

    The description is relatively concise (4 sentences), but the first sentence is redundant as it repeats the title. The remaining sentences provide value. Could be slightly shorter by removing the first line.

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

    Completeness3/5

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

    Given no output schema, the description lacks details on the return format (e.g., structure of time windows, pagination, error handling). It covers the core purpose and usage but leaves some gaps for a comprehensive understanding.

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

    Parameters3/5

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

    Input schema already describes all 3 parameters (to, from, x_timezone) with 100% coverage. The description does not add parameter-specific details beyond that, but implies a date range context. Baseline score of 3 is appropriate as schema 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?

    The description specifies the verb 'list' and resource 'booking windows' clearly. It explains that it returns bookable date/time windows based on technician capacity, working hours, and service territory coverage. While it doesn't explicitly differentiate from sibling 'listMatchingSlots', the context implies a distinct role in preventing unschedulable bookings.

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

    Usage Guidelines4/5

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

    The description explicitly advises calling this before creating a job request and offering only the returned windows to prevent unschedulable bookings. This provides clear when-to-use guidance, though it does not list when not to use or mention alternatives.

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

  • Behavior4/5

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

    The description goes beyond annotations by explaining the specific behavior of start_location_type='office' (re-snapshotting business address, ignoring body fields, error condition BUSINESS_LOCATION_MISSING) and start_location_type='home'. This adds valuable behavioral context.

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

    Conciseness4/5

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

    The description is three sentences, front-loaded with the main action. Each sentence contributes meaningful information without redundancy.

    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 complexity of 12 parameters with interdependencies, the description covers the key behavioral nuances and error conditions. No output schema exists, but the description sufficiently addresses expected side effects.

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

    Parameters4/5

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

    Schema coverage is 100%, so baseline is 3. The description adds value by explaining the interaction between start_location_type and address/coordinates parameters, clarifying when certain fields are ignored or required.

    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 'Updates mutable technician profile fields' and specifies the resource (technician). It distinguishes from sibling tools like createTechnician and deleteTechnician, though it doesn't explicitly contrast with list or get tools.

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

    Usage Guidelines3/5

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

    The description provides guidance on start_location_type behavior and when to use each option, but lacks explicit when-not-to-use or alternatives among sibling tools. Usage context is implied rather than stated.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds value by detailing the returned data ('full profile', 'dispatch-ready view'), which is beyond what annotations provide. No contradictions.

    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 to the point, with a clear title and a list of returned fields. It front-loads the purpose. One could argue the title repeats the name, but overall it is efficient.

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

    Completeness4/5

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

    Given the simple one-parameter input and no output schema, the description sufficiently explains what is returned. It lists the key fields, which helps the agent understand the tool's output. However, it could mention potential error conditions like 'invalid 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 coverage is 100% with one parameter 'id' described as 'Technician ID'. The description does not add additional meaning to the parameter beyond what the schema provides. Baseline 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states 'Get a technician' and lists the specific fields returned ('contact info, employment status, assignment tier, skills/qualifications, buddy relations, assigned vehicles'). The verb is 'Get', resource is 'technician', and it distinguishes from siblings like listTechnicians (list) and updateTechnician (update).

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

    Usage Guidelines3/5

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

    No explicit when-to-use or when-not-to-use guidance. The description implies usage for fetching a single technician's full profile, but does not mention alternatives or context where other tools would be more appropriate.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by specifying the returned fields (identity, plate, status, technicians) and the fleet-management context, without contradicting 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?

    Two sentences, front-loaded with the core purpose. The second sentence adds relevant detail. Could be slightly more concise but not wasteful.

    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 no output schema, the description reasonably covers the return structure (key fields). A simple getter with one parameter, this is adequate for an AI 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 has 100% coverage with parameter 'id' described as 'Vehicle ID'. The description does not add additional meaning or constraints beyond the schema.

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

    Purpose5/5

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

    The title 'Get a vehicle' and description clearly state it returns a single fleet vehicle with specific details (identity, plate, status, technicians). It distinguishes from siblings like listVehicles (which lists all).

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

    Usage Guidelines3/5

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

    The description implies usage for retrieving a single vehicle but does not explicitly state when to use versus alternatives (e.g., listVehicles). No exclusions or prerequisites mentioned.

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

  • Behavior4/5

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

    The description reveals that the tool mutates state (sets columns, advances pending_action) and notes that status remains 'booking'. Annotations already mark it as non-read-only and non-destructive. The description adds context about the idempotency key parameter, which aligns with the idempotentHint false annotation properly.

    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 to the point. The first line repeats the title unnecessarily, but the second line provides the core functionality. It is efficiently structured with minimal waste.

    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 tool with 7 parameters and no output schema, the description covers the main behavioral effects and state changes. It does not explain failure scenarios or prerequisites (e.g., job request must be in 'booking' status), but given the detailed schema descriptions, it is sufficiently complete for an agent to understand the tool's purpose.

    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 parameters are described in the schema. The description adds minimal additional meaning beyond stating the overall effect (e.g., 'sets duration cols' relates to job_duration_minutes). It does not elaborate on parameter details or constraints beyond what's in the schema.

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

    Purpose5/5

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

    The description clearly states the tool's action: 'Sends the quote' and specifies the exact effects (sets quoted_at + duration columns, advances pending_action to confirm_booking). This distinguishes it from sibling tools like confirmJobRequest, which handles the next step.

    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 this tool is used after creating a job request and before confirming a booking, but it does not explicitly state when to use it versus alternatives like confirmJobRequest or commitJobRequestMove. No exclusions or prerequisites are mentioned.

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

  • Behavior1/5

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

    Description claims it supports Idempotency-Key and replays original responses, implying idempotent behavior, but annotation idempotentHint=false contradicts this. Flagged as Annotation Contradiction.

    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 with purpose, but includes extensive detail on errors and next steps. Somewhat lengthy but necessary for clarity; well-structured.

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

    Completeness5/5

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

    Comprehensive given no output schema: explains atomicity, locking, version fencing, error codes, and references design doc. All parameters fully described in schema.

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

    Parameters4/5

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

    Schema coverage is 100%, description adds extra context for expected_move_ids (recommended usage) and idempotency_key (header transmission). Adds value beyond schema.

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

    Purpose5/5

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

    Clearly states it applies the cascade previewed by /emergency/preview, assigning the emergency job and displacing others. Differentiates from sibling previewEmergencyReschedule by being the commit step.

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

    Usage Guidelines5/5

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

    Explicitly ties to preview step, provides error handling for 409 codes, and recommends using expected_move_ids to avoid plan drift. Gives clear next steps on failure.

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

  • Behavior4/5

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

    The description discloses important behavioral details beyond annotations: it fires the 'confirm_booking' action, is audited as business_on_behalf, and explains that failed attempts bump status_version. It also describes the optimistic locking mechanism (status_version) and the idempotency key behavior. However, the idempotentHint=false annotation seems to contradict the description's claim that the key makes retries safe, creating a minor inconsistency.

    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 front-loaded with the main purpose and structured with clear sections for use cases and a decision table. While it is somewhat lengthy, every part contributes information, and the table format is efficient for error handling. Minor redundancy exists, but overall it is well-organized for its complexity.

    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 no output schema, the description adequately covers the tool's behavior, error codes, and next steps. It lacks explicit mention of the success response structure, but the decision table compensates by guiding post-call actions. The two use cases are fully explained, making the tool's role clear in the workflow.

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

    Parameters4/5

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

    With 100% schema coverage, the description still adds value by clarifying parameter semantics: scheduled_at is business-local naive datetime, technician_id forces assignment despite bypassing ranking, idempotency_key is sent as a header, and arrival_window_minutes provides derivation context. This enriches the schema definitions meaningfully.

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

    Purpose4/5

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

    The description clearly states the tool confirms a booking on behalf of the customer and outlines two specific use cases (LIVE and SANDBOX). While it does not explicitly differentiate from sibling tools like 'commitEmergencyReschedule', the decision table provides context for when to use this tool vs other actions. The purpose is specific and actionable, but lacks explicit sibling distinction.

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

    Usage Guidelines4/5

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

    The description explicitly says when to use the tool (LIVE staff confirmation, SANDBOX testing) and provides a detailed decision table mapping error codes to next steps. It does not, however, directly compare to alternative tools like 'quoteJobRequest' or 'commitJobRequestMove', leaving some ambiguity about when to choose this over others. Overall, it gives clear context and recovery actions.

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

  • Behavior4/5

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

    Annotations already mark this tool as destructive and idempotent. The description adds value by specifying it's a soft-delete and explaining the impact on existing bookings, which is beyond the annotation hints and helps the agent understand side effects.

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

    Conciseness4/5

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

    The description is short, with two sentences. The first sentence is repetitive of the title, which could be omitted, but overall it is efficiently structured without unnecessary 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?

    The description covers the core behavior (soft-delete) but does not explain return values, error cases, or requirements like permissions. With no output schema, more detail on expected outcomes would improve completeness.

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

    Parameters3/5

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

    Schema coverage is 100%, so the schema already describes the parameter (id). The description does not add any meaning beyond what the schema provides for the parameter itself, achieving only the baseline for high coverage.

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

    Purpose5/5

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

    The description clearly states the action (delete) and resource (customer), and explicitly mentions it's a soft-delete, which distinguishes it from a hard delete. It also contrasts with sibling tools like createCustomer and updateCustomer.

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

    Usage Guidelines4/5

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

    The description implies usage for removing a customer, and the soft-delete behavior provides context. However, it does not explicitly state when not to use it or when to prefer alternatives, such as updateCustomer.

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

  • Behavior4/5

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

    Annotations declare readOnlyHint=true, aligning with timeline retrieval. The description adds key behavioral context, such as that entered_at may be null for upcoming steps and older jobs, which goes beyond 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?

    The description is front-loaded with the core purpose and is within 5 sentences. However, it redundantly repeats the title 'Job timeline' as the first line and could be slightly more economical.

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

    Completeness5/5

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

    Despite no output schema, the description fully explains the return format: each status includes state, entered_at, and actions. This provides sufficient context for the agent to handle the output 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 coverage is 100%, with the parameter 'id' fully described in the schema. The tool description does not add extra semantic meaning beyond what the schema already provides.

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

    Purpose5/5

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

    The tool is explicitly described as providing a per-status progress of a job's lifecycle, with a specific sequence and detailed state information. This clearly distinguishes it from sibling tools, none of which are timeline-oriented.

    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 states 'render it as a job-tracking timeline,' implying its use for displaying job progress. However, it neither explicitly states when to use this tool over alternatives nor provides exclusions or when-not-to-use guidance.

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

  • Behavior4/5

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

    Annotations indicate readOnlyHint=true and destructiveHint=false. The description adds value by noting paginated results and alphabetical ordering, providing behavioral context 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.

    Conciseness5/5

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

    Two sentences with no waste. The title is repeated efficiently, and the key details (paginated, alphabetical, explanation of categories) are front-loaded and concise.

    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 tool's simplicity, annotations covering safety, and schema covering parameters, the description is largely complete. The explanation of what skill categories represent adds useful context. No output schema exists, but for a paginated list tool this is acceptable.

    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 well-described page and limit parameters. The description adds no additional parameter meaning beyond what the schema already provides, meeting the baseline but not exceeding it.

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

    Purpose5/5

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

    The description clearly states the tool lists skill categories and explains they represent technician qualification groupings by trade or specialty (e.g., HVAC, plumbing). This specific verb+resource definition distinguishes it from sibling tools like listSkills, which list individual skills, not categories.

    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 this tool is for browsing categories, but it does not explicitly state when to use it versus alternatives like listSkillsByCategory. Sibling names provide context, but the description lacks direct usage guidance.

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

  • Behavior4/5

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

    Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds specific returned fields (preferred_technician, service_area, address coordinates) and notes that coordinates can be null. No contradiction.

    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 clear and front-loaded, but includes some detail that could be more concise. Still, it is well-structured and informative.

    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?

    Description compensates for missing output schema by listing key returned fields and noting nullability. It is fairly complete for a read tool with one parameter.

    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 parameter 'id' with schema description 'Customer ID (UUID)'. The description does not add further semantics beyond the schema. Schema coverage is 100%, so baseline is 3.

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

    Purpose5/5

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

    The description clearly states 'Get a customer' and elaborates that it returns the full customer record including profile, contact details, tier, and spending summary. It distinguishes from siblings like listCustomers (list) and updateCustomer (modify).

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

    Usage Guidelines4/5

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

    The description mentions use cases: 'for support, upsell or CRM enrichment', providing context on when to use. However, it does not explicitly state when not to use or list alternative tools.

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

  • Behavior4/5

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

    Annotations declare readOnlyHint=true, and the description adds behavioral context by detailing the returned data (status, schedule, customer, crew), confirming it is a read operation without destruction. No contradictions. Lacks mention of authorization or rate limits, but annotations cover safety.

    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 two sentences: the first restates the tool's core action, the second provides essential detail. No superfluous text; front-loaded with key information.

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

    Completeness5/5

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

    Given the simple single-parameter input and no output schema, the description fully explains the return value by listing the components of the work order (status, duration, schedule, customer, technician/crew), making it complete for a dispatcher or external system.

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

    Parameters3/5

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

    Schema coverage is 100% with a clear description of the 'id' parameter. The description does not add any further meaning or constraints beyond the schema, so baseline of 3 applies.

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

    Purpose5/5

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

    The title and description clearly specify the verb 'Get' and the resource 'job request', and the description lists the returned fields (workflow status, schedule, etc.), distinguishing it from sibling tools like listJobRequests (returns multiple) and getJobRequestTimeline (timeline only).

    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 use for retrieving a single job request's full details, but it does not explicitly state when to use this tool over alternatives like listJobRequests or getJobRequestTimeline. No when-not-to-use guidance is provided.

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

  • Behavior4/5

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

    Annotations already indicate readOnlyHint=true. The description adds value by explaining the return includes a localized display name and provides concrete examples. No contradictions.

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

    Conciseness5/5

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

    Two sentences with no extra words. Front-loaded with the tool's purpose. Efficient and clear.

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

    Completeness5/5

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

    For a simple, single-parameter, read-only tool without output schema, the description is complete. It explains the return value (one entry with localized name) and gives examples. No missing 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 coverage is 100% with a single parameter 'id' described as 'Job Type ID'. The description does not add additional parameter meaning beyond the schema, so baseline score of 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states 'Get a job type' and explains it returns one entry of the service catalog with a localized display name. Examples (HVAC tune-up, drain cleaning) add clarity. It distinguishes from sibling listJobTypes by specifying single entry retrieval.

    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 use for retrieving a single job type by ID, but does not explicitly state when to use this tool versus listJobTypes or other siblings. No when-not or alternative guidance is provided.

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

  • Behavior3/5

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

    Annotations already indicate readOnlyHint=true, so safety is clear. Description adds that it returns geometry metadata but does not detail other behavioral aspects. With annotations covering safety, a score of 3 is appropriate.

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

    Conciseness5/5

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

    Two sentences, no redundancy. First sentence states purpose, second adds detail about return value and usage. Efficient and well-structured.

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

    Completeness5/5

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

    For a single-parameter, no-output-schema tool, the description adequately explains return fields (name, geometry metadata) and use case (territory-aware dispatch). Sufficient for an agent to invoke 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 coverage is 100% with description 'Service Area ID'. Description mentions 'UUID' and 'reference its UUID', adding slight context beyond schema. However, this is minimal enhancement over baseline 3.

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

    Purpose5/5

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

    The description clearly specifies the verb 'Get' and resource 'service area', explaining it returns a geographic coverage zone with name and geometry metadata. It distinguishes from 'listServiceAreas' by targeting a single record via ID.

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

    Usage Guidelines4/5

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

    The description provides context for use: referencing the UUID as `service_area_id` on customer records for territory-aware dispatch. While not explicitly stating when not to use, the sibling 'listServiceAreas' implies alternative for listing.

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

  • Behavior3/5

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

    Annotations already indicate read-only and non-destructive. Description adds that results are paginated, but does not reveal additional behavioral traits beyond what is already covered by annotations.

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

    Conciseness5/5

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

    Description is two sentences, front-loaded with title and then adds context. No unnecessary words, efficient and clear.

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

    Completeness5/5

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

    For a simple list tool with good annotations and full schema coverage, this description is complete: it explains the return value, pagination, and a key use case.

    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 description does not add extra meaning for page/limit beyond what is in the schema. Baseline score of 3 is appropriate.

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

    Purpose5/5

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

    Clearly states it lists service areas; explains it returns geographic coverage for routing and provides a specific use case (discovering service_area_id for customer create/update). Distinguishes from sibling getServiceArea.

    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?

    Implies usage for discovering IDs for customer operations, which guides when to use. Does not explicitly mention alternatives, but the context is clear given sibling tools.

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

  • Behavior4/5

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

    Annotations already indicate readOnlyHint=true and destructiveHint=false. Description adds behavioral details: pagination, searchability, and cursor-based incremental sync, which are 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.

    Conciseness5/5

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

    Description is two concise sentences, front-loaded with the core purpose, and no unnecessary words.

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

    Completeness4/5

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

    Given 8 parameters and no output schema, the description adequately frames the tool's purpose, pagination, and incremental sync capability. It lacks output details but is sufficient for most use cases.

    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 individual parameter descriptions. The description provides overall context (searchable directory, cursor sync) but does not add significant meaning beyond what the schema already offers for each parameter.

    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?

    Title and description clearly state 'List customers' and elaborate that it returns a paginated, searchable directory. It distinguishes itself from sibling tools like getCustomer (single record), createCustomer, and deleteCustomer.

    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?

    Description highlights usage for CRM, booking, and work order contexts, and mentions incremental sync via cursor. However, it does not explicitly state when not to use it or provide direct alternatives.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true, so the agent knows it's safe. The description adds value by describing the return content (service catalog with examples) and the filter parameter. It does not mention pagination or ordering, but for a simple catalog list this is acceptable.

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

    Conciseness5/5

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

    Two sentences with no wasted words. First sentence states the action, second provides context and examples. Well-structured and front-loaded.

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

    Completeness4/5

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

    Given the simplicity of the tool (one optional parameter, no output schema, clear annotations), the description is fairly complete. It covers purpose, use cases, and return values. Minor omission: no mention of pagination or ordering, but not critical for this type of tool.

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

    Parameters3/5

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

    Schema coverage is 100% and the schema description already explains the status parameter. The description adds no additional parameter details beyond the schema, but the overall context of the tool's return values helps usage. Baseline 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states the tool lists job types and returns the business's service catalog. It provides examples (installation, repair, maintenance) and distinguishes from getJobType by emphasizing the list behavior and use cases like discovering job_type_id.

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

    Usage Guidelines4/5

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

    The description explicitly says to use it to discover job_type_id or render a services menu. While it doesn't mention when not to use it, the context is clear and the sibling tool getJobType is implied for single type lookup.

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

  • Behavior4/5

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

    Annotations already signal readOnly. The description adds value by clarifying pagination and the default filtering for active skills via eligible_only. No contradictions.

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

    Conciseness5/5

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

    Two concise sentences with no fluff. The key information (purpose and filtering nuance) is front-loaded.

    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 read-only list tool with complete schema coverage, the description adequately explains pagination and filtering. No output schema exists, so return format is not expected.

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

    Parameters4/5

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

    Schema provides full parameter descriptions. The description adds meaning for eligible_only by explaining its default and effect, enhancing the schema's description.

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

    Purpose5/5

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

    The description clearly states it lists skills for a specific technician, differentiating from listing all skills (e.g., listSkills). The verb 'list' and resource 'skills for a technician' are specific.

    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 explains the default behavior of eligible_only but does not explicitly state when to use this tool versus alternatives like listSkillsByCategory or listSkills. Usage context is implied but not contrasted.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true. Description adds key behavioral traits: pagination, status filtering, and cursor-based incremental sync.

    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?

    Extremely concise: one sentence for purpose, one for key capability. No filler. Front-loaded.

    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?

    Covers pagination, filtering, and incremental sync. No output schema, but description adequately explains returns (fleet with status). Minor: could mention 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%, so description adds little beyond confirming the `since` cursor's purpose. Baseline 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states it lists vehicles and returns the fleet with operational status. It distinguishes from siblings like getVehicle (singular) and listTechnicians, etc.

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

    Usage Guidelines4/5

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

    Context is clear: returns fleet with pagination and incremental sync. No explicit when-not or alternatives, but the purpose is unambiguous given sibling context.

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

  • Behavior4/5

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

    Beyond annotations (idempotentHint=true, destructiveHint=false), the description explains that lead_ids is the complete new list and that [] clears all leaders, providing key behavioral context for a replace operation.

    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 concise with two sentences plus a title, each sentence providing essential information without redundancy.

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

    Completeness4/5

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

    The description covers purpose, behavior, parameter semantics, and access context (business staff), which is adequate for a replace tool with good annotations.

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

    Parameters4/5

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

    Schema coverage is 100% with descriptions, but the description adds value by clarifying replace semantics and the clearing behavior for empty array, which is not explicit in the schema.

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

    Purpose5/5

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

    The description clearly states the verb 'replace' and resource 'buddy's leaders', and distinguishes from sibling tools like replaceTechnicianBuddies. It explains replace semantics and the scope of the operation.

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

    Usage Guidelines3/5

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

    The description implies usage context through replace-semantics and mention of business staff, but does not explicitly state when to use vs alternatives or provide when-not guidance.

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

  • Behavior4/5

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

    Annotations already indicate idempotentHint=true and destructiveHint=false, which the description supports. The description adds behavioral context like 'two-way CRM sync friendly' and the clearing trick. No contradictions, and it discloses mutability without overstating.

    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 concise with four sentences that front-load the purpose and add specific context. It avoids redundancy and earns its length, though the first sentence repeats the title.

    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 12 parameters and no output schema, the description covers the core purpose and two specific details (clear service area, nested address). However, it lacks explanation of partial update semantics (replaces all mutable fields vs. only provided ones) and does not mention return values or error conditions, leaving some gaps.

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

    Parameters4/5

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

    Schema description coverage is 100%, so the schema already documents all parameters. The description adds value by explaining the nested address object and the service_area_id clearing behavior, improving clarity beyond the schema definitions.

    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 'Update a customer' and 'Replaces mutable fields on a customer record', using a specific verb and resource. It distinguishes from sibling tools like createCustomer and deleteCustomer, and adds context about two-way CRM sync, making the purpose very clear.

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

    Usage Guidelines4/5

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

    The description provides clear context for when to use this tool (update existing records, push changes from external system), including a specific tip for clearing service_area_id. However, it does not explicitly exclude when not to use or mention alternatives beyond the sibling context.

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

  • Behavior4/5

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

    Consistent with annotations (write operation, not destructive). Adds details about address nesting and service_area_id validity, going beyond what annotations 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?

    Concise at 4 sentences, no fluff. Could be slightly more streamlined but effectively communicates key points.

    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?

    Adequately covers purpose, address nesting, and constraints. Lacks return value info but no output schema expected. Idempotency key handled by schema.

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

    Parameters4/5

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

    Schema coverage is 100%, but description adds value by explaining address structure and service_area_id requirement, beyond the schema descriptions.

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

    Purpose5/5

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

    Clearly states it creates a customer record, identifying the resource and action. Distinguished from siblings like updateCustomer and listCustomers through context.

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

    Usage Guidelines4/5

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

    Explicitly says to use for importing or syncing from CRM, lead forms, etc. Provides clear context but doesn't explicitly state when not to use (e.g., for updates).

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

  • Behavior5/5

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

    Beyond the annotations (readOnlyHint=true), the description adds rich behavioral detail: the engine checks skills, availability, schedule, time off, travel, and provides per-technician match scores. It also explains slot width override. No contradictions.

    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 front-loaded with purpose and provides details in a structured paragraph. It is efficient but slightly verbose; each sentence adds value. No redundancy.

    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?

    Despite no output schema, the description explains the output structure (technician availability and match scores) and compares it to the customer slot picker. It covers the return format and usage flow adequately.

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

    Parameters3/5

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

    Schema coverage is 100%, so baseline is 3. The description provides no additional meaning beyond what the schema already states for both parameters (id and step_minutes).

    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 title and description clearly state the tool computes matching time slots for a quoted job using a smart-assignment engine, distinguishing it from sibling tools like listJobRequestBookingWindows. It specifies the resource (time slots) and the action (list matching).

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

    Usage Guidelines4/5

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

    The description explicitly says to use it after quoting the job and mentions the next step (confirm via POST endpoint). It provides context for use but does not list when not to use or alternative conditions.

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

  • Behavior5/5

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

    Description details ETA origin (no live GPS), application of real hard filters (hours, schedule, time-off, service areas, skill), and return order. Annotations read-only hint is consistent.

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

    Conciseness5/5

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

    Two concise sentences plus usage note, front-loaded with purpose. No unnecessary words.

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

    Completeness3/5

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

    Adequate for a query tool but lacks output structure details. Mentions return order and filters but not fields returned (e.g., technician ID, ETA). No error handling info.

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

    Parameters3/5

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

    Schema has 100% coverage with parameter descriptions. Description adds no extra per-parameter meaning; it explains overall behavior but not syntax or constraints beyond schema.

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

    Purpose5/5

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

    The description clearly states the tool finds nearby feasible technicians for a hypothetical visit, with ranking and filtering. It distinguishes from sibling tools like listTechnicians (no location filter) and listEmergencyCandidates.

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

    Usage Guidelines4/5

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

    Explicitly advises use before creating a booking to propose realistic arrivals. Context implies not for emergencies or listing all technicians, but no explicit when-not-to-use.

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

  • Behavior4/5

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

    Annotations indicate idempotentHint=true and destructiveHint=false, which are consistent. The description adds important behavioral details: buddy IDs must be active technicians of same business and no self-buddy. No contradictions.

    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 concise with two short paragraphs. The first line repeats the title but the second adds essential details. It is well-structured and front-loaded.

    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 2 parameters and no output schema, the description provides sufficient behavioral context including edge case (empty list) and constraints. It covers the essential information for correct usage.

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

    Parameters4/5

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

    Schema coverage is 100%, baseline 3. The description adds semantic value beyond the schema: clarifies that empty list clears buddies and imposes constraints (active technician, no self-buddy) that are not in the parameter descriptions.

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

    Purpose5/5

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

    The description clearly states the action 'Replace a technician's buddies' and explains it overwrites the buddy list. The purpose is specific and distinct from sibling tools like replaceTechnicianLeads or replaceTechnicianServiceAreas.

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

    Usage Guidelines4/5

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

    The description explains that an empty list clears all buddies, providing clear context. It does not explicitly mention when not to use it or compare with alternatives, but the sibling tools have distinct purposes making the guideline adequate.

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

  • Behavior4/5

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

    The description explains the job's lifecycle (entering pipeline, subsequent steps) beyond annotations (readOnlyHint=false, etc.). It does not contradict annotations and adds context about the work order advancement.

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

    Conciseness5/5

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

    The description is a single, well-structured paragraph with four sentences. It front-loads the action and resource, then lists key parameters and the workflow, with no redundant or unnecessary words.

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

    Completeness4/5

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

    The description covers the tool's role, inputs, and flow adequately for a creation tool with 9 parameters and no output schema. It references a sibling tool (listJobRequestBookingWindows) for additional guidance.

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

    Parameters4/5

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

    Schema coverage is 100%, so baseline is 3. The description adds workflow context by relating job_dates to the booking-windows endpoint and explaining the overall process, enhancing understanding of parameter roles.

    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 ('Create a job request') and the resource ('Books a field-service job'). It explicitly distinguishes the tool by placing the job in the 'dispatch & scheduling pipeline', differentiating it from sibling tools like confirmJobRequest or quoteJobRequest.

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

    Usage Guidelines4/5

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

    The description specifies required inputs (customer's UUID, job_dates) and recommends using the booking-windows endpoint for period selection. It outlines the workflow (quoting, assignment, completion) but does not explicitly state when to avoid this tool or mention alternatives.

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

  • Behavior5/5

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

    Disclosure goes far beyond annotations: covers identity resolution, reactivation, notification, idempotency, start_location_type behavior, and group restrictions. No contradictions with 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?

    Well-structured with three paragraphs, front-loaded with core purpose. A few redundancies exist but overall efficient for the complexity 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?

    Covers behavioral aspects thoroughly but lacks any mention of the response/return value. With no output schema, a brief note on what is returned would complete the picture.

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

    Parameters4/5

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

    Adds significant meaning beyond schema (identity resolution, start_location_type behavior, relations mechanic). Despite 100% schema coverage, description enriches understanding.

    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?

    Title and description clearly state 'Add a technician' and explain it creates a technician membership. Distinguishes from siblings like updateTechnician and deleteTechnician.

    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?

    Describes when to use (creating a technician) and includes context like identity resolution, reactivation, and restrictions. However, lacks explicit when-not-to-use or direct comparison to alternatives.

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

  • Behavior4/5

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

    Annotations already indicate readOnlyHint=true. Description adds details about date range behavior (defaults, inclusive, 31-day max), which are not in annotations. No contradictions.

    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 sentences, front-loaded with the core purpose. The second sentence is dense but packed with necessary details. Could be slightly more concise but not overly 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?

    No output schema, so description should explain return format. It mentions 'job session on their lane (solo/lead and crew) plus approved time-off blocks' but lacks structure details (e.g., list of objects). Could be more complete.

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

    Parameters4/5

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

    Schema coverage is 100%, but description adds meaning beyond schema: explains 'business-local' dates, defaults, and inclusive ranges. This helps clarify usage beyond the schema descriptions.

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

    Purpose5/5

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

    The description clearly states it shows a technician's actual occupancy including job sessions and time-off blocks. It uses specific verbs like 'real schedule' and distinguishes it from the 'get crew availability' endpoint.

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

    Usage Guidelines5/5

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

    Explicitly explains when to use (to see actual occupancy over a date range) and suggests combining with technician-availability endpoints for full availability. Also specifies default date ranges and maximum range.

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

  • Behavior5/5

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

    Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context: pagination behavior, alphabetical ordering, and meaning of the 'members' field. No contradictions.

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

    Conciseness5/5

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

    Two sentences efficiently convey purpose and key details. No redundant phrases. Front-loaded with the core action.

    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 3 parameters, no output schema, and high schema coverage, the description adequately explains pagination, ordering, and field meaning. It lacks return structure but the explanation of 'members' field partially compensates. Slightly more detail on response format would improve completeness.

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

    Parameters3/5

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

    Schema documentation covers all 3 parameters (id, page, limit) with clear descriptions. The description adds no new parameter-level information beyond restating the category context for id. Baseline 3 is appropriate due to high schema coverage.

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

    Purpose5/5

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

    The description clearly states it lists skills in a category, specifying they are technician qualifications/certifications, paginated, ordered alphabetically. This distinguishes it from sibling tools like listSkills (all skills) and listSkillCategories (categories only).

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

    Usage Guidelines4/5

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

    The description indicates when to use (for a given category) by mentioning 'belonging to the given trade/specialty category'. However, it does not explicitly state when not to use or contrast with listSkills for unfiltered listing, leaving some ambiguity.

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

  • Behavior4/5

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

    Annotations already mark as readOnlyHint=true and non-destructive. Description adds behavioral details: pagination, cursor support, and specific output fields (status, tier, skills, crew relations). No contradiction with 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?

    Four sentences with slight redundancy (first sentence repeats title). Still efficient and front-loaded with key information. Could trim the first sentence without loss.

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

    Completeness5/5

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

    Provides a complete picture for a list tool: explains returned fields, pagination, cursor for sync, and a practical use case (preferred_technician_id). No output schema needed; description suffices.

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

    Parameters4/5

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

    Schema covers all 7 parameters (100% coverage). Description adds value by explaining `since` cursor usage and linking to preferred_technician_id, going beyond schema descriptions.

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

    Purpose5/5

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

    The description clearly states it lists technicians (field workers) with status, tier, skills, crew relations, and explicitly links to dispatch scheduling. It distinguishes from sibling tools like getTechnician or createTechnician by focusing on roster listing.

    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?

    Provides usage guidance such as discovering preferred_technician_id and using `since` cursor for incremental sync. Lacks explicit when-not-to-use or alternatives among similar list tools like listNearbyTechnicians or listTechnicianSkills.

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

  • Behavior5/5

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

    The description reveals atomic behavior, advisory lock, status_version fencing, and drift detection (409). It also explains idempotency key behavior. Annotations are minimal, so description adds substantial context.

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

    Conciseness4/5

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

    The description is well-structured and front-loaded. While a bit long, each sentence adds value. Could be slightly more concise but is effective.

    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?

    Covers the main use case, error handling, and references a design document. Lacks output schema details but tool complexity is high and description is sufficient for correct invocation.

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

    Parameters4/5

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

    Schema coverage is 100%, but description adds essential context: mode must match preview, start_at must be future, expected_version from preview, expected_move_ids are displaced job IDs. Adds value beyond schema.

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

    Purpose5/5

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

    The description clearly states 'Commit a schedule-board job move' and explains it applies a previewed move. It uses a specific verb+resource and distinguishes from sibling tools like previewJobRequestMove.

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

    Usage Guidelines4/5

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

    The description explains the tool is to be used after a preview and provides guidance on parameters like expected_version and expected_move_ids. It also gives next steps for 409 errors, but lacks explicit alternative suggestions.

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

  • Behavior4/5

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

    Annotations are consistent (not readOnly, not destructive). Description adds behavioral details: ETA from start location, no live GPS, displacement preview, crew_recommendation, and error conditions. No contradictions.

    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?

    Well-structured with front-loaded purpose and ranking logic. Error codes are clearly listed. Slightly long but every sentence adds value; could be more concise.

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

    Completeness5/5

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

    No output schema, but description thoroughly explains return values (ranked technicians, crew_recommendation, displacement preview, total_moves, ETA) and error handling (409 codes). Complete for a complex tool.

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

    Parameters4/5

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

    Schema covers all 5 parameters with descriptions (100% coverage). Description adds context for mode (cascade behavior) and start_at (business-local naive datetime), slightly exceeding schema info.

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

    Purpose5/5

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

    The description clearly states the tool ranks technicians for a P0 emergency insert, sorted by fastest arrival. It differentiates from siblings like listCrewCandidates and listNearbyTechnicians by focusing on emergency dispatch with displacement previews.

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

    Usage Guidelines5/5

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

    Explicitly states when to use (P0 emergency), ranking logic, and what the response includes. Provides detailed 409 error codes with next steps and alternative flows (normal confirm, reassign) for unsupported cases.

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

  • Behavior4/5

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

    The description discloses that the operation is an overwrite, which is idempotent as per annotations. It adds value by noting that the vehicle list is embedded in the technician GET/list response. No contradictions with annotations.

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

    Conciseness5/5

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

    The description is concise: a short title followed by two sentences that efficiently convey the core behavior and constraints. No unnecessary words.

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

    Completeness5/5

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

    Given the tool's simplicity (2 parameters, no output schema, no nested objects), the description sufficiently explains the operation: overwrite behavior, clearing via empty list, business consistency, and where to find vehicle IDs. It also mentions the response embedment.

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

    Parameters5/5

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

    The description adds significant context beyond the schema: for vehicle_ids, it explains that an empty list clears all, each ID must be from the same business, and suggests discovering via GET /vehicles. For id, it simply states 'Technician ID'. With 100% schema coverage, this is excellent.

    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 ('Replace a technician's vehicles') and resource, elaborating with 'Overwrites the technician's vehicle list with the provided set of vehicle IDs'. This distinguishes it from sibling tools like replaceTechnicianBuddies and replaceTechnicianSkills.

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

    Usage Guidelines4/5

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

    The description provides guidance on usage: 'Sending an empty list clears all' and 'Each vehicle ID must belong to the same business'. It also suggests discovering vehicle IDs via GET /vehicles. However, it does not explicitly state when to use this tool versus alternatives, which is implicit given the specific resource.

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

  • Behavior5/5

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

    Annotations declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral details: pagination, date range semantics (end-of-day, exclusive boundaries), and the distinction for completed_from/to. No contradictions.

    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 concise: two short paragraphs, no superfluous text. It front-loads the core purpose and then elaborates on the schedule use case. Every sentence is informative.

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

    Completeness5/5

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

    Given 14 parameters, no output schema, and readOnlyHint annotation, the description covers all essential aspects: purpose, filters, pagination, scheduling use case, and date semantics. It is complete enough for an agent to use effectively.

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

    Parameters4/5

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

    Input schema has 100% coverage with descriptions for all 14 parameters, so the baseline is 3. The description adds context on combining parameters for scheduling and explains date range behavior, providing additional value.

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

    Purpose5/5

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

    The description clearly states the tool lists job requests (bookings) with dispatch-oriented filters, and explicitly identifies it as the schedule query for reading technician agendas. This distinguishes it from siblings like listTechnicians and getTechnicianSchedule.

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

    Usage Guidelines4/5

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

    The description gives explicit usage guidance, e.g., combining technician_id + scheduled_from/scheduled_to for schedule queries, and listing filters. It does not explicitly mention when not to use it or compare to alternatives, but the context is sufficient for an agent.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true, so the tool is safe. The description adds behavioral context: returns flat list of active skills, used for dispatch matching, and purpose of UUID discovery. No contradictions.

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

    Conciseness5/5

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

    Two sentences, no wasted words. First sentence front-loads the main action, second provides context and alternative. Highly concise.

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

    Completeness5/5

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

    Given zero parameters and no output schema, the description fully covers purpose, use case, and relationship to siblings. No gaps remain.

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

    Parameters4/5

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

    No parameters exist; schema coverage is 100%. The description does not need to add parameter details. It appropriately focuses on the tool's purpose.

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

    Purpose5/5

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

    The description clearly states it lists all active technician skills/qualifications, using specific verb+resource. It distinguishes from sibling listSkillsByCategory by mentioning the category-grouped alternative.

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

    Usage Guidelines5/5

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

    The description explicitly tells when to use this tool (discover skill UUIDs for creating job requests) and provides an alternative (listSkillsByCategory) for a different view.

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

  • Behavior5/5

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

    The description adds significant behavioral details beyond annotations: overwriting semantics, clearing via empty list, atomic partial failure (404 with no writes), and that the result is returned and embedded in technician responses. Annotations confirm idempotent and non-destructive nature, no contradiction.

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

    Conciseness4/5

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

    The description is a single paragraph that is well-structured and front-loaded with the main action. It contains necessary details without fluff, though it could be slightly more concise by merging some sentences. Still, it is efficient and clear.

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

    Completeness5/5

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

    Given the tool's low complexity (2 parameters, no output schema) and the presence of annotations, the description covers all essential aspects: purpose, behavior, error handling, side effects (embedded in get/list), and access control. It is fully adequate for an agent to use correctly.

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

    Parameters5/5

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

    Schema covers both parameters with descriptions. The description adds valuable context: clearing with empty list, error handling for missing service_area_ids, and that the resolved set is returned. This goes beyond what the schema provides, enhancing understanding.

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

    Purpose5/5

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

    The description uses a specific verb 'Replace' and resource 'technician's service areas', and clearly states the action: overwriting assignments with provided IDs. This distinguishes it from sibling tools like replaceTechnicianBuddies or replaceTechnicianLeads, which operate on different resources.

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

    Usage Guidelines4/5

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

    The description provides clear context: it's managed by business staff (Booking Coordinator) and not for tech self-service. It also explains behavior for empty input and error handling. While it doesn't explicitly compare with alternatives, the sibling tools are distinct enough that no further guidance is needed.

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

  • Behavior5/5

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

    The description fully discloses the behavioral traits beyond the minimal annotations. It explains the replace semantics (removing/adding), constraints that all skills must be active and belong to the business, and specific error responses (SKILL_NOT_FOUND with missing_ids, SKILL_INACTIVE with inactive_ids). No contradictions with 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?

    The description is concise with only two sentences in the second paragraph, but the first line is a header-like repetition. The structure is clear with a brevity introduction followed by detailed behavioral notes. Minor verbosity is acceptable, but could be slightly tighter.

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

    Completeness5/5

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

    Given the tool's low complexity (2 parameters, no output schema), the description covers all essential aspects: operation semantics, parameter constraints, error conditions, and clearing behavior. It is fully self-contained and requires no additional information for correct usage.

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

    Parameters5/5

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

    With 100% schema description coverage, the baseline is 3, but the description adds significant value beyond the schema. It explains the replace semantics apply to both parameters, clarifies that skill_ids must be active and belong to the business, and details the error response structures. The example and maxItems in schema are complemented by practical usage guidance.

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

    Purpose5/5

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

    The name and title clearly indicate the action: replacing a technician's skills. The description explicitly states 'replace semantics' and details that skills not in the list are removed and new ones added, distinguishing it from sibling tools like listSkillsByCategory or replaceTechnicianBuddies, which target different resources.

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

    Usage Guidelines4/5

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

    The description explains the replace semantics and mentions passing an empty list to clear all skills, providing clear context for usage. However, it does not explicitly state when not to use this tool or suggest alternatives, which is a minor gap. The context from sibling tool names partially compensates.

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

  • Behavior5/5

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

    Beyond annotations (readOnlyHint=false, etc.), the description reveals behavioral traits: it modifies the job, triggers SLA auto-escalation, disarms SLA when changing away from p1, and records notes on activity trail and webhook. No contradictions.

    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 well-structured with a title line and a paragraph. Every sentence provides necessary information without fluff, making it concise yet comprehensive.

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

    Completeness5/5

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

    Despite no output schema, the description fully covers the tool's behavior, constraints, prerequisites, and side effects. It is complete for a mutation tool of this complexity.

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

    Parameters4/5

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

    With 100% schema coverage, the description adds context beyond the schema: clarifies that sla_deadline is only valid with p1, must be future, and is business-local naive datetime. Also explains note's audit purpose.

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

    Purpose5/5

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

    The description clearly states the verb 'set' and the resource 'job priority', and specifies constraints (non-archived, non-completed). It distinguishes from sibling tools, which are mainly CRUD operations for other entities.

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

    Usage Guidelines4/5

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

    The description explains when to use the tool (for setting P0-P3 priorities), details allowed priority values with their meanings, and specifies constraints (sla_deadline only with p1). It lacks explicit when-not-to-use or alternatives, but context is clear.

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

  • Behavior5/5

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

    Beyond the annotations (readOnlyHint, etc.), the description discloses the 5-second safety window causing duplicates, ordered output, and pagination behavior with has_more. No contradictions with annotations.

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

    Conciseness5/5

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

    The description is comprehensive yet efficient, front-loading the core purpose and ending with usage guidance. Every sentence serves a purpose without redundancy.

    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?

    No output schema exists, but the description hints at response fields (id, next_since, has_more). It could specify the exact structure of job request items, but the usage context makes it sufficient for experienced users.

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

    Parameters4/5

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

    Schema coverage is 100%, so baseline is 3. The description adds value by explaining usage patterns for 'since' and 'limit' and the role of filters, elevating clarity beyond raw schema definitions.

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

    Purpose5/5

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

    The description clearly states the tool polls for new and changed job requests, explicitly distinguishing it from paginated listing (sibling listJobRequests). It uses specific verbs and resources, making its purpose unmistakable.

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

    Usage Guidelines5/5

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

    The description provides a step-by-step guide on initial and subsequent polls, storage of cursor, upsert handling, and when to poll again. It also advises on when not to use it, directing to listJobRequests for bulk load.

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

  • Behavior5/5

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

    Beyond annotations (readOnlyHint=true), description adds details about checks (skills, availability, travel), score breakdown, and error handling (409 for force_lead_id). No contradiction.

    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?

    Description is clear and every sentence adds value, but could be slightly more structured (e.g., bullet points). Still efficient with no waste.

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

    Completeness5/5

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

    Despite no output schema, description fully explains what is returned (ranked LEAD pool, score breakdown, session plan). Complex tool with 4 parameters is well-covered.

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

    Parameters5/5

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

    Adds meaning beyond schema: default returns LEAD pool, include_buddies returns buddy pools, include_vehicle returns vehicle list, force_lead_id checks specific technician and returns only that lead or 409. Schema coverage is 100% but description enriches semantics.

    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 'Matching crew candidates for a job' and elaborates that it returns technicians who can take the job, matched and ranked. It distinguishes from a raw roster list, making the purpose specific and unambiguous.

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

    Usage Guidelines5/5

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

    Explicitly says when to use (for matching crew candidates) and when not (use GET /technicians for raw list). Also explains how to modify behavior with include_buddies, include_vehicle, and force_lead_id, providing clear context.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

crisphive-mcp MCP server

Copy to your README.md:

Score Badge

crisphive-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/crisphive/crisphive-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server