Physical Capability Cloud
Server Details
Discover, hire, and verify real-world physical capability through MCP.
- Status
- Healthy
- Uptime
- 17.7% over 55 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- LamaSu/physical-capability-cloud
- GitHub Stars
- 1
TDQS
Scored across 256 tools
With 256 tools, many overlap heavily (e.g., multiple job status updates, escrow readers, evidence archives, telemetry queries). Descriptions often differentiate, but the sheer scale and duplicated verbs (e.g., create_capability vs kernel_announce_capabilities) make selection ambiguous.
Tool names mix prefixes (pcc_, marketplace_, near_, protocol_, setup_) with bare verb_noun forms and dotted namespaces (pcc.op.capability.request_quote). Some follow verb_noun, others don't (kernel_heartbeat, operator_heartbeat). Inconsistent conventions.
256 tools is vastly excessive for any single server, even a complex domain like physical capability cloud. Each tool may be justified, but the aggregate is unwieldy and suggests over-decomposition.
The surface covers a broad range (onboarding, jobs, escrow, IP, verification, marketplace, telemetry), but notable gaps exist: operator certifications, earnings, and dashboard routes return 501/not available, and some oracle endpoints are stubs. Several lifecycle operations (e.g., update registration, delete registration) are missing.
Available Tools
256 toolsactivate_registrationAInspect
Activate an approved registration, making the operator's equipment live on the network and ready to accept jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| registrationId | Yes | Registration ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the state-changing-but-non-destructive profile is covered. The description usefully specifies the resulting state (equipment live, accepting jobs), but says nothing about idempotency, whether activation is reversible, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that states the action and its consequence with no filler or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter mutation with no output schema and annotations covering the safety profile, the description covers the essential effect. It could go further on prerequisites and reversibility, but nothing critical to invoking it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema coverage is 100%, so the schema already fully documents registrationId. The description adds only the implicit constraint that it must reference an approved registration; baseline 3 applies when the schema carries the parameter definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (activate) plus resource (approved registration) and a concrete outcome — the operator's equipment goes live and can accept jobs. The word 'approved' implicitly separates it from approve_registration and reject_registration, but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The prerequisite that the registration must already be approved is implied by the adjective 'approved', which gives some usage context. There is no explicit when-to-use vs. alternatives guidance, nor any statement of when activation should not be attempted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advance_automationAInspect
Advance the automation level for a transfer pair (manual → teleoperated → pilot_operated → vla_assisted → fully_autonomous). Requires sufficient training episodes.
| Name | Required | Description | Default |
|---|---|---|---|
| toNodeId | Yes | Destination instrument node ID | |
| fromNodeId | Yes | Source instrument node ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false, leaving the description to carry the semantics. It does so by disclosing the ordered state progression (implying a directional, non-destructive state transition) and an entry precondition (sufficient training episodes). It still omits whether the advance is one step or to a target level and behavior on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the action and the state ladder, then the gating condition. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and fully-documented params, the description covers the action, the ordered states, and the precondition. The main residual gap is ambiguity about whether one call advances a single step or transitions to a chosen level, which matters for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so fromNodeId and toNodeId are already documented. The description adds the concept of the automation ladder but never ties it to either parameter (no target-level parameter is mentioned), so it contributes only marginal meaning beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('advance') and resource ('automation level for a transfer pair'), and enumerates the full state ladder (manual → ... → fully_autonomous), which strongly disambiguates it from neighbors like get_automation_status. It does not explicitly name or rule out any sibling, but the level ladder makes the operation's identity unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Requires sufficient training episodes' is a genuine precondition, which implies when the call is appropriate. However, there is no guidance on when to use this versus get_automation_status or list_automation_status, and no statement of what happens if the precondition is unmet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_machine_docsBInspect
AI analysis of machine documentation. Upload docs to get suggested capabilities, extracted specs, materials, and tolerances.
| Name | Required | Description | Default |
|---|---|---|---|
| document | No | Document content or reference to analyze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so safety is partly covered and the description's 'upload docs' wording is consistent with a non-read-only but non-destructive operation. The description adds the returned artifacts, but says nothing about whether an analysis record is persisted, what the document reference format is, or any cost/latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with what the tool is before what it returns. No filler, though the output list is compressed into one comma run.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, listing the returned artifacts is genuinely useful and partially compensates. However, for a single-parameter tool whose schema marks 'document' as optional (required: []), the description implies upload is necessary without reconciling that, and leaves persistence/return format unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'document' parameter, so the schema already explains it as 'content or reference'. 'Upload docs' in the description reinforces the intent but adds no syntax, format, or size guidance beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('machine documentation') and an analysis action, and enumerates the outputs (suggested capabilities, specs, materials, tolerances), which makes the function concrete. It does not, however, distinguish itself from adjacent siblings like onboard_machine or create_capability, which could plausibly consume similar inputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, and no alternatives are named despite a large sibling set. 'Upload docs to get...' implies the input shape but not the conditions under which this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_registrationAInspect
Approve a submitted machine registration. Moves it from 'submitted' to 'approved' status, enabling the operator to activate and start accepting jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| registrationId | Yes | Registration ID (e.g. 'reg-1234567890') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is a non-read-only, non-destructive mutation. The description adds substantive behavioral context beyond that: the precise state machine transition (submitted -> approved) and the downstream consequence (operator can activate and accept jobs). It omits reversibility, permissions, and failure modes, but the transition semantics are genuinely informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and followed by the state transition and consequence. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with no output schema and annotations covering the safety profile, the description supplies the key missing context: what state the resource must be in and what approval unlocks. It could optionally note the read counterpart (get_registration) or whether the action is reversible, but nothing essential for calling it is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single registrationId parameter is already documented with a format example ('reg-1234567890'). The description adds no further meaning about the identifier, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (approve) and resource (submitted machine registration) and describes the exact state transition from 'submitted' to 'approved'. It also distinguishes itself from the nearby siblings activate_registration and reject_registration by framing approval as the precondition that enables activation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context for when this applies: the registration must be in 'submitted' state, and the outcome enables the operator to activate. It does not state explicit exclusions (e.g. what to do instead when rejecting or when the registration is already approved), so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_encrypted_bundleAInspect
Archive an encrypted evidence bundle to IPFS and store the resulting CID in the database. Idempotent — returns existing CID if already archived.
| Name | Required | Description | Default |
|---|---|---|---|
| bundleId | Yes | Encrypted evidence bundle ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation safety profile is covered. The description adds real behavioral value beyond that: it discloses idempotency and that an existing CID is returned on repeat calls, which prevents redundant archiving.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the primary action and effect, followed by the idempotency behavior. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation tool with annotations covering safety and an inferred CID return value, the description covers action, destination, persistence, and idempotency. Only the absence of prerequisite/auth context keeps it short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single well-documented bundleId parameter, so baseline 3 applies. The description adds no format or syntax detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (archive) with a specific resource (encrypted evidence bundle), the destination (IPFS), and the side effect (store CID in database). Distinguishes the operation well, though it does not explicitly differentiate from the sibling archive_evidence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus the many sibling evidence tools (archive_evidence, commit_evidence, register_job_evidence_ip). The idempotency note hints at safe re-invocation but says nothing about prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_evidenceAInspect
Archive an evidence bundle to IPFS/Storacha for permanent decentralized storage. Returns the content-addressed CID.
| Name | Required | Description | Default |
|---|---|---|---|
| bundle | Yes | Evidence bundle object to archive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds that storage is permanent/decentralized and that the operation returns a content-addressed CID, which is useful context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with the action and destination front-loaded. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the operation, destination, permanence, and return value, but the input schema exposes only an opaque nested object for 'bundle' with no shape guidance. For a write tool with a required nested object, this leaves a meaningful gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the single 'bundle' parameter is described in the schema as an evidence bundle object. The description does not add any further parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Archive an evidence bundle') plus the destination ('IPFS/Storacha for permanent decentralized storage'). It does not differentiate from the sibling 'archive_encrypted_bundle', so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternatives are given. The existence of siblings like 'archive_encrypted_bundle' and 'commit_evidence' makes this gap meaningful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attach_operator_channelAInspect
Attach a notification/dispatch channel to an operator so PCC knows how to ping them when a job lands. The operator's onboarding agent calls this AFTER the conversation that produced the channel record. Transport is a small stable enum (webhook|email|sms|voice|push|mqtt|file|manual) — vendor specifics live in the free-form describe field, written by the operator's agent. PCC the substrate stays neutral. Returns the channel record with a generated id.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Operator slug (typically the operator's address or unique identifier). | |
| label | Yes | Short human label shown to the operator and in admin UIs: 'Front counter printer', 'Owner's phone'. | |
| enabled | No | Whether the channel is live (defaults to true). | |
| describe | Yes | Plain-English instructions for how PCC should talk to whatever is on the other end. Written by the operator's onboarding agent. Required, ≥4 chars. Example: 'POST JSON with keys order_id, line_items[], deadline_iso. I will POST back {order_id, status} to your reply URL.' | |
| endpoint | No | Transport-specific routing payload. webhook→{url}, email→{address}, sms/voice→{phoneE164}, push→{token,platform}, mqtt→{brokerUrl,topic}, file→{scheme,path}, manual→{}. | |
| direction | No | out=PCC pushes only; in-out=operator's system also replies; in=operator pushes unsolicited. | |
| transport | Yes | Which wire does the message go over. `manual` = no machine endpoint (dashboard-only). | |
| credentialRef | No | Reference to a secret in the credential vault (not the secret itself). PCC resolves it at dispatch time. | |
| replyContract | No | Optional operator-authored contract describing how the operator's system will respond to evidence requests, status pings, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) already establish a non-destructive write. The description adds real context beyond that: it returns the channel record with a generated id, PCC stays transport-neutral, and vendor specifics belong in the free-form describe field. It does not cover permissions/auth prerequisites, but with annotations present the bar is lower.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences that lead with the action, then the lifecycle timing, then the transport/describe contract. The only slightly expendable line is 'PCC the substrate stays neutral,' which is flavor more than instruction but still short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Handles a 9-parameter, nested-object tool well: the caller knows what it does, when to call it, what it returns, and how the enum vs. free-form fields divide responsibility. No output schema exists, yet the return shape (channel record with generated id) is stated; missing only auth/error behavior details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description goes beyond it by explaining the design intent of describe (vendor specifics authored by the operator's agent) and the small stable transport enum while explicitly contrasting it with the free-form field. That adds interpretive value the schema text alone does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (attach) and resource (notification/dispatch channel to an operator) plus the rationale (so PCC can ping them when a job lands). This clearly separates it from list_operator_channels, update_operator_channel and delete_operator_channel. It never names a sibling explicitly, so it stops just short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete timing guidance: 'The operator's onboarding agent calls this AFTER the conversation that produced the channel record.' That tells the agent when in the lifecycle to call it, but there is no explicit when-not or pointer to an alternative (e.g. update_operator_channel for existing records).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_contractBInspect
Build and submit a capability contract with on-chain milestone escrow. Returns job ID and escrow address.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Capability type | |
| profileId | No | Optional capability profile ID | |
| selections | Yes | Configuration selections | |
| assuranceTier | Yes | Assurance tier 0-3 (0=self-reported, 3=ZK-proven+bonds) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal a non-read-only, non-destructive write. The description adds that submission happens and escrow is involved, but omits consequential behavior: whether funds are locked at this step, auth/bond requirements, and irreversibility of the milestone escrow. Some added context, but significant gaps remain for a mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler, front-loading the action and following with the return values. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param mutation with a nested 'selections' object and no output schema, the description helpfully states the return values (job ID and escrow address), partially compensating for the missing output schema. However it leaves prerequisites, escrow-funding implications, and the relationship to sibling escrow tools unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented (including assuranceTier's 0-3 semantics). The description adds no parameter-level meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific compound verb (build and submit) and resource (capability contract) plus the key mechanism (on-chain milestone escrow). It is clear what the tool produces, though it does not explicitly distinguish itself from near siblings like create_capability, protocol_create_escrow, or fund_escrow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites (e.g. must a capability/profile exist first), and no routing to alternatives such as create_capability or fund_escrow. The agent must infer placement from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_priceBInspect
Calculate price for a capability configuration. Returns base price, tier premiums, and estimated total cost.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Capability type | |
| profileId | No | Optional capability profile ID | |
| selections | Yes | Configuration selections (material, dimensions, quantity, etc.) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=false but readOnlyHint=false, which is mildly surprising for a pure calculation and is neither explained nor reconciled. The description does add value by disclosing the returned components (base price, tier premiums, total), which matters since there is no output schema, but it omits side effects, permissions, and caching behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with the purpose front-loaded and the return contents second; no filler and nothing that could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description appropriately explains what is returned, and the fully documented schema covers the inputs. The main remaining gap is the unresolved readOnlyHint=false signal for what reads like a side-effect-free calculation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents type, profileId, and selections (including the nested material/dimensions/quantity fields). The description adds no syntax or format detail beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate price for a capability configuration') and is clearly distinct from calculation siblings such as calculate_roi. It does not explicitly differentiate itself from adjacent quote/fee tools like pcc.op.capability.request_quote or protocol_fee, so sibling routing is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no named alternative, even though the sibling list contains several pricing/quote/fee tools (calculate_roi, request_quote, protocol_fee, pcc_protocol_fee) that an agent must choose between. Prerequisites for calling it are also unstated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_roiBInspect
Calculate ROI projection for onboarding equipment. Returns month-by-month revenue, cost, and break-even analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| avgJobValue | No | Average revenue per job in USD | |
| monthlyCost | No | Monthly operating cost in USD | |
| utilization | No | Expected utilization percentage (0-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the safety profile is partly covered, though the non-read-only flag is unexplained for something that reads as a pure computation. The description adds useful behavioral detail by disclosing the response shape (month-by-month revenue, cost, break-even), which matters since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both earning their place: the first states purpose, the second states output. Front-loaded and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description compensates for the missing output schema by summarizing returns, and all params are documented in the schema. However, it omits what happens when the optional parameters are omitted (defaults), and gives no usage context, leaving a gap for a projection tool with zero required inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (avgJobValue, monthlyCost, utilization) are already documented in the schema. The description adds no parameter-level meaning, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate ROI projection') plus the domain ('for onboarding equipment'), so the agent knows what the tool produces. It does not explicitly distinguish itself from the nearby sibling calculate_price, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for onboarding equipment' implies the usage context, but there is no explicit when-to-use statement, no exclusions, and no named alternative (e.g. calculate_price). Usage is only inferable from the domain wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_protocol_runAInspect
Cancel a protocol run. Cannot be cancelled once completed or already cancelled.
| Name | Required | Description | Default |
|---|---|---|---|
| runId | Yes | Protocol run ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so safety is covered, and the description adds real behavioral context by disclosing the terminal-state constraint on cancellation. It stops short of saying whether cancellation is reversible, idempotent, or permission-gated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and followed immediately by the constraint. Every clause earns its place with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation tool with no output schema, the action and its precondition are sufficient to invoke it correctly. A brief note on the effect of a successful cancellation (state transition, return value) would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter and schema coverage is 100%, with the schema describing it as 'Protocol run ID to cancel'. The description adds no format, naming, or sourcing detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (cancel a protocol run), which is unambiguous on its own. However, it does nothing to distinguish itself from close siblings like pause_protocol_run, resume_protocol_run, or start_protocol_run that operate on the same resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence gives a useful precondition (not completed, not already cancelled), which implies when not to call it. But it never names an alternative action or tells the agent how cancellation differs from pausing, so routing between the lifecycle siblings remains guesswork.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_inviteARead-onlyInspect
Validate an invite code before redeeming it. Returns whether the code is valid and what it includes.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Invite code to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuine value by disclosing the return shape ('whether the code is valid and what it includes'), which matters since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the action first, then the return value. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with annotations covering the safety profile and the description covering the return, the definition is nearly complete. The only gap is not naming the redeeming tool as the follow-up alternative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter at 100% schema description coverage, the schema already documents 'code' as the invite code to check. The description adds no format, syntax, or length detail beyond that, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Validate') and resource ('invite code') and situates it in a workflow ('before redeeming it'). It clearly signals a pre-redemption check, but does not name the sibling redeem_invite outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before redeeming it' implies when to use this tool versus redeeming directly, which is useful. However, it never explicitly names the alternative tool (redeem_invite) or states when NOT to use it, leaving the routing partly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_support_repliesARead-onlyInspect
Check for admin replies on the operator's support threads. Call this periodically or when the operator asks 'did they respond yet?'. Returns all threads for this kernel and a hasUnreadReplies boolean indicating new admin messages.
| Name | Required | Description | Default |
|---|---|---|---|
| kernelId | Yes | Operator's kernel ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely new behavioral context: the return payload is all threads for the kernel plus a hasUnreadReplies boolean, which is important for a polling tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler: purpose first, then the trigger condition, then the return shape. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-param read-only poller with no output schema, the description covers purpose, trigger, and the key return fields. It stops short of describing thread structure or ordering, but nothing essential to calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema description coverage ('Operator's kernel ID'), so the schema carries the load. The description reinforces the scoping ('all threads for this kernel') but adds no syntax or format detail beyond the schema, matching the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Check') and resource ('admin replies on the operator's support threads'), and implicitly scopes to 'this kernel'. An agent can distinguish it from send_support_message and reply_to_support_thread, which are the write-side siblings in the same domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit trigger conditions: 'Call this periodically or when the operator asks did they respond yet?'. This is clear context for invocation, though it names no exclusions or alternative tools (e.g. list_conversations) for related lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_bountyBInspect
Claim a bounty to onboard a new capability. The operator commits to registering the capability and completing verification.
| Name | Required | Description | Default |
|---|---|---|---|
| bountyId | Yes | ID of the bounty to claim | |
| operatorId | Yes | ID of the operator claiming the bounty |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-destructive mutation (readOnlyHint=false, destructiveHint=false). The description adds meaningful obligation context, that the operator commits to registering the capability and completing verification, but it doesn't state whether the claim is exclusive, what happens on failure to complete, or what the response signals.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the action front-loaded and the commitment detail second. No wasted text, though it could arguably say more given the surrounding ecosystem.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers what it does and the operator's obligation but omits prerequisites (bounty availability, how to find bountyId via list_bounties) and post-claim state. Annotations cover the safety profile, so this is adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both bountyId and operatorId clearly documented, so the schema carries the weight. The description adds no format, ID-source, or constraint detail beyond the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('claim a bounty') and adds purpose ('to onboard a new capability'), which distinguishes it from read-side siblings like list_bounties. It doesn't explicitly contrast itself with verify_bounty or convert_bounty_to_pool, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the stated goal of onboarding a capability, but there is no explicit when-to-use or when-not-to-use guidance, and no prerequisite (e.g. that the bounty must be listed/available, or how this relates to verify_bounty). The agent must infer the trigger conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_ip_revenueBInspect
Claim earned revenue from an IP asset vault. Returns the claimed amount and transaction hash.
| Name | Required | Description | Default |
|---|---|---|---|
| ipId | Yes | IP asset ID | |
| tokenIds | No | Specific royalty token IDs to claim (optional — claims all if omitted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark it non-read-only and non-destructive, and the description adds the return shape (claimed amount and transaction hash), which is useful context for a value transfer. But for a revenue-claim mutation it omits important traits: whether the action is on-chain/irreversible, gas or fee implications, and any auth requirements. With annotations covering only the safety flags, a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, both front-loaded: the action first, then the return value. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a financial/on-chain claim tool with no output schema, the description sensibly describes the return values in text. However, it is missing the usage routing against get_ip_revenue and any disclosure about irreversibility or fees, leaving an agent under-informed for a value-transfer operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both ipId and tokenIds are already fully documented in the schema, including the 'claims all if omitted' behavior for tokenIds. The description adds no syntax, format, or constraint detail beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Claim') and resource ('earned revenue from an IP asset vault'), which clearly separates it from the read-only sibling get_ip_revenue. However, it does not explicitly name get_ip_revenue or pay_ip_royalty, so the differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus get_ip_revenue (the read counterpart), pay_ip_royalty, or distribute_royalties. No prerequisites such as ownership, vault state, or timing are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_poolCInspect
Operator claims an investment pool reward after capability verification.
| Name | Required | Description | Default |
|---|---|---|---|
| poolId | Yes | Pool ID to claim | |
| operatorId | Yes | Operator ID making the claim |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, indicating a non-destructive mutation. The description adds the precondition 'after capability verification', which is meaningful context beyond annotations. However, it doesn't explain what the claim does (e.g., transfers tokens, marks as claimed), whether it's idempotent, or what authorization is needed. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that is concise and wastes no words. It efficiently conveys the core action and one precondition. It could arguably be slightly more informative, but it avoids verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a non-destructive mutation with no output schema and annotations that only cover safety hints, the description is incomplete. It omits what happens on success (e.g., reward transferred, state updated), prerequisites (e.g., verification status), and error conditions. For a claim operation in a complex system with many siblings, this leaves too much unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – both poolId and operatorId are documented in the schema. The description adds no parameter details beyond what the schema provides. Baseline 3 is appropriate when the schema fully documents parameters and the description doesn't compensate with extra semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'claims an investment pool reward', which is clear and distinguishable from siblings like claim_bounty, claim_ip_revenue, and stake_in_pool. It doesn't explicitly name those alternatives, but the resource 'investment pool reward' is specific enough to disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is provided. It mentions 'after capability verification' as a precondition but doesn't explain how the agent should verify this, or what alternatives exist (e.g., stake_in_pool, get_pool_earnings). An agent would have to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_poolAInspect
Close an investment pool to new stakes. Pool enters sunset phase.
| Name | Required | Description | Default |
|---|---|---|---|
| poolId | Yes | Pool ID to close |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the agent already knows this mutates state without destroying data. The description usefully confirms that effect is limited to new stakes and that the pool enters a 'sunset phase,' which resolves the ambiguity about whether existing stakes are wiped. It still omits reversibility, whether the operation can be undone, and any permission requirements, so it adds context but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the core action and its scope front-loaded before the state consequence. Nothing can be removed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with annotations present and no output schema, the description covers the essential effect and the resulting state. It is adequate but leaves open what happens to existing stakes and whether the close is reversible, which an agent invoking an irreversible-looking lifecycle change might reasonably need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter (poolId) with 100% schema description coverage, so the schema already carries the semantics. The description adds nothing about the parameter, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Close an investment pool') with a scope qualifier ('to new stakes'), which clearly distinguishes it from sibling mutations like stake_in_pool, claim_pool, and create_investment_pool. It does not name or contrast with any sibling explicitly, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to new stakes' implies the situation in which this tool applies (stopping new participation), but there is no explicit when-to-use guidance, no prerequisites (e.g., pool owner authority), and no exclusion or alternative named. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commit_evidenceAInspect
Create a Merkle commitment for an evidence bundle hash. Used as the first step in ZK proof generation for Tier 3 assurance.
| Name | Required | Description | Default |
|---|---|---|---|
| bundleHash | Yes | SHA-256 hash of the evidence bundle |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive write; the description is consistent with that. It adds no detail on side effects, idempotency, or whether reruns produce duplicate commitments.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences that front-load the action, with the workflow positioning as supporting context. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, non-destructive write tool this covers the essentials. With no output schema, it could mention what the commitment returns, but nothing critical to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so bundleHash is fully documented in the schema. The description adds no format or semantic detail beyond what the schema already provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create a Merkle commitment for an evidence bundle hash') and clarifies the input it operates on. It is distinguishable from siblings like submit_evidence_hash and verify_evidence_zk, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'first step in ZK proof generation for Tier 3 assurance' implies the workflow context and ordering, but no alternatives, prerequisites, or when-not-to-use conditions are given. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_bounty_to_poolCInspect
Convert an existing bounty into an investment pool. Allows community staking toward the bounty's capability.
| Name | Required | Description | Default |
|---|---|---|---|
| bountyId | Yes | Bounty ID to convert to a pool |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive write. However, the description says nothing about the most important behavior for a conversion: whether the bounty ceases to exist as a bounty, whether the action is reversible, or what authorization is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the purpose front-loaded and no padding. The staking clause is slightly extraneous but does not derail the reader.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a state-mutating conversion tool with no output schema and only weak annotation coverage, the description omits the outcome semantics (what the bounty becomes, what happens to existing claims/stakes) that an agent needs before invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single documented parameter, so the baseline is 3. The description adds no format, ID-source, or validation detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Convert an existing bounty into an investment pool'), which an agent can distinguish from create_investment_pool / create_pool since this one requires a pre-existing bounty. The trailing clause about community staking is vague but adds scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance and no routing to alternatives. The word 'existing' implies a bounty must already be present, but the prerequisites (ownership, bounty state, whether it must be unclaimed/unverified) are left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_capabilityAInspect
Register a capability instance for a kernel. Required before submitting jobs — the gateway needs at least one capability per kernel. Creates a liquid-handler, fdm, cnc-3axis, or other capability type.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Human-readable name for the capability | |
| type | Yes | Capability type (e.g. liquid-handler, fdm, cnc-3axis, laser-cut, document-printing) | |
| kernelId | Yes | Kernel ID to register capability for | |
| description | No | Description of what this capability does |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so mutability is covered. The description adds useful prerequisite semantics (at least one capability per kernel before job submission) but says nothing about idempotency, permissions, or what is returned after registration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and then the critical prerequisite. The third sentence largely restates the schema's type enum examples, which is slightly redundant but not wasteful enough to hurt.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the action, the essential prerequisite, and the nominal types. The notable remaining gap is that it never indicates what the call yields (e.g. a capability ID the agent would need later for job submission), which matters given the stated ordering dependency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with 4 documented parameters, so the schema carries parameter meaning. The description's type examples duplicate the schema's own type description and add no format, constraint, or validation detail beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Register') and resource ('a capability instance for a kernel'), and the third sentence enumerates capability types, so the agent knows what gets created. It stops short of explicitly differentiating from near-siblings like register_capability_ip or kernel_announce_capabilities, which could be confused with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the precondition and timing: 'Required before submitting jobs — the gateway needs at least one capability per kernel.' That is genuine when-to-use guidance an agent can act on, though it names no alternative tool or when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_investment_poolBInspect
Create an investment pool for a capability bounty. Stakers earn future protocol fees when the capability goes live.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | No | Currency for the pool | |
| description | Yes | Description of the capability pool | |
| targetAmount | No | Funding target amount | |
| capabilityType | Yes | Type of capability to invest in (e.g. cnc-milling, sla-printing) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the mutation/non-destructive profile is already covered. The description adds meaningful domain behavior—this is a funding vehicle where stakers accrue future protocol fees—but says nothing about permissions, whether the pool is mutable afterward, or what happens when a pool is created twice for the same capability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, action first, purpose second. No filler, no redundancy, and the key noun phrase is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param mutation with no output schema and only partial behavioral annotation coverage, the description is adequate but thin. It omits prerequisites, duplicate-pool handling, and what a successful call yields; the schema covers parameters at 100% but does not compensate for behavioral gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (currency, description, targetAmount, capabilityType) are already documented in the schema. The description adds no syntax, default, or format detail beyond it, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create an investment pool') plus the domain intent (funding a capability bounty, stakers earn future protocol fees). It is more than a restatement of the name. However, it does not distinguish itself from close cousins like convert_bounty_to_pool, stake_in_pool, or create_capability, so sibling differentiation is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to create a pool versus converting an existing bounty to a pool or staking into one, and no prerequisites (e.g., whether the capability must exist first). The agent gets domain context but no routing logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_kernelAInspect
Register a new Shop Kernel (physical site) on the PCC network. Part of Step 2 in the onboarding flow.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Kernel/site name (e.g. 'BioPunk Lab - Bay A') | |
| config | No | Kernel configuration JSON | |
| location | No | Location object with address and geo coordinates | |
| description | No | Description of the site and its capabilities |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a write (readOnlyHint=false) that is non-destructive, so the safety profile is covered. The description adds the onboarding-flow positioning but says nothing about idempotency, required pre-existing state, or what registration produces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero waste, and the core action is front-loaded before the flow context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with three nested object parameters and no output schema, the description is minimal but adequate. It leaves unclear how config/location are consumed and what a successful registration returns, which matters more given the nested payloads.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents name, config, location, and description, and the description adds no syntax or format detail. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Register a new Shop Kernel') and disambiguates the non-obvious term by equating a kernel with a 'physical site'. It clearly differs from the read siblings (get_kernel, list_kernels), though it never names a sibling directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Places the tool in a workflow context ('Step 2 in the onboarding flow'), which implies when to reach for it. However, it gives no prerequisites, no ordering details, and no statement of when NOT to use it or which sibling handles follow-up steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_protocolBInspect
Create a new protocol template draft. Returns the new template ID.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Protocol name | |
| tags | No | Tags for discovery | |
| steps | No | Array of protocol step objects | |
| transfers | No | Array of transfer objects between steps | |
| parameters | No | Array of parameter definitions | |
| description | No | Protocol description | |
| requiredCapabilities | No | Required capability types |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the mutation/safety profile is already covered. The description usefully adds that the result is a 'draft' and that a template ID is returned, but says nothing about validation, required capabilities, or what happens to the arrays supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the creation action front-loaded and the return value second. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter create tool with full schema coverage and no output schema, the description compensates by naming the returned ID. It is adequate to call the tool, though it omits lifecycle context (draft vs published) that would help sequencing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters are documented in the schema itself. The description adds no syntax or format detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a new protocol template draft') and adds the return value. The word 'draft' signals it is distinct from publish_protocol and update_protocol, though it does not explicitly name any sibling for contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no alternatives named. The agent is left to infer from 'draft' that a separate publish step follows, but nothing states when to choose this over fork_protocol or create_protocol_run.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_protocol_runCInspect
Instantiate a protocol template as a run on a specific kernel with given parameter values.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Protocol template ID | |
| kernelId | No | Kernel ID to run the protocol on | |
| sampleIds | No | Sample IDs being processed in this run | |
| parameterValues | No | Runtime parameter values (overrides template defaults) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is a write operation (readOnlyHint=false) that is not destructive, so the safety profile is covered. The description adds nothing beyond that: it does not say what side effects the run triggers, what permissions are needed, or whether the template defaults are mutated versus overridden (only implied via schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler or redundancy. It is efficient, though the brevity comes at the cost of the details that would aid invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutation tool with four parameters, a nested parameterValues object, and no output schema. The description never indicates what is returned (e.g., a run ID to feed into get_protocol_run / pause_protocol_run), nor what state the new run starts in, which is important context for a create-style tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so id, kernelId, sampleIds, and parameterValues are already documented in the schema. The description's phrase 'on a specific kernel with given parameter values' mirrors the schema without adding format or constraint detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Instantiate) and resource (a protocol template as a run) plus a scope qualifier (on a specific kernel). It clearly states what is produced, but it does not distinguish itself from close siblings like start_protocol_run, create_protocol, or fork_protocol, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives. With a sibling literally named start_protocol_run, the absence of any routing rule is a real gap for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_shipmentCInspect
Create a new equipment shipment with origin, destination, package details, and provider.
| Name | Required | Description | Default |
|---|---|---|---|
| origin | No | Origin location with label, address, geo coordinates | |
| package | No | Package details (weightKg, dimensions, fragile, etc.) | |
| providerId | No | Logistics provider ID | |
| destination | No | Destination location with label, address, geo coordinates | |
| equipmentDescription | Yes | Description of equipment being shipped |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the write/safety profile is covered structurally. The description adds nothing beyond that: no permission requirements, no idempotency or duplicate-handling behavior, no statement of whether a provider must be registered, and no indication of what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the verb and resource and omits filler. It is efficient, though it wastes its brevity on restating parameter names instead of conveying routing or behavioral information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with nested objects, one required field, and no output schema, the definition is minimally adequate. It does not say what a successful creation yields (e.g., a shipment ID) or how it relates to the quote tool, which an agent would need for correct sequencing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and includes nested object descriptions, so the schema already carries parameter meaning. The description merely echoes the field list (origin, destination, package, provider) without adding format, constraint, or default details. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Create) plus resource (equipment shipment) with an enumeration of the payload fields, which lets an agent distinguish it from read-side siblings like get_shipments and get_shipment_quote. It stops short of explicitly contrasting itself with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives. Notably, get_shipment_quote and get_logistics_overview exist nearby, and the description never says whether a quote must be obtained first or when a shipment should be created directly. No prerequisites or preconditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_operator_channelADestructiveInspect
Remove a channel from an operator. Future jobs will not dispatch to it. Use update_operator_channel with enabled=false to silence temporarily without losing the recipe in describe.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Channel id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: the downstream consequence ('Future jobs will not dispatch to it') and an implied permanence contrasted against temporary disabling. It stops short of stating irreversibility or auth requirements explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: action, consequence, and alternative. The purpose is front-loaded and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive delete with annotations covering the safety profile and full schema coverage, this is complete: it conveys the effect, the permanence relative to disabling, and the sibling alternative. No output schema is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single id parameter, so the schema already documents it fully. The description adds no parameter-level detail (format, source, constraints). Baseline 3 is correct when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Remove) and resource (channel from an operator), and distinguishes itself from the sibling update_operator_channel by naming it explicitly. An agent can tell what this does and what it is not without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use and when-not-to-use guidance, naming the alternative (update_operator_channel with enabled=false) and the condition that selects it (temporary silence without losing the recipe). This is exactly the routing information an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deposit_bondAInspect
Deposit an operator bond for a milestone on-chain. Required for Assurance Tier 3 jobs. Returns transaction hash.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Escrow contract address (0x...) | |
| milestoneIndex | Yes | Milestone index to post bond for (0-based) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation/safety profile is partly covered. The description adds that the bond is posted on-chain but omits permissions/token-approval prerequisites, whether the bond is refundable or slashable, and gas considerations — meaningful gaps for a value-transfer operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and the requirement, with no filler. Every sentence carries distinct information (action, condition, return value).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It helpfully states the return value (transaction hash) even though no output schema exists, and the annotations cover the safety profile. Still, for an on-chain mutation tool it leaves out prerequisites and bond lifecycle behavior, leaving the agent incompletely briefed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (address, milestoneIndex) are already documented in the schema. The description adds no format, range, or 0-based indexing detail beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Deposit) and resource (operator bond for a milestone) and specifies it happens on-chain. It does not, however, distinguish itself from nearby siblings such as fund_escrow, which an agent might reasonably confuse with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete usage condition: 'Required for Assurance Tier 3 jobs.' This tells the agent when the call is mandatory, but it names no alternatives and offers no when-not guidance, so it stops short of full routing clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dispute_verificationAInspect
File a dispute against the consensus verdict. Only verifiers who submitted a response can dispute. Requires additional evidence CID.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | Reason for disputing the consensus | |
| requestId | Yes | Verification request ID (hvreq_...) | |
| disputerId | Yes | Verifier node ID filing the dispute | |
| evidenceCid | Yes | IPFS CID of the counter-evidence |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare this is a non-read-only, non-destructive mutation, so the safety profile is partly covered. The description adds the significant eligibility restriction and the evidence requirement, but says nothing about what the dispute triggers afterwards (escalation, slashing, reversibility) or whether it is idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, purpose front-loaded, no filler. Every sentence carries information, though the middle eligibility sentence could have been folded in without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and fully documented parameters, the definition covers what is needed to call it, but leaves the outcome of a dispute (who resolves it, what happens to the consensus verdict or the disputer) unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (requestId, disputerId, reason, evidenceCid) are already documented. The description only amplifies the evidenceCid requirement with 'additional evidence CID' and adds no format or constraint details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (file) and a specific resource (dispute against the consensus verdict), which distinguishes it from the other dispute-family siblings like file_escrow_dispute and raise_ip_dispute. It is clear but never names those siblings to route the agent explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Only verifiers who submitted a response can dispute' is an explicit eligibility precondition, which is more than most definitions offer. It does not, however, sketch when a dispute is preferable to alternatives such as respond_to_verification or submit_for_human_verification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
distribute_royaltiesBInspect
Set revenue splits for an IP asset among stakeholders (designer, operator, verifier, assembler, curator). Splits must sum to 100.
| Name | Required | Description | Default |
|---|---|---|---|
| ipId | Yes | IP asset ID | |
| splits | Yes | Revenue splits — must sum to 100 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false, so the mutation semantics are implied but not elaborated. The description does not say whether existing splits are overwritten, who is authorized to set them, whether the operation is reversible, or whether it emits a transaction — significant gaps for a write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the core action and the validity constraint front-loaded. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate minimum: the agent knows what to set and the sum constraint, and the schema covers all parameters. But for a mutation with no output schema and only minimal annotations, the description should cover authorization, overwrite behavior, and the effect on existing splits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both ipId and the nested split fields are already documented. The description's enumeration of roles and the sum-to-100 rule merely restates what the schema already encodes, adding no syntax or format detail beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Set revenue splits for an IP asset') plus the stakeholder roles involved. It is distinguishable from read-side siblings like get_ip_revenue and pay_ip_royalty, though it never explicitly names which sibling it is *not*.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or prerequisite information. The agent cannot tell from the description whether this should be called at registration time, on an existing asset, or how it relates to pay_ip_royalty and claim_ip_revenue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
emit_telemetryAInspect
Manually emit a telemetry event for a job pipeline phase. Used by kernels and agents to report execution progress.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID | |
| level | No | Log level for this event | |
| phase | Yes | Pipeline phase name (e.g. intake, binding, execution, evidence, settlement) | |
| source | No | Source module or component | |
| status | Yes | Phase status | |
| metadata | No | Additional event metadata | |
| duration_ms | No | Phase duration in milliseconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive write; the description is consistent with that. It adds that the emission is manual and phase-scoped, but says nothing about persistence, idempotency, duplicate handling, or required authorization — meaningful gaps for a write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and no filler; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter write tool with no output schema, the description covers purpose and audience but leaves out what happens on emission (persistence, confirmation, failure behavior) and any note that the optional fields (level, source, metadata, duration_ms) are optional. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both enums (level, status) are documented in the schema, so the baseline is 3. The description adds no syntax, default, or semantic detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: 'Manually emit a telemetry event for a job pipeline phase.' The word 'Manually' cleanly distinguishes it from the read-side siblings (get_job_telemetry, get_active_telemetry, get_telemetry_logs) and from automatic/system telemetry emission, so an agent can tell write-event from read-event without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence ('Used by kernels and agents to report execution progress') gives implied context on who calls it and why, but there is no explicit when-to-use vs when-not, no mention of alternatives (e.g. system_telemetry or send_diagnostics), and no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_compositionAInspect
Commit a proposed composition: drives the DAG through the workflow engine, each step records a reputation outcome, the composition's reputation is finalized when the run ends. When PCC_COMPOSE_EXECUTE_REAL=true is set on the gateway, steps submit real jobs via JobFacade and the workflow run is durable (@pcc/workflow). When the flag is off, the NOOP runner returns synthetic success — useful in dev/test. Re-executing an already-run composition replays the stored result (idempotent — reputation deltas are applied exactly once).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Composition id from propose_composition. Must be in `proposed` status and not expired. | |
| idempotencyKey | No | Optional caller-supplied key (≤120 chars) to dedupe execute calls. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, but the description goes far beyond by disclosing flag-controlled real vs NOOP execution, durable workflow via @pcc/workflow, idempotent replay semantics, and exactly-once reputation deltas. This is rich behavioral context that an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences front-load the core action and outcome, then cover flag behavior and idempotency. Every sentence carries relevant information, though some tightening is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers execution semantics, environment flags, and idempotency well. It stops short of describing the return value (e.g., run id or status), which would be useful given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented in the schema (id with status precondition, idempotencyKey with length cap). The description adds no parameter-level syntax or format details beyond what the schema provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (commit a proposed composition) and describes downstream effects (drives DAG, records reputation outcomes, finalizes reputation). It implicitly distinguishes from propose_composition but never names it as an alternative in the description itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or alternatives. 'Commit a proposed composition' implies the context but does not state prerequisites (e.g., must be proposed and not expired), nor does it mention when not to use or what alternative tools exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
file_escrow_disputeBInspect
File a dispute against a milestone on-chain. Challenger must post a bond and provide evidence hash. Returns transaction hash.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | Human-readable dispute reason | |
| address | Yes | Escrow contract address (0x...) | |
| challengerBond | Yes | Bond amount in wei (as string) | |
| milestoneIndex | Yes | Milestone index to dispute (0-based) | |
| challengerEvidenceHash | Yes | Evidence hash as 0x-prefixed hex bytes32 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the write/non-destructive profile is already given. The description adds real value by noting the challenger must post a bond (funds movement) and supply an evidence hash, but omits what happens to the bond on failure, whether the action is reversible, and any authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences that are front-loaded with the action and then the requirements. No filler, though it is terse to the point of omitting useful routing and consequence information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Five required params, no output schema, and a mutation with financial stake. The return value (transaction hash) is stated, which is helpful, but the description does not cover the dispute lifecycle or bond consequences, leaving gaps for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with all five params documented (address, milestoneIndex, challengerBond, challengerEvidenceHash, reason). The description restates bond and evidence hash at a high level but adds no format or unit detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'File a dispute against a milestone on-chain.' This is clear enough to distinguish it from read-side siblings like get_escrow_dispute and other dispute tools such as dispute_verification or raise_ip_dispute, though it does not explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites beyond the implied bond, and no routing to alternatives such as dispute_verification or raise_ip_dispute. The agent must infer context entirely from the name and required params.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fork_dashboardAInspect
Fork an existing dashboard into a new artifact you own, preserving lineage back to the original (the social remix verb). Use this to adapt a popular dashboard rather than build from scratch — e.g. fork a 'watch pizza' dashboard and raise the budget or add a receipt window via update_dashboard. Increments the source's fork counter. You can fork any public/unlisted artifact, or a private one you own.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id (ua_...) of the artifact to fork. | |
| name | No | Optional name for the fork (defaults to '<original> (fork)'). | |
| visibility | No | Visibility of the fork (default 'unlisted'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| slug | No | |
| manifest | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so safety profile is already covered. The description adds real value beyond that: it discloses the source-side effect ('Increments the source's fork counter') and the permission rule (public/unlisted any, private only if owned).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and lineage semantics, then use case, side effect, and permissions. Slightly dense with the em-dash aside and repeated 'fork' phrasing, but every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be described. The description covers purpose, context, side effects, and permission constraints; only an explicit alternative/edge case would be needed to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema documents all three params including defaults for name and visibility. The description adds no param syntax or format detail beyond that, so it meets the baseline of 3 rather than adding meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Fork an existing dashboard into a new artifact you own, preserving lineage' gives a specific verb, resource, and outcome. It is clearly distinguishable from siblings like save_dashboard, update_dashboard, and search_dashboards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the intended context ('adapt a popular dashboard rather than build from scratch') and gives a concrete example, plus names update_dashboard as the follow-up for editing the fork. No explicit 'when not to use' or named alternative to forking, so short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fork_protocolAInspect
Fork a protocol template to create your own version with parameter overrides. Returns the new fork ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Protocol template ID to fork | |
| name | No | Name for the forked protocol | |
| parameterOverrides | No | Parameter values to override from the source template |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false and destructive=false, so the description is not the sole source of the safety profile, and it correctly corroborates a non-destructive write. It adds useful value by disclosing the return value ('Returns the new fork ID') despite no output schema, but says nothing about whether the fork is independent of, or affects, the source template.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and followed by the result. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation tool with no output schema, the description covers the action and the return value, and annotations carry the safety profile. However, it omits fork independence from the source template and any overwrite/duplication behavior, which an agent would want before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (id, name, parameterOverrides) are already documented in the schema. The description repeats the 'parameter overrides' concept without adding format, merge semantics, or conflict-resolution details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (fork) and resource (protocol template), plus the effect: creating a customized copy with parameter overrides. An agent can distinguish it from list-style siblings like get_protocol_forks, though it never explicitly contrasts with create_protocol or fork_dashboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the phrase 'create your own version with parameter overrides' – there is no explicit when-to-use statement, no prerequisites, and no named alternative (e.g. create_protocol vs. fork_protocol). Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fund_escrowAInspect
Fund a protocol-created escrow on-chain. Approval is handled INTERNALLY by the gateway for protocol-created escrows (audit C-03 removed the public approve step) — do NOT call a separate approve first; fund directly. Returns transaction hash.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Escrow contract address (0x...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation is a non-read-only, non-destructive write. The description adds real context beyond that: approval is handled internally by the gateway (citing audit C-03 as the reason the public approve step was removed), and it names the return value (transaction hash). It does not cover failure modes or funding limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Content is front-loaded with the action, then the critical approval caveat, then the return value. The parenthetical audit reference is informative justification rather than padding, though it is the one element an agent could do without.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation with no output schema, the definition covers the action, the surprising internal-approval behavior, and the return shape, which is enough to call it correctly. Gaps are minor: no note on gas, token allowances, or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for the single address parameter is 100%, so the baseline is 3. The description lifts this slightly by constraining the acceptable input to an escrow address that was created through the protocol, a non-obvious restriction given that generic escrow siblings exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Fund) and resource (protocol-created escrow) plus the execution context (on-chain). The qualifier "protocol-created" separates it from the generic escrow siblings such as protocol_create_escrow and get_escrow, so an agent can identify the right tool without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit negative guidance: "do NOT call a separate approve first; fund directly," which prevents a common multi-step mistake. It does not, however, spell out prerequisites such as the need for a prior protocol_create_escrow or token/allowance requirements, so the routing guidance is clear but incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_telemetryBRead-onlyInspect
List currently active jobs with their current pipeline phase and telemetry status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe read (readOnlyHint=true, destructiveHint=false), so the description is not carrying the safety burden. It adds the scoping trait 'currently active jobs' and names the telemetry fields returned, but says nothing about pagination, ordering, or whether results are global or scoped to the caller.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. The scope constraint ('currently active') and the payload contents are both stated in the first clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the right thing by naming what is returned (pipeline phase, telemetry status), but for a listing endpoint it omits result volume, ordering, and whether the list is bounded. Complexity is low and annotations cover safety, so it is adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and schema description coverage is 100%, so there is nothing for the description to clarify. The rubric's baseline for a zero-parameter tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (currently active jobs) plus the two fields returned (pipeline phase, telemetry status). The word 'active' implicitly distinguishes it from list_jobs and the historical get_telemetry_logs, but it never names a sibling, so differentiation requires the agent's own inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement and no alternatives named. In a namespace containing get_job_telemetry, get_telemetry_logs, get_telemetry_stats, and system_telemetry, an agent gets no routing signal beyond the adjective 'active'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_anomaliesBRead-onlyInspect
Get anomalies involving a specific agent, plus their trust impact score.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | Agent or kernel ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe read (readOnlyHint=true, destructiveHint=false), so safety needs no repetition. The description adds one genuinely useful behavioral fact — the result carries a trust impact score — but omits return shape, count limits, or pagination for what could be a list result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and scope, with the trust-score payload appended. Nothing is wasted and there is no preamble.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with full schema coverage and safety annotations, the definition covers what to query and hints at the return payload. The only gap is enumeration/pagination behavior, which is minor here and there is no output schema to lean on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single agentId parameter is documented in the schema as 'Agent or kernel ID'. The description's 'a specific agent' adds no syntax or format detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource with a filter scope: 'Get anomalies involving a specific agent' plus a stated payload ('trust impact score'). It is distinguishable from get_unresolved_anomalies by the agent scoping, but it never names that sibling explicitly, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'involving a specific agent' implies when it applies, but there is no explicit when-to-use, no when-not condition, and no pointer to get_unresolved_anomalies or get_anomaly_stats as alternatives. An agent must guess which anomaly tool fits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_anomaly_statsARead-onlyInspect
Get aggregate anomaly statistics — total, unresolved, by severity, by category.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds that results are pre-aggregated rather than row-level, but says nothing about scope (global vs per-agent), time window, or whether counts are cached/live.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, followed by the exact breakdown categories. No filler and nothing repeated from structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the enumeration of returned aggregates does useful work. But scope is unresolved: several sibling tools operate per-agent (get_agent_anomalies) or per-state (get_unresolved_anomalies), and this description does not say whether these stats are system-wide or scoped, nor what time range they cover.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no schema surface to compensate for; baseline 4 applies. The description correctly implies no filtering input is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource ('Get aggregate anomaly statistics') and it enumerates the dimensions returned (total, unresolved, by severity, by category), which distinguishes it from list-style siblings. It never names those siblings explicitly, so the differentiation relies on inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'aggregate' implies this is for summary counts rather than enumerating individual anomalies, which is a real distinction from get_unresolved_anomalies and get_agent_anomalies. However, there is no explicit when-to-use statement, no exclusion, and no named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_automation_statusBRead-onlyInspect
Get automation status for a specific instrument-to-instrument transfer pair.
| Name | Required | Description | Default |
|---|---|---|---|
| toNodeId | Yes | Destination instrument node ID | |
| fromNodeId | Yes | Source instrument node ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds nothing beyond that: it does not say what an 'automation status' value represents (e.g., states, last run, errors) or any auth/scope requirement, so it contributes no behavioral context of its own.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It is efficiently sized, though the brevity is as much under-specification as economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the meaning of the returned 'status' — but it never explains what status values or fields to expect. For a query tool with no output schema, the definition is too thin to tell an agent what it will actually receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters carry their own descriptions ('Source/Destination instrument node ID'), so the schema does the work. The description adds no format, ID syntax, or pairing constraints beyond what the schema states, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get automation status') and scopes it to a single instrument-to-instrument transfer pair, which implicitly distinguishes it from list_automation_status. It stops short of naming that sibling explicitly, so an agent must infer the singular-vs-list split.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a specific ... transfer pair' implies a targeted single-pair lookup rather than a bulk listing, which is usable guidance. However, there is no explicit statement of when to prefer this over list_automation_status or what prerequisites (e.g., valid node IDs, existing transfer) apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bounty_leaderboardBRead-onlyInspect
Get the bounty hunter leaderboard showing top operators by bounties claimed and verified.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of entries to return (default 10) |
TDQS
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 covered. The description adds that results are ranked by claimed and verified bounties, which is genuine ranking context, but it does not disclose ordering direction, tie-breaking, or whether the leaderboard is global or scoped, leaving the behavior only partially characterized.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with the verb, resource, and ranking criterion front-loaded. No filler and nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-optional-parameter tool with no output schema, the description covers what the tool returns and the ranking basis. It does not state the ordering or scope of the leaderboard, which is the only meaningful remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single limit parameter is documented in the schema with its default of 10. The description adds nothing about the parameter, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (bounty hunter leaderboard) and qualifies the content as top operators ranked by bounties claimed and verified, which distinguishes it from list_bounties, claim_bounty, and verify_bounty. It does not explicitly name the sibling it is differentiated from, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what the tool returns but gives no when-to-use context, no exclusions, and does not point to alternatives such as get_operator_earnings, get_operator_dashboard, or list_bounties for per-operator or per-bounty data. The agent must infer the usage scenario on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_build_optionsAInspect
Get configuration options for a capability type (materials, dimensions, tolerances, assurance tiers). Use before calling calculate_price.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Capability type (e.g. fdm, cnc-3axis, hplc) | |
| profileId | No | Optional capability profile ID | |
| selections | No | Current selections to refine available options |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (destructiveHint=false), and the description adds the workflow dependency on calculate_price. However, it never reconciles the 'Get' framing with readOnlyHint=false, and it gives no hints about return shape or whether calling it has side effects beyond fetching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with zero filler, and the purpose is front-loaded ahead of the sequencing instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read tool with no output schema and a nested input object, the description covers purpose and the critical dependency on calculate_price. It is complete enough to invoke correctly, though it leaves the return payload and the readOnly=false behavior undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description enumerates the option groups that come back but adds nothing about the `type`, `profileId`, or nested `selections` parameters beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get configuration options for a capability type') and enumerates the option groups returned, so the agent knows what it retrieves. Sibling differentiation is only implicit via the calculate_price link rather than a named contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit sequencing ('Use before calling calculate_price'), which tells the agent where this tool sits in the workflow and why it is needed. It does not state when not to use it or name an alternative, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bundle_ipfsARead-onlyInspect
Get IPFS CIDs for a bundle — returns the primary CID, metadata CID, and Filecoin deal ID if available.
| Name | Required | Description | Default |
|---|---|---|---|
| bundleId | Yes | Evidence bundle ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it a safe read (readOnlyHint=true, destructiveHint=false), so the safety burden is covered. The description adds genuinely useful behavioral context beyond that: the tool returns three specific artifacts and notes the Filecoin deal ID is conditional ('if available'). It discloses no auth or rate-limit behavior, but for a simple getter this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence, front-loaded with the verb and resource, with the return payload described immediately after the dash. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description usefully carries the return-value burden by naming the CIDs and deal ID. Combined with annotations covering safety and a fully documented single parameter, an agent has everything needed to invoke it; only the absence of sibling routing keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter (bundleId) and schema description coverage is 100%, so the schema fully documents it. The description adds no syntax, format, or scoping detail about the bundle ID. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Get) and resource (IPFS CIDs for a bundle) and even enumerates the returned artifacts (primary CID, metadata CID, Filecoin deal ID). It is clear on its own, but it does not distinguish itself from the sibling retrieve_ipfs, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives such as retrieve_ipfs or get_evidence_bundle. Usage is only implied by the name and resource. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_capability_ipCRead-onlyInspect
Get the Story Protocol IP registration for a capability by its capability ID.
| Name | Required | Description | Default |
|---|---|---|---|
| capabilityId | Yes | Capability ID to look up IP registration for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds no behavioral context beyond that: it does not say what happens if no IP registration exists (null, empty, or error), what the return payload contains, or whether the lookup is chain-backed or cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the target resource and lookup key appear immediately. It is efficient, though extremely terse, leaving no room for the routing or edge-case context an agent would benefit from.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple annotated read with a complete one-parameter schema and no output schema, the description covers the basics but is silent on the not-found case and on how the result relates to sibling IP tools. Adequate but with a clear gap around error/empty behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, so the schema already documents 'capabilityId' fully. The description only restates the key relationship ('by its capability ID') without adding format, source, or constraints — baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource (the Story Protocol IP registration for a capability) and specifies the key used ('by its capability ID'). This is unambiguous on its own, though it does not explicitly distinguish itself from nearby siblings like get_registration, get_ip_lineage, or register_capability_ip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_registration or get_ip_lineage, nor any stated preconditions (e.g., the capability must already have a registration). The agent must infer usage entirely from the name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_compositionARead-onlyInspect
Retrieve a previously-proposed composition by id. Returns 404 if unknown, 410 if the 30-minute proposal window has expired. Use this to inspect a plan before executing, or to recover a plan id after a restart.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Composition id (returned from propose_composition). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read, but the description adds real behavioral context the annotations cannot: a 30-minute proposal TTL and the specific failure codes (404 unknown, 410 expired). The expiry semantics materially change how an agent must sequence calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with what it does, then error semantics, then usage. Every clause carries information; nothing is restated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description carries the burden of return behavior; it fully covers the error cases but never says what a retrieved composition contains. For a read-by-id tool with known error semantics, this is nearly complete, missing only the payload shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the id parameter is already documented as coming from propose_composition; baseline would be 3. The description adds meaning beyond the schema by implying the id is only valid within a 30-minute window, which is a validity constraint on the parameter itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Retrieve a previously-proposed composition by id') and immediately frames the resource as the artifact produced by propose_composition and consumed by execute_composition. An agent can distinguish it from both siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two concrete use cases: inspecting a plan before executing and recovering a plan id after a restart. It stops short of naming the alternative tools (propose_composition / execute_composition) explicitly, so the routing is strongly implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dashboardARead-onlyInspect
Recall a saved dashboard by its id or slug. Returns the full artifact (manifest + metadata). Use this to reload a dashboard the user asks for again ('open my pizza dashboard') instead of regenerating it — a saved dashboard reloads with zero regeneration. Public for public/unlisted artifacts; owner-only for private ones. Increments the load counter (a popularity signal).
| Name | Required | Description | Default |
|---|---|---|---|
| idOrSlug | Yes | The artifact id (ua_...) or its slug (e.g. 'watch-my-pizza-8k3f', the tail of the /a/<slug> URL). |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| slug | No | |
| manifest | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true; the description adds genuinely non-obvious traits: zero regeneration cost, an access-control rule (public/unlisted accessible to all, private owner-only), and a hidden side effect ('Increments the load counter'). The side effect is notable because a read-only-hinted call still mutates a counter, but it is disclosed rather than hidden. Failure modes (e.g. private artifact not owned) are not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the action and return value, then usage, then access rules, then side effect. Every sentence carries distinct information with no repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not enumerate returns beyond the brief 'manifest + metadata' summary. It supplies the usage context, access control, and side effect an agent needs, and the parameter is fully documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter already documents the ua_... id form and the slug tail of /a/<slug>. The description's 'by its id or slug' merely restates that, adding no syntax or constraint beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Recall a saved dashboard by its id or slug') and immediately says what is returned ('full artifact (manifest + metadata)'). It is easily distinguishable from save_dashboard, update_dashboard, search_dashboards, fork_dashboard, and get_operator_dashboard, and the reload-vs-regenerate framing sharpens the intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete when-to-use with a real user utterance ('open my pizza dashboard') and an explicit when-not (don't regenerate). It never names search_dashboards as the alternative for when the id/slug is unknown, which is the obvious complementary case, so it stops just short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_demand_supplyARead-onlyInspect
Get network-wide demand vs supply timeline data for capacity planning and market analysis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds scope ('network-wide') but says nothing about the time window, granularity, or whether the timeline is bounded — notable given the tool accepts no parameters at all.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler — the verb, scope, and intended application all appear immediately and nothing is repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no input schema, no output schema, and no annotations beyond read-only safety, the description carries the full burden of explaining what comes back. It names the data ('demand vs supply timeline') but leaves the return shape, time horizon, and granularity unstated, which is a meaningful gap for a parameterless reporting tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4; there are no parameter semantics for the description to clarify or omit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and a specific resource ('network-wide demand vs supply timeline data'), which an agent can distinguish from nearby siblings like get_top_demand or submit_demand. It stops short of explicitly contrasting itself with those siblings, so it is clear but not differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for capacity planning and market analysis' implies a use context, but there is no explicit when-to-use/when-not guidance and no named alternative for related queries such as get_top_demand or get_depin_stats. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_depin_statsBRead-onlyInspect
DePIN treasury, soulbound capability certificates, and current reward epoch stats.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered without the description's help. The description contributes the scope of the payload (three stat categories), which is modestly useful context, but says nothing about freshness, aggregation window, or authorization. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence fragment with no waste and the three content areas front-loaded. It reads as a label rather than a sentence, but nothing extraneous is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only stats tool with no output schema, the description is just barely sufficient: it hints at the returned subject matter, but an agent gets no sense of shape or scope of the three payloads it will receive. No return-value explanation is possible since no output schema exists, which limits how complete this can be.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The description adds no parameter information because none is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment names three concrete data domains (DePIN treasury, soulbound capability certificates, reward epoch stats), which tells an agent roughly what content comes back. But it has no verb and never states that it retrieves or returns anything, so the action is only inferred from the tool name. It is more informative than a tautology yet not a clean verb+resource statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no indication of when to call this versus siblings such as get_token_balance, get_operator_earnings, get_settlement_epochs or get_operator_certs, which plausibly overlap with treasury, certificate and epoch data. No preconditions, no exclusions, no alternatives are offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_equipment_classesARead-onlyInspect
List equipment classes (FDM printers, CNC mills, etc.) with market snapshot data including utilization, demand, and pricing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful content about what the snapshot contains (utilization, demand, pricing), but says nothing about return shape, pagination, or freshness of the market data. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the resource first and the payload second, with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param read tool with annotations covering safety and no output schema, the description conveys enough to call it correctly. The only missing piece is any hint about result size or data freshness, which is minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is no schema semantics to compensate for; baseline is 4. The description correctly implies an unfiltered full listing, though it is silent on whether the result set can be scoped.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (equipment classes) with concrete examples (FDM printers, CNC mills) and names the data payload (utilization, demand, pricing). An agent knows what it gets, though the description doesn't distinguish this from near-neighbors like marketplace_categories or pcc_capture_class_registry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no alternatives named among the many sibling list_/get_ tools. An agent must infer the call context entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_escrowARead-onlyInspect
Get escrow details. Pass a DB ID for database record (with milestones and disputes), or an EVM address (0x...) to read directly from the blockchain.
| Name | Required | Description | Default |
|---|---|---|---|
| escrowId | Yes | DB escrow ID or on-chain contract address (0x...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuine value beyond that: the DB path returns milestones and disputes, while the address path reads live from the blockchain. That data-source distinction is exactly the kind of behavioral context annotations don't convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, then the branching input guidance. Nothing wasted and no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with annotations covering safety and no output schema, the description covers input modes and what the DB path returns. It is complete enough to call correctly, though it doesn't mention return shape for the on-chain path or any error behavior for invalid IDs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes escrowId as 'DB escrow ID or on-chain contract address (0x...)'. The description's dual-mode explanation largely reiterates the schema, adding the parenthetical about milestones/disputes for the DB mode but no new syntax or format detail. Baseline 3 is appropriate when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Get escrow details') that clearly states what the tool does, and it explains the two input modes (DB record vs on-chain). It doesn't explicitly distinguish itself from siblings like get_escrow_chain_state, get_escrow_dispute, and get_escrow_events, so sibling differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear guidance on how to choose between the two input modes (DB ID vs EVM address), which is a form of usage guidance. However, there is no comparison against alternative escrow-reading siblings, so an agent must infer when this tool is preferred over get_escrow_chain_state or get_escrow_dispute.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_escrow_chain_stateARead-onlyInspect
Read full on-chain escrow state with all milestone details from the blockchain. More detailed than get_escrow for on-chain contracts.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | On-chain escrow contract address (0x...) |
TDQS
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 covered. The description adds that it returns the FULL state including all milestones, but says nothing about auth requirements, return shape, or pagination. With annotations carrying the safety burden, a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste; the "what it does" clause is front-loaded and the comparative routing note follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-param, read-only tool with no output schema, the description covers purpose, scope, and sibling routing, which is nearly everything an agent needs. It could mention what the returned milestone data includes, but that gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single address parameter with a clear 0x... description, so the schema does the work. The description adds no format or constraint detail beyond what is already documented, making 3 the correct baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) plus resource and scope (full on-chain escrow state with all milestone details from the blockchain), and explicitly distinguishes itself from the sibling get_escrow. An agent can tell the two apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"More detailed than get_escrow for on-chain contracts" gives a clear condition for choosing this over get_escrow, effectively naming the alternative. It stops short of stating when NOT to use it (e.g., off-chain or summary-only needs), so it is strong but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_escrow_disputeBRead-onlyInspect
Read dispute state for a specific milestone from the blockchain.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Escrow contract address (0x...) | |
| milestoneIndex | Yes | Milestone index (0-based) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered by structured data. The description adds one piece of context beyond that – the data is read 'from the blockchain', implying an on-chain rather than cached/indexed source – but says nothing about latency, freshness, or what happens for an invalid milestone index.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every word (read, dispute state, milestone, blockchain) carries information. Nothing to trim and nothing important deferred.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only tool whose annotations already cover the safety profile and whose schema fully documents inputs, the description covers the essentials. Output shape is unspecified but no output schema exists, so 'dispute state' is a reasonable, if thin, signal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both address and milestoneIndex are already documented with format hints (0x..., 0-based). The phrase 'for a specific milestone' restates the milestoneIndex parameter without adding syntax, bounds, or error behavior, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read), resource (dispute state), and scope (a specific milestone, on-chain). An agent knows what it returns. It does not, however, differentiate itself from close siblings such as get_escrow, get_escrow_chain_state, or get_escrow_events, which is what a 5 would require.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of alternatives, even though the sibling list contains several overlapping escrow/dispute readers (get_escrow, get_escrow_chain_state, get_escrow_events, dispute_verification). The agent must infer the selection criterion from the resource name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_escrow_eventsBRead-onlyInspect
Get on-chain event history for an escrow contract. Returns funding, release, dispute, and bond events.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | On-chain escrow contract address (0x...) | |
| fromBlock | No | Starting block number (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds value by naming the event types returned, but says nothing about pagination, ordering, or how fromBlock scopes the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core action and followed by the return categories. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description partially compensates by enumerating the returned event types. Combined with full schema coverage and safety annotations, an agent has enough to call it correctly, though return format and range behavior remain unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both address and fromBlock are documented in the schema. The description adds no syntax, format, or default details beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get on-chain event history for an escrow contract') and enumerates the event categories returned. It is clearly distinguishable from get_escrow or get_escrow_chain_state, but it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus get_escrow, get_escrow_chain_state, or list_escrows. The purpose implies a use case (inspecting events), but no conditions or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_evidence_bundleBRead-onlyInspect
Get an encrypted evidence bundle by its bundle ID. Returns the encrypted payload and key capsules.
| Name | Required | Description | Default |
|---|---|---|---|
| bundleId | Yes | Evidence bundle ID |
TDQS
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 covered. The description adds return-content context (encrypted payload + key capsules), but omits the downstream implication that decryption requires another tool (e.g., lit_decrypt) and whether access grants are required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, action first and return value second, with no filler. Nothing repeats the name gratuitously beyond the necessary verb-resource pairing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read with no output schema, the description does the minimum by naming the returned fields. It stops short of explaining what key capsules enable or how this fits the evidence workflow, leaving the agent to infer the decryption step.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single bundleId parameter is already documented there; the description only restates 'by its bundle ID' without adding format, origin, or how the ID is obtained. Baseline 3 is appropriate when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: retrieves an encrypted evidence bundle identified by bundle ID, and describes the return content (encrypted payload plus key capsules). It does not, however, distinguish itself from close siblings such as get_bundle_ipfs, list_evidence, or verify_evidence_zk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool rather than the alternatives in a crowded evidence family (get_bundle_ipfs, list_evidence, archive_encrypted_bundle, grant_evidence_access). No prerequisites or preconditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_installationsBRead-onlyInspect
List equipment installation orders with step progress and status.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by installation status (draft, scheduled, in_progress, completed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description mentions 'step progress and status' as what is listed, which adds some context about return content, but it does not describe pagination, ordering, or other behavioral traits. With annotations covering safety, a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that is front-loaded with the main action. It earns its place without waste, though it could be slightly more informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with one well-documented parameter and no output schema, the description is minimally adequate. It does not explain what 'step progress' entails or the structure of returned orders, which might be helpful. However, given the annotations and schema, it is sufficient to call correctly but leaves gaps in understanding the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the single parameter 'status' fully documented including enum-like values in the schema description. The tool description does not add any parameter details beyond what the schema provides. Baseline 3 is correct when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'List equipment installation orders with step progress and status.' This is clear about what the tool does. However, it does not distinguish itself from other list/get tools in the sibling set, such as get_shipments or get_equipment_classes, beyond the resource name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives, nor any conditions or exclusions. The description merely states what it does; it does not help the agent decide between this and similar listing tools like get_shipments or list_jobs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_lineageBRead-onlyInspect
Get the full IP lineage chain for an asset — parent capabilities and all derivative job registrations.
| Name | Required | Description | Default |
|---|---|---|---|
| ipId | Yes | IP asset ID |
TDQS
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 covered. The description adds the useful detail that the result is a lineage chain spanning parents and derivative job registrations, but says nothing about depth limits, pagination, or behavior when the IP has no derivations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the verb front-loaded and no filler. The em-dash clause is informative rather than redundant, though 'derivative job registrations' could be marginally clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, single-parameter read tool with no output schema, the description gives enough to know what the call returns conceptually. Missing only edge-case behavior (empty lineage, depth) that an agent might want before relying on the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 100% schema description coverage ('IP asset ID'), the schema carries the semantics. The description only restates that the lookup is 'for an asset' and adds no format, ID-prefix, or validation detail beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the full IP lineage chain') and enumerates the chain's components (parent capabilities and derivative job registrations), which distinguishes it from the many other `get_*` IP tools. It does not explicitly name a sibling to contrast with, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to prefer this over adjacent tools like get_capability_ip or get_registration, nor any prerequisite or exclusion stated. The agent must infer the use case from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ip_revenueBRead-onlyInspect
Get a revenue snapshot for an IP asset — total earned, pending claims, and recent payments.
| Name | Required | Description | Default |
|---|---|---|---|
| ipId | Yes | IP asset ID |
TDQS
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 covered. The description reinforces this by describing a snapshot/read and names the fields returned, which is useful but not rich behavioral context (no auth, freshness, or pagination notes).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single em-dash clause that front-loads the core action and then lists the payload. No filler, though it is brief to the point of omitting routing guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully names the returned figures, and annotations cover the read-only nature. For a one-parameter read tool this is nearly complete, missing only a pointer to the related claim tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single required ipId parameter, so the schema already documents the only input. The description adds no format or identifier guidance beyond the schema, making 3 the appropriate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (revenue snapshot for an IP asset) and enumerates the returned figures (total earned, pending claims, recent payments). It is distinguishable from the similarly named claim_ip_revenue, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given. With a sibling named claim_ip_revenue in the toolset, the agent gets no help deciding between reading revenue and claiming it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jobBRead-onlyInspect
Get job details including progress, evidence bundles, and milestones.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered by structured data. The description adds only the content categories returned; it says nothing about authorization requirements, whether a missing job errors or returns empty, or pagination. Reasonable but thin given annotations carry the main load.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the returned-content list is placed immediately after the verb+resource. It is efficient, though slightly terse for a tool with this many siblings.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple read tool with one required parameter, full schema coverage, and annotations covering the safety profile. Since no output schema exists, the enumeration of returned content (progress, evidence bundles, milestones) does useful work, though the missing sibling differentiation is a residual gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is a single required parameter, so the schema already documents jobId fully. The description adds no format or sourcing detail beyond what the schema provides, which matches the baseline 3 for schema-documented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('job') and enumerates the payload (progress, evidence bundles, milestones), which is more than a tautology. It does not, however, differentiate itself from close siblings such as get_job_telemetry, get_kernel_jobs, or list_jobs, leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of prerequisites, and no named alternative. With siblings like get_job_telemetry and list_jobs in the same namespace, the description should say when to prefer this tool over them but offers nothing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_telemetryBRead-onlyInspect
Get full event timeline for a specific job — all pipeline phase transitions with timings and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID to get pipeline timeline for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuine value by describing the returned content (all phase transitions with timings and metadata), but it omits scope limits such as pagination, retention window, or whether the timeline is complete for finished jobs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, and the em-dash clause adds the payload detail without padding. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-param read tool with annotations covering safety and no output schema, the description conveys the return shape adequately. What is missing is differentiation from the many sibling telemetry/job tools, which an agent needs in order to pick correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required param, and schema coverage is 100% ('Job ID to get pipeline timeline for'). The description's 'for a specific job' merely restates the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Get full event timeline for a specific job') and even enumerates the payload's nature ('phase transitions with timings and metadata'). It is clear, but it never distinguishes itself from close siblings such as get_job, get_telemetry_logs, get_active_telemetry, or get_telemetry_stats, leaving the agent to guess which timeline/telemetry tool applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives, no prerequisite (e.g. job must exist or be in a terminal state), and no exclusion. With five-plus telemetry- and job-related siblings, the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_kernelARead-onlyInspect
Get kernel details including full capability objects, devices, and queue.
| Name | Required | Description | Default |
|---|---|---|---|
| kernelId | Yes | Kernel ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a safe read (readOnlyHint=true, destructiveHint=false), so the description's main job is disclosing what comes back. It does so by naming the richer contents (full capability objects, devices, queue), which is meaningful since there is no output schema. It stops short of describing pagination, missing-kernel behavior, or payload size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler. The contents list is placed immediately after the verb-resource pair, so the most useful information is read first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read with no output schema, naming the returned sections compensates well for the absent return-value documentation. It is only mildly incomplete in not covering edge cases such as an unknown kernel ID or how this relates to the similarly-named kernel sub-resource getters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, kernelId, and schema description coverage is 100%, so the schema already documents it. The description adds no format hints (e.g., where a kernel ID comes from) beyond what the schema provides, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (kernel) and enumerates what the payload contains: capability objects, devices, and queue. This partially differentiates it from siblings like get_kernel_devices, get_kernel_jobs, and get_kernel_sensors, though it does not explicitly say it supersedes them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: fetch the full detail record for one kernel by ID. There is no explicit guidance on when to prefer this over list_kernels or the narrower get_kernel_devices / get_kernel_sensors calls, and no exclusions or prerequisites given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_kernel_devicesBRead-onlyInspect
List all devices registered under a specific kernel, including adapter configs and device types.
| Name | Required | Description | Default |
|---|---|---|---|
| kernelId | Yes | Kernel ID |
TDQS
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 useful content context about what the list includes, but does not disclose other behavioral traits like authentication requirements, pagination, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It conveys the core purpose and extra content efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with annotations covering safety, the description is mostly complete: it states the resource and what is included. It does not mention return structure or pagination, but no output schema exists and the tool is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single kernelId parameter, so the schema already documents it. The description mentions 'a specific kernel' but adds no new syntactic or semantic detail beyond what the schema provides, making the baseline of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('all devices registered under a specific kernel'), including what extra data is returned ('adapter configs and device types'). It does not explicitly differentiate from siblings like get_kernel_jobs or get_kernel_sensors, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as get_kernel_sensors or get_kernel_jobs. It only describes the output, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_kernel_jobsBRead-onlyInspect
List all jobs submitted to a specific kernel, including job status and progress.
| Name | Required | Description | Default |
|---|---|---|---|
| kernelId | Yes | Kernel ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds that returned jobs include status and progress, but says nothing about pagination, ordering, auth, or result limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no redundant clauses. It is appropriately sized, though it could have used a second short sentence for routing without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only list tool with no output schema, the description covers the core action and return content (status/progress). Pagination and ordering are unaddressed, but the simple schema and annotations carry most of the remaining burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is one required kernelId documented as 'Kernel ID'. The description adds no parameter syntax or constraints beyond what the schema already provides, making 3 the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (jobs submitted to a specific kernel), which distinguishes it from broad list_jobs and single-job get_job. It does not explicitly name siblings, so differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives no explicit when-to-use guidance, prerequisites, or alternatives. The agent can infer it is for kernel-scoped job listing, but nothing steers it between this, list_jobs, get_job, or get_job_telemetry.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_kernel_sensorsBRead-onlyInspect
Get sensor channels for a specific kernel. Returns live channel descriptors.
| Name | Required | Description | Default |
|---|---|---|---|
| kernelId | Yes | Kernel ID to get sensors for |
TDQS
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 covered. The description adds that it returns 'live channel descriptors', but does not describe pagination, auth needs, freshness semantics, or what 'live' operationally means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no waste: the core operation is front-loaded, and the return-type note adds useful information without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup, the description covers purpose and a basic return type. However, with no output schema, it leaves the actual shape and meaning of 'live channel descriptors' vague, which is a gap for an agent consuming the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single kernelId parameter is already fully documented. The description's 'for a specific kernel' repeats the schema rather than adding syntax, format, or constraint detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get sensor channels') and scopes it to 'a specific kernel', which helps distinguish it from broader sensor or kernel tools. It does not explicitly name an alternative sibling, so it stops short of the highest clarity band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, prerequisites, or alternative tools. It only implies usage from the required kernelId and the phrase 'for a specific kernel'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lit_conditionsARead-onlyInspect
Get Lit Protocol access conditions for a Lit-encrypted evidence bundle. Returns the conditions that gate decryption.
| Name | Required | Description | Default |
|---|---|---|---|
| bundleId | Yes | Evidence bundle ID (must be Lit-encrypted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds that the tool returns conditions gating decryption, but says nothing about permissions required, pagination, or error behavior for non-Lit-encrypted bundles.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no filler, and the core purpose is front-loaded in the first clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with one fully documented parameter and no output schema, the description covers what the tool does and what it returns. Minor omissions (alternatives, prerequisite handling for non-encrypted bundles) keep it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single bundleId parameter is well documented in the schema itself, including the 'must be Lit-encrypted' constraint. The description adds nothing beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (get), resource (Lit Protocol access conditions), and scope (a Lit-encrypted evidence bundle), and even clarifies the return ('conditions that gate decryption'). This distinguishes it from lit_decrypt and get_evidence_bundle, though it does not name those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: retrieve access conditions when working with a Lit-encrypted bundle. There is no explicit when-to-use/when-not guidance and no reference to alternatives such as lit_decrypt or get_evidence_bundle, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_logistics_overviewBRead-onlyInspect
Logistics hub overview: active shipments, pending installations, and upcoming bookings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds the useful structural fact that the response aggregates three categories, but says nothing about scope limits, filtering, or freshness of the returned data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence, front-loaded with the resource and immediately followed by the content categories. No wasted words, though it is a noun-phrase fragment rather than a full verb statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-param read tool with annotations covering safety and no output schema, the description conveys what categories come back, which is the main thing an agent needs. It falls short on any indication of return shape, ordering, or volume limits, leaving some ambiguity about the payload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to document. Baseline 4 applies; the description correctly implies a parameterless global overview.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (logistics hub) and enumerates the three data categories it aggregates: active shipments, pending installations, upcoming bookings. This lets an agent recognize it as a composite/overview tool distinct from the granular get_shipments, get_installations and get_space_bookings siblings, though it doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to prefer this overview over the dedicated siblings (get_shipments, get_installations, get_space_bookings), nor any exclusions or prerequisites. The agent must infer usage from the word 'overview' alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_marketplace_overviewBRead-onlyInspect
Equipment marketplace overview with demand/supply metrics across all capability types.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds nothing further: no scope (global vs account-scoped), no freshness/cadence of the metrics, no return shape hints. For an aggregate dashboard tool this is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, which is appropriate for a no-arg read. It is on the terse side for an aggregation tool, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no params, the description is the only source of information about what the tool returns, and it only gestures at 'demand/supply metrics'. It does not say what breakdowns, time windows, or entity scope the overview covers, nor how it differs from sibling metric tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to compensate for. It correctly implies a parameterless snapshot call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('Equipment marketplace overview') and names the content dimension (demand/supply metrics across capability types). However, it does not distinguish itself from sibling reads like get_demand_supply, get_depin_stats, or get_logistics_overview, which appear to cover overlapping territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as get_demand_supply despite the obvious overlap. The agent must guess which of the several metrics/dashboard reads is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_operator_certsARead-onlyInspect
Answers 501 not_available: operator certifications are not recorded on this gateway (there is no certification store; certifications typed at registration are the operator's own claim and are not checked).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the exact runtime behavior (a 501 not_available response) and the backend reason (no certification store), which is far more than a normal read tool would need. This is consistent with readOnlyHint=true/destructiveHint=false and prevents an agent from expecting returned cert records.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the operative fact ('Answers 501 not_available') followed by the explanation. It is a single dense sentence; the parenthetical is slightly heavy but every clause carries useful information for the caller.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter stub with no output schema, the description fully accounts for what the caller will get and why, so nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is fully empty, so per the rubric the baseline is 4. There is no parameter meaning that the description could add or omit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: it answers a 501 not_available and never returns certification data. That is a specific, non-tautological purpose and it implicitly distinguishes this stub from data-bearing siblings like get_operator_status or get_registration, though it does not name any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clarifies that certifications 'typed at registration are the operator's own claim and are not checked', which steers the agent away from treating certs as verified data, but it gives no explicit when-to-use/when-not framing and names no alternative tool for operator provenance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_operator_dashboardARead-onlyInspect
Not available: no route answers GET /api/operator on this gateway. The operator's real kernels, devices and in-flight jobs are at GET /api/agent/me.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only, but the description adds crucial behavioral context: the tool will not work because no route answers. It does not specify the exact error response, but the unavailability notice is a significant disclosure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the critical unavailability notice followed by the redirect. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, non-functional tool with annotations covering the safety profile, the description provides enough to prevent misuse. It could mention the exact error or a sibling tool name for the alternative, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema baseline is 4. The description adds no parameter information, which is appropriate given the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is unavailable ('no route answers GET /api/operator') and points to an alternative endpoint. It is specific about the missing route and distinguishes itself from real-data tools, but it never describes a functional verb+resource action, so it only partially fulfills the purpose-clarity burden.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent not to use this tool ('Not available') and directs to GET /api/agent/me for the real kernels, devices and in-flight jobs. The alternative is an HTTP route rather than a sibling MCP tool name, which slightly reduces actionability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_operator_earningsARead-onlyInspect
Answers 501 not_available: operator earnings history is not recorded on this gateway. Per-job payment state is at GET /api/jobs/:jobId/execution.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Time period for earnings data |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true and destructiveHint=false; the description adds the critical behavioral fact that this tool always returns 501 not_available, which no annotation conveys and which prevents wasted calls. It stops short of describing the response body or whether the endpoint may be populated on other gateways.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the unavailability fact and followed immediately by the alternative location. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stub with no output schema and one schema-documented parameter, the description supplies what an agent actually needs: that the call fails and where the data lives. It could be stronger by mapping the redirect to concrete sibling tool names or noting that the 'period' argument has no effect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'period' parameter has an enum, so the schema fully documents it. The description never mentions the period parameter or clarifies that it is ignored, which counts against an otherwise schema-complete parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states plainly that this tool answers 501 not_available and that operator earnings history is not recorded on this gateway, so an agent immediately knows it is a stub rather than a working earnings endpoint. It does not name a sibling tool for the data, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear redirect: per-job payment state lives at GET /api/jobs/:jobId/execution, which implies the agent should use the job/execution tool instead. It does not cite the sibling tool by name (e.g. get_job / get_job_telemetry), so the routing requires an extra inference step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_operator_machinesARead-onlyInspect
Answers 501 not_available: operator machines with utilization and uptime are not recorded on this gateway. The operator's real kernels, devices and in-flight jobs are at GET /api/agent/me.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint=true and destructiveHint=false, the description adds the critical behavioral fact that calls will fail with 501 and that data is not recorded on this gateway. This prevents a wasted invocation and is more than the annotations provide, though it omits details like authentication or exact response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The 501 failure and unavailability are front-loaded, followed immediately by the redirect to the correct endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter endpoint that always returns 501, the description fully explains the status and where to find the actual data. With no output schema or complex inputs, nothing further is needed to call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which establishes a baseline of 4. The description appropriately adds no parameter detail because there are no inputs to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the effective behavior: this tool answers 501 not_available and does not record operator machine utilization/uptime. It distinguishes itself from a normal data-returning get by explicitly declaring unavailability and pointing to the correct endpoint, though it does not name a sibling MCP tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly tells the agent that operator machines are not available here and directs it to GET /api/agent/me for real kernels, devices, and in-flight jobs. The guidance is explicit about the alternative destination but does not spell out a formal when-to-use/when-not-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_operator_statusARead-onlyInspect
Four-slot substrate view for an operator: kernels, capabilities (with sla + availability), notification channels, and the per-kernel A2A agent-card URLs. Returns totals and a missing list naming any of the four onboarding slots that are still empty. Use this from an onboarding agent's wrap-up step to confirm 'are all four slots wired before I go live?' status is ready | partial | unconfigured. Public — operator slug is non-secret and the response carries no credentials (channel credentialRef values are vault references, not secrets).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Operator slug — typically the operator's wallet address used as `operatorAddress` on their kernels. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely useful context beyond them: callers learn the endpoint is public, that the slug is non-secret, and that channel credentialRef values are vault references rather than credentials — relevant for an agent deciding whether the call is safe. It does not discuss rate limits or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with what the tool returns and followed by usage and privacy notes. Nearly every clause earns its place, though the parenthetical about credentialRef is slightly tangential to invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-shape burden and does so adequately: totals, a `missing` list, and status values ready|partial|unconfigured. For a one-parameter read tool this is nearly complete, with only pagination/format detail left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is fully documented, so the baseline is 3. The description adds meaning beyond the schema by characterizing the slug as non-secret (typically a wallet address), which affects an agent's handling decisions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('four-slot substrate view for an operator') and enumerates exactly what the four slots are: kernels, capabilities with sla/availability, notification channels, and per-kernel A2A agent-card URLs. The scope is narrow enough that an agent can distinguish it from get_operator_dashboard, get_operator_certs, and list_operator_channels without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the situation for use: 'from an onboarding agent's wrap-up step to confirm are all four slots wired before I go live.' That is a clear context, but no alternative sibling (e.g., a dashboard or certs tool) is named or excluded, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_poolARead-onlyInspect
Get details of a specific investment pool including stakes, status, and revenue share terms.
| Name | Required | Description | Default |
|---|---|---|---|
| poolId | Yes | Investment pool ID |
TDQS
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 covered. The description adds the useful detail of what data the pool record contains, but says nothing about permissions, visibility restrictions, or behavior for an invalid/missing poolId.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource and the payload contents both appear before any trailing words. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup with full schema coverage and no output schema, the description tells the agent what record it retrieves and roughly what fields come back. The only missing piece is routing against sibling pool tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is only one parameter, so the schema fully documents poolId ('Investment pool ID'). Baseline 3 applies; the description adds no format, source, or lookup hints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Get details of a specific investment pool') and it enumerates what is returned (stakes, status, revenue share terms). It does not, however, name or contrast itself with the obvious sibling list_pools, so an agent must infer the singular-vs-plural distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'specific' plus the required poolId implies the usage context (fetch one known pool rather than enumerate), but the description never states when to use this versus list_pools or get_pool_earnings, nor any prerequisites. Usage is implied only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pool_earningsBRead-onlyInspect
Check earnings from capability investment pools for a staker address.
| Name | Required | Description | Default |
|---|---|---|---|
| staker | Yes | Address or DID of the staker |
TDQS
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 covered and the bar is lower. The description adds the scoping context ('capability investment pools'), but says nothing about aggregation across pools, registration requirements, or result shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no wasted words. It is efficient, though its brevity contributes to the gaps in the other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with no output schema, the description covers the essentials, and return values need not be explained. However, it omits whether earnings are aggregated across multiple pools and whether the staker must be registered, which an agent would want to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is fully documented in the schema (100% coverage, 'Address or DID of the staker'), so the baseline is 3. The description only restates that the input is a staker address, adding no format or resolution detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Check earnings from capability investment pools') scoped to a staker address, which an agent can distinguish from siblings like get_operator_earnings or get_pool. It stops short of explicitly naming or contrasting with those closest alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternatives are given. With siblings such as get_operator_earnings, claim_pool, and get_pool in the same domain, the agent gets no help deciding which to call; usage is only implied by the verb 'check'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_popular_csd_templatesARead-onlyInspect
Return CSDs sorted by adoption (usage-count descending). Useful for first-time operators who want to see what kind of capabilities others are publishing. Each entry includes the CSD record plus usage attribution: count, recent adopters (deduped, capped at 50), and lastUsedAt.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1..50, default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive. The description adds valuable behavioral detail by specifying the sort order and the returned usage attribution fields, including deduped recent adopters capped at 50 and lastUsedAt.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight sentences, front-loaded with the core behavior. Each sentence adds distinct value: purpose, intended audience, and return composition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully explains what each entry contains. The read-only annotations cover safety, and the single parameter is fully documented in the schema, leaving only minor gaps such as error behavior or broader CSD context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one optional limit parameter, and schema description coverage is 100%, so the schema already documents its range and default. The description adds no additional parameter meaning beyond the schema, matching the baseline for fully covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: return CSDs sorted by adoption in descending usage-count order. It is clear what the tool does, but it does not explicitly distinguish itself from siblings such as suggest_csd_templates or pcc_orchestrator_list_templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage context: useful for first-time operators who want to see what capabilities others are publishing. It does not state when not to use it or name alternative tools, so it falls short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_protocolBRead-onlyInspect
Get protocol template details by ID. Returns steps, transfers, parameters, and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Protocol template ID |
TDQS
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 covered. The description usefully discloses what the call returns (steps, transfers, parameters, metadata), but says nothing about permissions, pagination, or behavior on a missing/invalid ID.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, with the action and lookup key front-loaded and the return contents second. No filler, though the return-value sentence doubles as compensation for the absent output schema rather than pure economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-param read tool with no output schema and annotations covering safety, the description discloses the returned payload shape (steps, transfers, parameters, metadata), which is exactly the gap an output schema would otherwise fill. Routing to alternatives is the only missing piece.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'id' parameter, so the schema already documents it fully and the description adds only the 'by ID' framing. Baseline 3 is appropriate when the schema carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (protocol template) scoped by ID, and enumerates the returned content. It distinguishes itself from list_protocols (plural listing) and get_protocol_run (a run instance), though it never explicitly names those siblings to remove ambiguity with get_protocol_forks or validate_protocol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by ID' phrasing implies it is a lookup, but there is no statement of when to use this instead of list_protocols, get_protocol_run, or get_protocol_forks, and no prerequisites or exclusions. Guidance is essentially absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_protocol_forksBRead-onlyInspect
List all forks of a protocol template. Shows who forked it and what parameters they changed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Protocol template ID |
TDQS
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 covered. The description adds useful read-behavior context about what the listing contains, but says nothing about pagination, ordering, or behavior when a template has no forks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the core action front-loaded and the return content immediately following. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully characterizes the return payload (forkers and changed parameters), which is enough for a simple one-parameter read tool. Minor gap: no note on scope limits or empty results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'id' parameter is documented as the protocol template ID. The description's phrase 'of a protocol template' is consistent with the schema but adds no syntax or format detail beyond it, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (forks of a protocol template), and adds the returned scope (who forked it, what parameters changed). It is clearly distinguishable from siblings like fork_protocol or get_protocol, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of the related fork_protocol (which creates a fork) or get_protocol (which fetches the template itself). The agent must infer that this is the read-side companion to fork_protocol.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_protocol_runARead-onlyInspect
Get protocol run status including step progress, transfer status, current phase, and evidence hashes.
| Name | Required | Description | Default |
|---|---|---|---|
| runId | Yes | Protocol run ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered by structured data. The description adds real value beyond that by disclosing what the response contains — step progress, transfer status, current phase, and evidence hashes — which matters because no output schema exists. It still says nothing about pagination, staleness of status, or how in-flight versus terminal runs differ.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with a clear verb-resource opener followed by the returned facets. Every clause earns its place and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with a full schema and read-only annotations, the definition supplies the element that structured data cannot — the content of the returned status. The absence of an output schema makes this enumeration important, and it is present, though run lifecycle states and error behavior for bad or unknown run IDs remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 100% schema description coverage, the schema already carries the meaning of runId and the baseline of 3 applies. The description adds no format hints for runId (e.g., where to obtain it, prefix or UUID shape) and does not mention its required nature.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Get') plus a specific resource ('protocol run status') and an enumeration of the returned facets (step progress, transfer status, current phase, evidence hashes). It does not explicitly contrast itself with list_protocol_runs or get_protocol, so the reader must infer the singular-run scope from the required runId, but the purpose itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: because a single required runId is the sole input, an agent can infer this is the per-run lookup counterpart to list_protocol_runs. There is no explicit statement of when to use this versus listing runs or fetching the parent protocol, and no prerequisites or preconditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_registrationARead-onlyInspect
Get details of a specific machine registration by ID, including capabilities, pricing, operator info, and current status.
| Name | Required | Description | Default |
|---|---|---|---|
| registrationId | Yes | Registration ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe read (readOnlyHint=true, destructiveHint=false). The description adds value by previewing the returned content areas (capabilities, pricing, operator info, status), but says nothing about authorization requirements, visibility restrictions, or behavior on an unknown/unauthorized ID. With annotations covering safety, a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, followed by a compact preview of the returned fields. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with no output schema, the description usefully sketches what is returned (capabilities, pricing, operator info, status). It is essentially complete, though it could note that the ID comes from list_registrations or how missing IDs behave.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single, fully schema-documented parameter (registrationId, 100% coverage). The description repeats that lookup is by ID but adds no format, source, or validity semantics beyond the schema. Baseline 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (machine registration) scoped to a single record by ID, and previews the payload contents. It does not explicitly name the sibling list_registrations, but the 'specific ... by ID' framing makes the single-record vs. list distinction inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied only: the 'by ID' phrasing tells the agent it needs a known registration ID, which is the practical precondition. There is no explicit when/when-not guidance and no reference to alternatives such as list_registrations for discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sensor_channelsARead-onlyInspect
List all registered sensor channels across kernels. Returns channel descriptors with units and ranges.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds the return shape (descriptors with units and ranges), which is real added value, but says nothing about pagination, volume, or whether unregistered/dormant channels appear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the scope ('across kernels') front-loaded before the return contents. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully compensates by naming the returned fields (units, ranges). For a read-only, zero-parameter listing tool that is nearly sufficient; only the absence of any result-size or scoping note keeps it below a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline for a no-param tool applies. No misleading parameter claims are made.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('List') plus resource ('registered sensor channels across kernels'), which tells the agent this is the cross-kernel view rather than the per-kernel get_kernel_sensors. It does not explicitly name that sibling, so differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, no when-not-to-use, and no alternative named despite get_kernel_sensors, get_kernel_sensors and get_sensor_channels sitting adjacent in the tool list. The agent must infer that this is the broad inventory call from the word 'across kernels' alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_settlement_epochsBRead-onlyInspect
Get settlement epoch history showing past batch settlements with timing and operation counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds the shape of the payload (timing and operation counts), but says nothing about pagination, ordering, or result limits for a potentially unbounded history endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence, front-loaded with the action and resource. Nothing is wasted, though it is spare even by minimal standards.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only history tool the description is nearly sufficient, but it omits any hint about result volume, pagination, or time-ordered output, and there is no output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to explain; the baseline of 4 applies. Schema coverage is 100% and empty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get settlement epoch history') and adds scope details ('past batch settlements with timing and operation counts'), so the agent knows what it returns. It does not, however, differentiate itself from close siblings like get_settlement_status or list_batches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus get_settlement_status, list_batches, or the other settlement-related tools. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_settlement_statusARead-onlyInspect
Get settlement pipeline status including pending operations count, total value queued, and smart account address.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds the concrete return fields, which is useful, but discloses no further behavior such as refresh cadence, aggregation semantics, or what 'settlement pipeline' scopes (per-user, per-network, per-account). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the resource and then the three returned values. No filler, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read tool with no output schema, the description communicates the essential shape of the returned data. It stops short of explaining the settlement domain itself (e.g., what a pending operation means or when settlement completes), which would help an agent interpret the result, but within this tool's scope it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies no input is needed by defining the tool purely in terms of outputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (settlement pipeline status), then enumerates exactly what is returned: pending operations count, total value queued, and smart account address. This is far more specific than the many sibling 'get_*' tools and lets an agent distinguish it from get_settlement_epochs and get_write_status at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (check settlement pipeline state) but never states when to choose this over the closely named get_settlement_epochs, nor any precondition or exclusion. The sibling set is enormous, so the absence of routing guidance is a real but moderate gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shipment_quoteCInspect
Get shipping quotes from logistics providers based on origin, destination, weight, and priority.
| Name | Required | Description | Default |
|---|---|---|---|
| priority | No | Shipping priority level | |
| weightKg | No | Package weight in kg | |
| originZip | No | Origin ZIP code | |
| destinationZip | No | Destination ZIP code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the operation is not a pure read and presumably has side effects (external provider calls, possibly cost or a persisted quote), yet the description's read-flavored 'Get' wording discloses none of that, nor rate limits, auth needs, or whether a quote is reserved/locked. It adds no behavioral context beyond the title-level statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource and driving inputs come first. It is efficient, though it is so terse that the brevity comes at the cost of guidance rather than through tight editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotation detail, and the schema marks zero required parameters, which the description never addresses (it reads as if all four inputs are needed). For a quote tool with optional inputs and a non-read-only annotation profile, some additional context on defaults and return shape would be warranted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all four parameters are documented in the schema, so the baseline is 3. The description merely re-lists the same inputs (origin, destination, weight, priority) without adding format, units, or default-value 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (get shipping quotes) and names the inputs that drive the quote (origin, destination, weight, priority), which separates it from generic pricing siblings such as calculate_price or near_quote. It does not explicitly name an alternative tool or contrast with create_shipment/get_shipments, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what the tool returns but never states when to use it versus calculate_price, near_quote, get_logistics_overview, or create_shipment, nor does it give prerequisites or exclusions. An agent must infer the routing decision entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shipmentsARead-onlyInspect
List equipment shipments with tracking status. Optionally filter by status.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by shipment status (in_transit, delivered, pickup_scheduled, etc.) |
TDQS
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 covered. The description adds that results include tracking status, but it says nothing about pagination, ordering, size limits, or whether the list is scoped to the caller.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, with the core capability front-loaded and the optional filter trailing. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with no output schema and full parameter coverage, this is largely sufficient. Only minor gaps remain around result volume/pagination that an agent might want before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single status parameter is fully documented with example values. The description only restates the optional filter, adding no format or matching semantics beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (equipment shipments) plus the returned dimension (tracking status). It is clearly distinguishable from create_shipment, but it does not explicitly differentiate itself from nearby read siblings like get_logistics_overview or get_shipment_quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Optionally filter by status" implies when the parameter should be used, but there is no explicit when-to-use framing, no exclusions, and no pointer to alternative tools for related tasks such as quoting or logistics summaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spaceBRead-onlyInspect
Get detailed information about a hosting space including power, amenities, safety features, and pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Space ID |
TDQS
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 covered by structured data. The description adds value by naming the returned content areas, which is real behavioral context. It stops short of anything an agent would want on failure modes, whether pricing is live or cached, or whether the payload is expensive — reasonable given the read-only annotation, but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb first and no filler. Every clause (power, amenities, safety features, pricing) earns its place by telling the agent what the response contains, which matters given there is no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-param read tool with no output schema, the description does the minimum necessary: it names the fields the agent will receive. It omits the relationship to sibling listing/search tools and any note about id provenance, so the agent could still reach for the wrong tool or not know where the id comes from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and schema description coverage is 100% ('Space ID'), so the schema already carries the parameter burden and the baseline is 3. The description adds no format, source, or lookup hints for the id (e.g., whether it comes from search_spaces results).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource (get detailed information about a hosting space) and enumerates the facets returned: power, amenities, safety features, pricing. That is well beyond a tautology. It does not, however, distinguish itself from close siblings like search_spaces, match_spaces, or get_space_bookings, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no named alternative. With search_spaces, match_spaces, and get_space_bookings in the sibling list, an agent has to infer that this tool is the single-record detail lookup keyed by id. The single-required-param schema hints at that, but the description itself offers no explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_space_bookingsARead-onlyInspect
List space bookings for hosting equipment. Optionally filter by status or space.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by booking status | |
| spaceId | No | Filter by space ID |
TDQS
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 covered. The description adds only the optional-filtering behavior, which the schema already conveys; it says nothing about return format, pagination, or result volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and followed by the optional filtering, with zero filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-required-parameter listing tool with full schema coverage and annotations carrying the safety profile, the description is nearly complete. The only minor gap is the absence of any hint about result shape or pagination, which no output schema supplies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description's mention of status and space filters mirrors the schema without adding format, allowed values, or semantic detail, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List space bookings') plus the domain scope ('for hosting equipment'), which is enough for an agent to distinguish it from generic space tools like get_space or search_spaces. It stops short of explicitly naming the sibling it differs from, so 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Optionally filter by status or space' implies when the filters are useful but gives no when-to-use versus alternatives, no prerequisites, and no exclusions relative to sibling listing tools. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subnet_minersARead-onlyInspect
List verification subnet miners on the Bittensor network. Returns miner addresses, scores, and leaderboard positions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered by structured data. The description adds the return fields (addresses, scores, leaderboard positions), which is useful, but says nothing about pagination, ordering, or data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and scope, then the return contents. No filler and nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read tool with annotations covering safety and no output schema, the description does describe what is returned, which carries the missing output-schema burden. Minor gap is the absence of any usage routing against the many similar get_* siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric this is a baseline 4. Nothing in the description needs to compensate for a schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (verification subnet miners on the Bittensor network), which is clear and distinguishable from nearby siblings like get_subnet_status. It stops short of explicitly differentiating itself from the broader get_*/list_* family, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no indication of when to use this tool, when not to, or which sibling to prefer (e.g. get_subnet_status vs this). The agent must infer usage entirely from the name and purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subnet_statusBRead-onlyInspect
Get Bittensor verification subnet health, agent bridge status, and network connectivity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds the three status facets that will be reported, which partly substitutes for the absent output schema, but says nothing about auth requirements, freshness/caching, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb first and no filler; every word contributes to identifying the resource and its scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should carry more of the burden of describing what a caller receives, and it only lists three high-level facets without shape or format. For a parameterless read-only status tool this is adequate but leaves a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the description to clarify beyond what an empty schema already implies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Get') and a concrete resource with three named facets: Bittensor verification subnet health, agent bridge status, and network connectivity. It is clear on its own but does not differentiate itself from close siblings like get_verification_status, pcc_verifier_health, or get_operator_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus the many other status/health tools (get_verification_status, pcc_verifier_health, get_operator_status, get_automation_status). Usage is only implied by the tool name; no prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_telemetry_logsBRead-onlyInspect
Query structured logs with filters for level, source, jobId, kernelId, time range, and full-text search.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Return logs after this ISO timestamp | |
| jobId | No | Filter by job ID | |
| level | No | Filter by log level | |
| limit | No | Max entries to return (default 200) | |
| before | No | Return logs before this ISO timestamp | |
| search | No | Full-text search query | |
| source | No | Filter by source module | |
| kernelId | No | Filter by kernel ID |
TDQS
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 covered and the description's added burden is light. It contributes the fact that results are filter-driven and support full-text search, but says nothing about ordering, default window, or pagination beyond the schema's limit default.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that leads with the verb and resource before listing filters, with no filler. It could be slightly sharper by grouping the filters rather than dumping them, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With eight optional parameters and no output schema, the description should ideally say what a log entry looks like and how results are ordered or truncated. It covers the input surface adequately but leaves the return shape and default result window unexplained, which is a meaningful gap for a log-query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the eight parameters is already documented inline, establishing the baseline of 3. The description only restates the same filter categories (level, source, jobId, kernelId, time range, search) without adding syntax, combined-filter behaviour, or timezone/range semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (query) and resource (structured logs) and enumerates the filterable dimensions, so the agent knows exactly what the tool retrieves. However, it does nothing to separate itself from near-neighbours like get_job_telemetry, get_active_telemetry, system_telemetry, or get_telemetry_stats, leaving ambiguity in a crowded telemetry family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Pure capability statement with no guidance on when to prefer this over the sibling telemetry readers or emit_telemetry. No exclusions, prerequisites, or situational triggers are provided, so the agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_telemetry_statsARead-onlyInspect
Get aggregate pipeline telemetry statistics including phase timings, success rates, and throughput metrics across all jobs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds what the read returns (phase timings, success rates, throughput) but says nothing about time-window scoping, aggregation cost, or freshness of the statistics, which are the traits that actually matter for an aggregate stats call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the verb, resource, and scope front-loaded; every clause (metrics enumerated) earns its place and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and read-only annotations, the description is nearly sufficient: it tells the agent what the returned statistics cover. It stops short of noting the time window or whether the aggregates are live versus periodically computed, which matters for interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics for the description to supplement; the baseline of 4 applies. Note that the lack of any time-range or filter parameter means the aggregation scope is entirely fixed and undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Get') plus resource ('aggregate pipeline telemetry statistics') with a clear scope qualifier ('across all jobs'), and it enumerates the metric families returned (phase timings, success rates, throughput). It does not name siblings, but the 'all jobs' aggregate scope implicitly distinguishes it from per-job tools like get_job_telemetry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the scope phrase 'across all jobs'; there is no explicit statement of when to prefer this over get_job_telemetry, get_active_telemetry, get_telemetry_logs, or system_telemetry. In a sibling list this crowded, that omission is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_allowanceARead-onlyInspect
Read the ERC-20 token allowance granted by an owner to a spender from the blockchain.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | Token owner address (0x...) | |
| spender | Yes | Spender address (0x...) | |
| tokenAddress | Yes | ERC-20 token contract address (0x...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered structurally. 'From the blockchain' adds a useful hint that this is a live on-chain read rather than cached state, but there is no mention of failure behavior for non-contract addresses or of the returned value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, front-loaded on the verb and resource, and the qualifying scope (owner to spender) is placed where it disambiguates rather than trails off.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should ideally state what comes back (a raw allowance amount, likely base units with the token's decimals). For an otherwise simple three-parameter read tool it is close to adequate, but the return semantics are left entirely to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each of the three parameters (tokenAddress, owner, spender) is described inline, so the schema carries the load. The description only restates the owner→spender relationship already encoded in those field descriptions, adding no format or validation detail beyond them. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) plus the precise resource (ERC-20 allowance) and the two roles involved (owner, spender), which separates it in substance from the adjacent get_token_balance. It never names a sibling tool or explicitly contrasts itself with anything, so it falls just short of the 5 benchmark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the function itself – an agent can infer this is the pre-transfer/pre-approve check for a spender's spending limit. There is no stated when-to-use, no prerequisite (valid on-chain addresses, correct chain), and no pointer to get_token_balance as the alternative for holdings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_balanceBRead-onlyInspect
Read an ERC-20 token balance for an account address from the blockchain.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account address to check balance for (0x...) | |
| tokenAddress | Yes | ERC-20 token contract address (0x...) |
TDQS
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 covered. The description adds only the 'from the blockchain' qualifier, which hints that this is a live on-chain read, but discloses nothing about rate limits, chain selection, or failure modes. With annotations doing the heavy lifting, a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb and resource appear immediately. It is efficient but very sparse, leaving no room for the routing or return-format context the tool would benefit from.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only, two-parameter tool with full schema coverage and existing safety annotations, the description is adequate to invoke correctly. However, with no output schema, it should clarify the return value — ERC-20 balances are returned as integers in the token's smallest unit and chain-agnostic decimals matter — and that gap is left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both tokenAddress and account documented as 0x-prefixed addresses, so the baseline is 3. The description adds no format or constraint details beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Read'), resource ('ERC-20 token balance'), and scope ('for an account address from the blockchain'), so an agent immediately knows what it returns. It does not, however, name or contrast itself with the obvious sibling get_token_allowance, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the phrase 'for an account address'; there is no statement of when to reach for this tool versus get_token_allowance or any other balance/allowance source. No prerequisites (e.g. chain selection, RPC availability) are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_demandBRead-onlyInspect
Get top demand signals aggregated by capability type. Shows which capabilities are most wanted on the network.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of top demand entries to return (default 10) |
TDQS
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 covered. The description adds the aggregation dimension ('aggregated by capability type') and the network-wide scope, but does not disclose time window, ordering, or output shape beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no wasted words. The core purpose is front-loaded, and the secondary sentence clarifies the result in a scannable way.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only aggregation tool with a fully documented single parameter and annotations covering safe operation, the description is largely complete. It does not specify the time range or ordering of 'top' demand, which is a minor gap given there is no output schema to rely on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single 'limit' parameter is fully documented in the schema with its default. The description adds no parameter-level detail beyond that, which is acceptable given the high schema coverage baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get top demand signals aggregated by capability type, and clarifies the result as capabilities most wanted on the network. It is clear, but it does not explicitly differentiate itself from related siblings such as get_demand_supply or search_capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives, nor any exclusion or prerequisite. The phrase about 'most wanted' implies a discovery use case, but the agent must infer that without the description naming get_demand_supply or another alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transfer_graphsARead-onlyInspect
Get resource transfer graphs showing instrument topology, transfer edges, and mechanisms for all kernels.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so the safety profile is already covered. The description adds that the tool returns graphs for all kernels, implying no filtering, and describes the graph contents. However, it does not disclose pagination, performance characteristics, or output format details 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that begins with the verb and resource. Every phrase ('showing instrument topology, transfer edges, and mechanisms for all kernels') adds specific detail without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description carries the burden of describing what the tool returns. It does so at a high level by naming the graph components and scope. However, it lacks any indication of the return structure or whether the graph is a single object or list, leaving minor gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to document. Per the scoring rules, a 0-parameter tool receives a baseline of 4, and nothing in the description contradicts or undermines that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('resource transfer graphs'), and further specifies the content ('instrument topology, transfer edges, and mechanisms') and scope ('for all kernels'). It implicitly differentiates from siblings like get_kernel or get_kernel_devices by referring to a graph across all kernels, but does not explicitly name or contrast with any alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention related tools, prerequisites, or conditions under which the transfer graph is needed. The only implicit scope is 'all kernels', which is not enough to qualify as usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_unresolved_anomaliesBRead-onlyInspect
List all unresolved anomalies on the network. Filter by severity, category, or target agent.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category | |
| severity | No | Filter by severity: info, warning, critical | |
| targetId | No | Filter by target agent/kernel ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe-read profile is covered. The description adds that results are network-wide and filterable, but says nothing about pagination, result limits, or ordering — modest added value against an already-covered safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core action front-loaded and the filtering capability second. No filler, though it is sparse enough that it could have carried a bit more useful detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with full schema coverage and annotation-provided safety, the description covers essentials. However, it omits pagination/volume expectations and does not route the agent away from look-alike anomaly siblings, so it is adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are already documented in the schema (with severity's allowed values listed there). The description merely restates the same filter names, adding no syntax or format details beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: 'List all unresolved anomalies on the network.' An agent can distinguish it from report_anomaly and resolve_anomaly by the 'list'/'unresolved' framing, but it doesn't explicitly differentiate from closely related siblings like get_agent_anomalies or get_anomaly_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names the available filters but gives no guidance on when to choose this tool over alternates such as get_agent_anomalies, get_anomaly_stats, or report_anomaly. No conditions, exclusions, or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_verification_assignmentsARead-onlyInspect
Get pending verification assignments for a verifier node. Returns requests this verifier has been assigned but not yet responded to.
| Name | Required | Description | Default |
|---|---|---|---|
| verifierId | Yes | Verifier node ID |
TDQS
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 covered by structured data. The description does add genuinely useful behavioral scope: the result is filtered to assignments this verifier has been assigned but not yet responded to, which is not derivable from the schema. It omits pagination, ordering, or result size for a queue-style read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action, and the second sentence elaborates the return scope without repetition or filler. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description partially compensates by describing what comes back (unanswered assigned requests). For a single-parameter read behind readOnlyHint annotations, that is nearly sufficient; only return ordering/size and the relationship to respond_to_verification are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists, and schema description coverage is 100%, so the schema already documents verifierId. The description echoes the 'verifier node' framing but adds no format, ID-source, or lookup semantics beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Get pending verification assignments') and adds a scope qualifier ('for a verifier node'), so an agent can tell it apart from general status tools like get_verification_status. It stops short of naming the sibling that consumes these assignments (respond_to_verification) or otherwise routing between the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase 'for a verifier node' signals the caller role, but there is no explicit when-to-use, no exclusions, and no named alternative (e.g. use get_verification_status for completed/resolved items). An agent must infer the retrieval context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_verification_statusBRead-onlyInspect
Get verification status for a request. Returns vote tally, consensus state, dispute list, and pending response count.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | Verification request ID (hvreq_...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuine value by disclosing the return payload shape (vote tally, consensus state, dispute list, pending response count), but says nothing about polling cadence, staleness, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, purpose front-loaded followed by the return summary. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned fields, which is the key information an agent needs. A simple one-parameter read tool is adequately covered, though routing vs siblings remains ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single required requestId documented as 'Verification request ID (hvreq_...)'. The description adds no format or semantic detail beyond the schema, so the baseline of 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Get verification status for a request') and enumerates what the status contains. It is clear standing alone, but it does not distinguish itself from siblings like get_verification_assignments or pcc_verifier_health, so an agent must guess which retrieval path applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternatives are given. The agent is not told whether this is the canonical status endpoint vs get_verification_assignments, nor when status is meaningful (e.g., after submit_for_human_verification).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflowBRead-onlyInspect
Get detailed workflow information including steps, node assignments, and progress.
| Name | Required | Description | Default |
|---|---|---|---|
| workflowId | Yes | Workflow ID |
TDQS
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 covered. The description adds useful content context by naming the detail categories (steps, node assignments, progress), but it does not disclose access requirements, error behavior, or whether the response is paginated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every clause (including, and progress) contributes to the agent's understanding of the tool's scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with annotations and full schema coverage, the description is nearly sufficient: it identifies the resource and summarizes the return contents despite there being no output schema. It stops short of covering failure modes or lookup semantics, but nothing essential to calling the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the single workflowId parameter is documented in the schema, so the baseline is 3. The description does not add format or constraint details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Get) and resource (workflow) and enumerates what is returned (steps, node assignments, progress), so the agent knows it is a detail fetch. It does not, however, explicitly contrast itself with the sibling get_workflows, leaving the singular/plural distinction to be inferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus get_workflows or any other retrieval tool, and no prerequisites or exclusions are mentioned. The only implied usage is that a workflowId must be supplied, which is already obvious from the required parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflowsARead-onlyInspect
List active instrument workflows in the orchestrator. Optionally filter by status.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by workflow status (e.g. running, completed) |
TDQS
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 covered. The description adds the meaningful constraint that only 'active' workflows are returned, but says nothing about pagination, ordering, or result volume for what could be a large collection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, scope stated first and the optional filter second. Zero filler, fully front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-optional-parameter list tool with full schema coverage and no output schema, the description is nearly sufficient. Only the missing routing hint versus get_workflow keeps it from being complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is self-documenting with examples (running, completed). The description adds only the word 'optionally', so it neither compensates nor detracts; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (instrument workflows) with a scope qualifier (active) and the orchestrator as source. It is distinguishable from the singular get_workflow sibling only by inference, not by explicit contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to enumerate active workflows and offers an optional status filter, but never states when to prefer it over get_workflow (single lookup) or other list_* siblings. Usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_write_statusARead-onlyInspect
Check if on-chain write operations are enabled (requires PCC_GATEWAY_PRIVATE_KEY to be configured). Returns write status and signer address.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false). The description adds real behavioral context beyond that: the PCC_GATEWAY_PRIVATE_KEY prerequisite and the fact that a signer address is returned, which tells the agent what configuration state is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, zero waste, and the purpose is front-loaded ahead of the prerequisite and return info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-arg, no-output-schema read tool whose annotations already declare safety, the description covers purpose, prerequisite, and return shape. Only the explicit relationship to sibling status tools is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so per the rubric the baseline is 4. The description has no parameter surface to document and correctly confines itself to prerequisites and return content.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific check (whether on-chain write operations are enabled) plus the return payload (write status and signer address). An agent can distinguish it from the many get_* status siblings, though it doesn't explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the tool queries write-readiness, so an agent would call it before attempting a write. There is no explicit when-to-use statement, no when-not, and no named alternative such as setup_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grant_evidence_accessAInspect
Grant a new recipient access to an encrypted evidence bundle. Creates a re-encrypted key capsule for the recipient.
| Name | Required | Description | Default |
|---|---|---|---|
| bundleId | Yes | Evidence bundle ID | |
| accessLevel | No | Level of access to grant (default: full) | |
| recipientAddress | Yes | Recipient EVM address (0x...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations confirm this is a non-read-only, non-destructive mutation, and the description adds meaningful mechanism detail (a re-encrypted key capsule is produced). It omits revocation/idempotency behavior and any authorization requirements on the caller, which matter for an access-granting operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and followed by the mechanism. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter mutation with annotations and full schema coverage, the description covers the core action, but it leaves out usage conditions, caller authorization, and grant lifecycle. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so bundleId, recipientAddress, and the accessLevel enum (full/selective/summary_only) are already documented in the schema. The description adds no parameter-level detail, so it sits at the baseline for full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Grant'), resource ('access to an encrypted evidence bundle'), and the mechanism ('Creates a re-encrypted key capsule'). This clearly distinguishes it from list_evidence_grants and archive_evidence without needing the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives, no prerequisites (e.g. must the caller own the bundle?), and no note on whether granting is reversible or needs recipient consent. An agent gets the what but not the when.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kernel_announce_capabilitiesAInspect
Announce capabilities for a kernel. NOTE: the gateway currently acknowledges this call but stores nothing, so it does not put any capability on the network. To publish a capability, use create_capability (POST /api/capabilities).
| Name | Required | Description | Default |
|---|---|---|---|
| devices | No | Device IDs that back these capabilities | |
| kernelId | Yes | Kernel ID | |
| signature | No | Ed25519 signature of the announcement | |
| capabilities | Yes | Capability objects to announce |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only state readOnlyHint=false and destructiveHint=false, which do not convey the crucial fact that the call is currently a no-op. The description discloses that the gateway acknowledges but stores nothing and puts no capability on the network, a behavioral trait no structured field supplies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero padding that lead with the purpose and immediately follow with the critical caveat and redirect. It could front-load the warning slightly more, but it is well-sized and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no output schema and 100% schema coverage, the description supplies everything an agent needs: what it does, that it currently has no effect, and where to go instead. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so kernelId, capabilities, devices, and signature are already documented in the schema. The description adds no parameter-level syntax, format, or constraint details, so the baseline 3 holds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Announce capabilities for a kernel') and directly names the sibling it is not ('To publish a capability, use create_capability'). An agent can distinguish it from create_capability without opening either schema, though the surface verb 'announce' is slightly softened by the no-op caveat.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-not guidance ('the gateway currently acknowledges this call but stores nothing') and a concrete alternative with the HTTP route ('use create_capability (POST /api/capabilities)'). This is exactly the routing information an agent needs to avoid a useless call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kernel_heartbeatAInspect
Send a per-kernel heartbeat to keep the kernel marked online. Used by pcc-node daemons as an alternative to the operator relay heartbeat.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Kernel status (online/offline) | online |
| kernelId | Yes | Kernel ID | |
| capabilities | No | Optional capability announcements |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a mutating but non-destructive call. The description adds that it is a keep-alive that marks the kernel online, which is useful context. It omits idempotency, expected cadence/rate limits, and what happens on a missed heartbeat, so it adds value but not depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and effect, then the caller and alternative. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a heartbeat tool with full schema coverage and annotations, the description covers what it does, who calls it, and how it relates to the alternative. Missing cadence semantics and failure behavior are minor for a keep-alive, and there is no output schema to explain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so kernelId, status, and capabilities are already documented in the schema. The description adds no parameter-level meaning (e.g. status transitions or capability format), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Send) and resource (per-kernel heartbeat) plus the effect (keep the kernel marked online). It distinguishes itself from the operator relay heartbeat concept, which is the relevant sibling (operator_heartbeat). It stops short of naming that sibling tool directly, but the differentiation is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Identifies the caller (pcc-node daemons) and positions the tool as an alternative to the operator relay heartbeat, which gives an agent a real condition for choosing it. It does not state explicit exclusions or when NOT to use it, but the contextual routing is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_api_keysARead-onlyInspect
List all active API keys for the authenticated operator. Returns key IDs, prefixes, scopes, rate limits, usage counts, and creation/expiry timestamps. Requires a valid API key or SIWE session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint and destructiveHint already covering the safety profile, the description adds useful behavioral detail: it specifies that only active keys are listed, lists the returned metadata fields, and states the authentication requirement. It does not, however, describe pagination or ordering behavior, so it stops short of exhaustive transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences are front-loaded with purpose, then return fields, then auth requirement. Every sentence earns its place and there is no redundant or vague filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with no parameters and no output schema, the description covers purpose, return values, filtering to active keys, and authentication. Nothing an agent needs in order to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to clarify. The baseline for a zero-parameter tool is 4, and the description does not need to and does not introduce parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'List all active API keys for the authenticated operator.' It scopes the operation to active keys and the authenticated operator, which distinguishes it from sibling tools like provision_api_key and revoke_api_key without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tool name and the description's scope, but no explicit when-to-use guidance or alternatives are named. The only usage-adjacent detail is the authentication requirement, which is a prerequisite rather than a decision rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_automation_statusARead-onlyInspect
List automation status for all instrument transfer pairs. Shows current automation level, episode count, and training readiness. Filter by kernelId.
| Name | Required | Description | Default |
|---|---|---|---|
| kernelId | No | Filter by kernel ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds return-content transparency (automation level, episode count, training readiness) that annotations do not, which is genuinely useful given there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose and the returned fields, with zero filler. Every sentence contributes information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the observable fields returned, and annotations cover the safe-read profile. The main omission is distinguishing this from get_automation_status, which an agent working in this large sibling set would need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single kernelId parameter is documented there as 'Filter by kernel ID.' The description's 'Filter by kernelId' merely restates the schema, so it adds no meaning beyond the structured field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'List automation status for all instrument transfer pairs,' which tells an agent exactly what is returned. It stops short of differentiating from the near-identical sibling get_automation_status, so the agent cannot tell the 'all pairs' vs 'single status' distinction from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no mention of get_automation_status, which is the most likely alternative in the sibling list. 'Filter by kernelId' hints at scoping but is not framed as a usage condition, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_batchesARead-onlyInspect
List active and completed settlement batches.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds only that both active and completed batches are returned, with no word on pagination, ordering, or result size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the scope qualifier front-loaded and no filler. Nothing in it is redundant or misplaced.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool with no output schema, the description is nearly sufficient — the only omissions are return ordering and pagination behavior, which are minor for a simple enumeration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies. No parameter-related text is needed or expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb+resource ('List ... settlement batches') and even bounds the scope to 'active and completed', so an agent knows what set is returned. It does not, however, distinguish this from adjacent siblings such as get_settlement_status or get_settlement_epochs, which also surface settlement state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus get_settlement_status, get_settlement_epochs, or get_escrow_events, and no stated prerequisites or exclusions. The reader must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_bountiesARead-onlyInspect
List open bounties for capabilities the network needs. Operators can claim these to earn rewards by onboarding new capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by bounty status | |
| capabilityType | No | Filter by capability type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered structurally. The description adds that these are network-needed capabilities with a reward mechanism, which is useful framing, but says nothing about pagination, return shape, or whether the 'open' wording means results are pre-filtered despite the status enum offering other values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded and no filler. Both sentences earn their place, though the second is more motivational than operational.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with full schema coverage and no output schema, the description covers what the tool returns conceptually and who uses it. The only gap is the ambiguity between 'open bounties' in prose and the multi-value status filter, but nothing critical for a correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a documented status enum and capabilityType field, so the schema carries the parameter burden and baseline 3 applies. The description adds no filter syntax or defaulting behavior beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('List open bounties for capabilities the network needs') and adds a one-line purpose. It is clearly distinguishable from write siblings like claim_bounty or verify_bounty, but it does not name any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Operators can claim these to earn rewards by onboarding new capabilities' implies the audience and why someone looks at this list, but it never says when to call this versus claim_bounty, verify_bounty, or get_bounty_leaderboard. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_capability_typesARead-onlyInspect
List all capability types registered on the network (FDM, SLA, CNC, HPLC, etc.) with metadata.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds that results come 'with metadata' and gives example type codes, but says nothing about pagination, ordering, or auth requirements beyond the read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence that front-loads the verb and resource, with examples in parentheses. No filler or redundancy, so every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter list tool with no output schema, the description conveys the scope (all registered types) and that metadata is included. The term 'metadata' is left undefined, but the low complexity and read-only annotations make this largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description correctly implies the call is unconditional and returns all registered types, adding no parameter semantics because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (capability types registered on the network) with examples of the values returned. It distinguishes 'capability types' from plain 'capabilities', but does not explicitly differentiate from siblings such as search_capabilities or create_capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no conditions, and names no alternatives. An agent must infer that this is the tool for enumerating type definitions versus searching or creating capabilities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_conversationsBRead-onlyInspect
List agent-to-agent conversations showing topic, participants, message count, and status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds the shape of what comes back (topic, participants, message count, status), which substitutes for the missing output schema, but says nothing about pagination, ordering, limits, or visibility scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, with the returned fields appended. No filler. It could be slightly tighter, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter listing tool with no output schema, the description usefully enumerates returned fields, which is more than most siblings do. But it omits result volume, ordering, and visibility/scope considerations that an agent needs to decide whether one call is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. The description cannot add parameter meaning because there is none, and it does not introduce confusion about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'List agent-to-agent conversations'. It also names the surfaced fields (topic, participants, message count, status). However, it does nothing to distinguish itself from the many other list_* tools or to define scope (all conversations? the calling agent's?).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives (e.g., a chat-history or message-listing sibling like pcc_chat_history), and no statement of scope or prerequisites. A reader can infer it's a listing endpoint, but nothing routes the agent here versus elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_escrowsARead-onlyInspect
List escrow contracts with milestones and bonds. Optionally filter by status.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by escrow status |
TDQS
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 covered. The description adds what the records contain (milestones, bonds), which is useful context, but says nothing about pagination, ordering, or volume limits for a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the core purpose front-loaded and the optional filter trailing. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only list tool with no output schema, the description plus annotations are nearly sufficient — it even hints at the record shape (milestones, bonds). Only pagination/ordering behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single 'status' parameter at 100% with its own description, so the description's mention of status filtering is redundant. Baseline 3 applies since the schema does the heavy lifting; no enum values or accepted status strings are added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List escrow contracts') and adds the scope of returned data (milestones and bonds). However it does not differentiate itself from siblings like get_escrow, get_escrow_events, or get_escrow_chain_state, so an agent must infer that this is the collection-level counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Optionally filter by status' implies the filtering use case, but no when-to-use guidance or alternatives (e.g., use get_escrow for a single contract, use the dispute/event tools for related data) are given. Usage 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.
list_evidenceBRead-onlyInspect
List encrypted evidence bundles stored in the gateway.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful domain context that bundles are encrypted and stored in the gateway, but it does not disclose pagination, permissions, or return behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no wasted words. It immediately communicates the action and object without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with annotations covering safety, the description is minimally adequate. However, it does not clarify how the results relate to related tools like list_evidence_grants or get_evidence_bundle, and no output schema exists to explain what the list contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so parameter semantics are not a source of ambiguity. Per the rubric, a tool with no parameters starts at a baseline of 4, and the description correctly does not invent parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('encrypted evidence bundles stored in the gateway'), making the core purpose clear. It does not explicitly distinguish itself from related siblings such as list_evidence_grants or get_evidence_bundle, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like list_evidence_grants or get_evidence_bundle. The listing intent is implied only by the verb 'List' and the tool name, with no exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_evidence_grantsBRead-onlyInspect
List all evidence access grants for an address. Returns bundles the address has been granted access to.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | EVM address to look up grants for (0x...) |
TDQS
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 covered. The description adds useful scope context (it returns granted bundles rather than raw evidence), but says nothing about permissions to view grants, pagination, or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and scope, and no filler. Every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup with no output schema, the description adequately conveys what is listed and what it resolves to. It would be fully complete with a note on when to prefer it over list_evidence or get_evidence_bundle.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single address parameter is documented in the schema as an EVM 0x address. The description adds nothing beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all evidence access grants') with an explicit scope ('for an address'), and the second sentence clarifies that the grants resolve to bundles. It does not name or contrast with the obvious sibling grant_evidence_access, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of the counterpart mutation tool (grant_evidence_access), and no exclusion such as how this differs from list_evidence or get_evidence_bundle. The agent must infer the context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobsBRead-onlyInspect
List all jobs with status. Optionally filter by kernelId or status.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status (pending, queued, in_progress, paused, completed, failed, cancelled) | |
| kernelId | No | Filter by kernel ID |
TDQS
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 covered. The description adds nothing behavioral beyond restating the list-and-filter operation — no pagination, result-size cap, ordering, or default status behavior for an unbounded 'all jobs' query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource and then the optional filters; nothing is redundant or padded. Brevity comes at some cost to information, but there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with annotations and no output schema, the description covers the essentials. The notable gap is the unbounded scope of 'all jobs' with no mention of pagination or limits, and no help picking between this and the kernel-scoped job listing siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the status property already enumerates all seven valid values, so the schema does the heavy lifting. The description only confirms that both parameters are optional filters, adding no format or syntax detail beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb and resource ('List all jobs') plus the two optional narrowing dimensions, so an agent immediately knows what the call returns at a high level. It does not distinguish this from overlapping siblings such as get_job, get_kernel_jobs, or operator_poll_jobs, which is what keeps it out of the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Optionally filter by kernelId or status' implies the usage pattern (call unfiltered for all jobs, narrow by kernel or status otherwise), which is genuine but implicit guidance. There is no statement of when to prefer this over get_kernel_jobs or get_job, nor any exclusion or prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_kernelsARead-onlyInspect
List all Shop Kernels on the network with status and capability types. Optionally filter by status.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by kernel status (online, offline, maintenance) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful context about scope and returned content, but does not mention pagination or any other operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no wasted words. The primary action and optional filter are stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple read-only list operation, one optional parameter, and existing annotations, the description is largely complete. It could note pagination or sorting behavior, but no output schema exists and the core scope is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the status parameter is fully documented in the schema with possible values. The description only restates that it can optionally filter by status, adding no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all Shop Kernels'), plus scope ('on the network') and returned fields ('status and capability types'). It is clear, though it does not explicitly distinguish itself from siblings like get_kernel or create_kernel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions the optional status filter, which implies when to use that parameter. However, it gives no explicit when-to-use guidance relative to alternatives such as get_kernel or search_capabilities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_operator_channelsARead-onlyInspect
List every channel attached to an operator. Returns the full channel records (id, transport, direction, endpoint, describe, enabled flags). Useful for an operator's onboarding agent to confirm what is wired up, and for status dashboards.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Operator slug. |
TDQS
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 covered by structured data. The description adds the concrete return shape (id, transport, direction, endpoint, describe, enabled flags), which is genuinely useful given no output schema, but says nothing about pagination, ordering, or behaviour when the operator has no channels.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences; the core action and scope are front-loaded and the field list follows as supporting detail. No filler, though the enumerated field list makes it slightly heavier than strictly needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read with no output schema, the description compensates by disclosing the returned fields and the intended consumers. It leaves only minor gaps around empty results and ordering, which are not critical to calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'slug' parameter is documented in the schema as 'Operator slug.' The description adds no further meaning about the identifier, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List every channel attached to an operator') and enumerates the returned fields, so an agent knows exactly what it retrieves. It does not explicitly distinguish itself from near-name siblings such as test_operator_channels or get_sensor_channels, which keeps it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names two usage contexts ('onboarding agent to confirm what is wired up' and 'status dashboards'), which implies when to reach for it. However there is no when-not guidance and no explicit alternative named, so usage is only implied rather than routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_poolsARead-onlyInspect
List all investment pools. Optionally filter by status or capability type.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by pool status | |
| capabilityType | No | Filter by capability type |
TDQS
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 covered. The description adds only the enumeration/filter scope and no return format, pagination, or volume characteristics, so it contributes little 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero waste, with the core action front-loaded and the optional filters trailing. Nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with full schema coverage, annotations, and no output schema, the description covers the essentials an agent needs. It stops just short of routing guidance against sibling retrieval tools like get_pool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the enum values for status are fully documented in the schema. The description merely restates that status and capability type can be filtered, adding no syntax or semantic detail beyond what the schema already provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all investment pools') and names the two optional filter dimensions. It does not explicitly distinguish itself from close siblings like get_pool, list_capability_types, or claim_pool/stake_in_pool, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage ('optionally filter by status or capability type') but gives no when-to-use guidance versus get_pool (single pool retrieval) or other pool-related siblings such as claim_pool and stake_in_pool. Adequate but with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_protocol_runsBRead-onlyInspect
List protocol runs. Filter by status or kernelId.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by run status | |
| kernelId | No | Filter by kernel ID |
TDQS
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 covered by structured data. The description adds nothing behavioral beyond that (no pagination, ordering, or result-limit context), which is acceptable but thin for a list endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no filler; the purpose is stated before the filtering detail. It is efficient, though bordering on under-specified rather than deliberately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-required-parameter list tool with no output schema, this covers the minimum. It leaves gaps around what is returned, whether results are paginated or scoped to the caller, and how it relates to the other protocol-run tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the status enum is fully enumerated in the schema, so the schema does the heavy lifting. The description merely restates the two filter names without adding format, defaulting, or combination semantics beyond what is already structured.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List protocol runs'), so an agent immediately knows this is a read/list operation on protocol runs. It does not, however, distinguish itself from close siblings like list_protocols, get_protocol_run, or the create/start/cancel run tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence tells how to narrow results but not when to choose this tool over get_protocol_run (single run) or list_protocols (protocol definitions). No when/when-not guidance or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_protocolsARead-onlyInspect
List protocol templates in the library. Filter by tags, required capabilities, search query, or status.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Comma-separated tag filter (e.g. 'biotech,protein') | |
| search | No | Full-text search query | |
| status | No | Filter by template status | |
| capabilities | No | Comma-separated required capability filter (e.g. 'hplc,centrifuge') |
TDQS
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 covered. The description adds the fact that results are scoped to the library, but says nothing about pagination, result limits, or ordering, so it adds only modest value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the resource and immediately followed by the filter surface. Every clause earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple all-optional list tool with a full-coverage schema and a read-only annotation, the description is adequate but thin. With no output schema, it does not indicate what a listed template contains or how results are shaped, which an agent would otherwise need to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented with its own format guidance (comma-separated tags, full-text query, status enum). The description merely restates the filter names and contributes no additional semantics, which is the baseline 3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (protocol templates in the library), which is clearly distinct from get_protocol (singular fetch), create_protocol, and list_protocol_runs. However, it does not explicitly differentiate itself from near siblings such as suggest_csd_templates or list_capability_types, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The enumerated filters (tags, capabilities, search, status) imply how the tool is intended to be used, but there is no explicit when-to-use statement and no mention of alternatives like get_protocol for fetching a single template. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_registrationsARead-onlyInspect
List all machine registrations on the network. See pending, approved, active, and rejected registrations. Public endpoint — no auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds genuinely useful behavioral context by stating it is a public endpoint requiring no auth, which the annotations do not convey. It omits return format and pagination behavior for a potentially large list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler. The core action is front-loaded, followed by scope of results and the auth constraint, each earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only list tool with no output schema, the description covers action, result categories, and authentication needs. Pagination or result-size behavior is the only meaningful gap, so it is nearly but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. Schema coverage is 100% and there is nothing for the description to compensate for; the listed status categories describe the content of results rather than inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List all machine registrations") and enumerates the returned categories, so the agent knows exactly what this tool produces. It does not explicitly contrast with the sibling get_registration, which fetches a single registration, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The enumeration of statuses implies the use case (broad survey across the registration lifecycle), but there is no explicit when-to-use statement or named alternative such as get_registration for a single record. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_transfer_agentsARead-onlyInspect
List all transfer agents (robots and human operators) available for instrument-to-instrument transfers.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds a definitional detail (agents include robots and human operators), but says nothing about result size, pagination, or freshness for what could be a large roster.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. The scope qualifier is placed immediately after the object it modifies, so the key constraint is visible at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list with no parameters and no output schema, the description is nearly sufficient. Only the shape and scale of the returned list, or any pagination behavior, is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool is 4. No parameter meaning is missing or contradicted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all transfer agents') and further qualifies the resource as robots and human operators used for instrument-to-instrument transfers. An agent can tell what is being returned, though it does not explicitly differentiate itself from any similarly named sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance. The phrase 'available for instrument-to-instrument transfers' hints at relevance context but leaves the agent to infer when this list is the right call versus other listing tools like get_transfer_graphs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lit_decryptAInspect
Decrypt a Lit Protocol-encrypted evidence bundle using a Lit auth signature. Returns the decrypted bundle payload.
| Name | Required | Description | Default |
|---|---|---|---|
| authSig | Yes | Lit auth signature object with sig, derivedVia, signedMessage, and address fields | |
| bundleId | Yes | Evidence bundle ID (must be Lit-encrypted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false and destructiveHint=false, so the safety profile is partly covered. The description usefully discloses the auth requirement (a Lit auth signature is needed) and states the return value, but says nothing about failure modes for non-Lit-encrypted bundles or any side effects. Adequate but thin for a cryptographic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero redundancy; the action, the required input, and the return value are all front-loaded. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly states what is returned (the decrypted bundle payload), and both parameters are fully documented in the schema. The remaining gap is that error/edge behavior (e.g. wrong auth signature, non-encrypted bundle) is not addressed, though this is minor for a simple two-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a detailed nested authSig description, so the schema does the heavy lifting and the baseline is 3. The description only gestures at the two parameters (bundle + Lit auth signature) without adding format or constraint detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Decrypt) and a precise resource (Lit Protocol-encrypted evidence bundle), which distinguishes it from read-style siblings like get_evidence_bundle. It does not explicitly reference any sibling by name, so an agent must infer the difference, keeping it just below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this when you have a Lit-encrypted bundle and a Lit auth signature. There is no explicit when/when-not guidance, no mention of the alternative get_evidence_bundle for metadata, and no statement of what happens if the bundle is not Lit-encrypted. This is minimum-viable context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketplace_categoriesARead-onlyInspect
List all supplies and materials marketplace categories with the count of active listings in each. Categories cover the full spectrum of physical production inputs: raw metals, plastics, lab reagents, consumables, electronics, tooling, and more.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds that each category includes a count of active listings and gives examples of category types, which is useful return-content context, but it does not cover pagination, ordering, or other operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste; the core action and return are front-loaded, and the second sentence efficiently expands the category scope with concrete examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list tool with no output schema, the description supplies the essential return detail (categories with active listing counts) and category domain. Minor gaps like ordering or zero-count behavior remain, but they are unlikely to block correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description cannot add parameter meaning beyond the empty schema, but it correctly implies no filtering or input is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb (List) and resource (supplies and materials marketplace categories) with the added detail of active listing counts. It distinguishes itself from sibling tools like marketplace_list_listings by focusing on categories rather than individual listings, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. Usage is only implied by the tool name and the phrase 'List all'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketplace_create_listingBInspect
Create a new supplies/materials listing in the marketplace. Suppliers post available raw materials, lab reagents, tooling, or consumables for other operators to purchase.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Product name | |
| tags | No | Search tags | |
| unit | Yes | Unit of sale: kg, L, each, box, plate, etc. | |
| inStock | No | Whether the item is currently available | |
| category | Yes | Category: raw-metals, plastics-polymers, lab-reagents, lab-consumables, electronics, chemicals, biologicals, tooling, packaging, calibration, safety, other | |
| location | No | Supplier region or country | |
| maxOrder | No | Maximum order quantity | |
| minOrder | No | Minimum order quantity | |
| sellerId | No | Supplier entity ID | |
| description | No | Detailed product description | |
| leadTimeDays | No | Estimated lead time in business days | |
| pricePerUnit | Yes | Price per unit in USDC |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, consistent with a create operation. However the description adds no behavior beyond that: no auth/role requirements, no statement of what the created listing returns or where it appears, no side effects such as inventory or seller state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, with the core action front-loaded before the clarifying domain context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter mutation tool with no output schema, the description is minimally adequate: it says what is created but omits prerequisites, the seller identity requirement, and any post-creation behavior. The rich schema compensates on parameters, but the description leaves real gaps for a write operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 12 parameters (including the category enumeration values) are already fully documented in the schema. The description's mention of material types mirrors the category field but adds no syntax, constraints, or meaning beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Create a new supplies/materials listing in the marketplace') and scopes the domain with concrete examples (raw materials, lab reagents, tooling, consumables). An agent can distinguish this write operation from the marketplace_get/update/delete/list siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (posting supplies for others to purchase) but never names the alternative siblings (marketplace_update_listing, marketplace_place_order) or states prerequisites such as needing a sellerId or registering first. No explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketplace_delete_listingBDestructiveInspect
Remove a supplies/materials listing from the marketplace. The listing is immediately hidden from search results.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Listing ID to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is covered. The description adds one genuinely useful behavioral detail: the listing is 'immediately hidden from search results', hinting at a soft-delete visibility effect. It does not say whether this is reversible, permanent, or what happens to existing orders referencing the listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler, and the destructive action is stated up front. Efficient, though the second sentence could have carried more load (reversibility, ownership) rather than only search visibility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations carry the destructive signal and there is no output schema to explain, so the core is covered. However, for a destructive marketplace mutation the description omits authorization/ownership requirements and the effect on related orders, leaving meaningful gaps for an agent deciding to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 100% schema description coverage ('Listing ID to remove'), so the schema fully documents it. The description adds no format, source, or lookup guidance beyond the schema, which matches the baseline 3 for high-coverage schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb + resource + scope ('Remove a supplies/materials listing from the marketplace'), which is far better than a tautology. It does not explicitly distinguish itself from the adjacent marketplace_update_listing or marketplace_get_listing siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites such as ownership of the listing or whether it must be un-ordered/un-sold, and no alternatives named (e.g., when to prefer deactivation over deletion). The agent must infer all of this.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketplace_get_listingARead-onlyInspect
Get full details of a specific supplies/materials marketplace listing by ID. Returns pricing, availability, lead time, location, and tags.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Listing ID (e.g. 'lst-al6061-bar') |
TDQS
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 covered. The description adds useful context beyond that by enumerating the returned data (pricing, availability, lead time, location, tags), which is not available from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the action and lookup key come first, the return contents second. No filler or repetition of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming the returned fields, and the single-parameter input is fully covered by the schema. Nothing an agent needs to call this read tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single well-documented 'id' parameter including an example, so the schema does the heavy lifting. The description adds nothing about parameter format or constraints beyond what the schema already provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get full details of a specific supplies/materials marketplace listing by ID'), which is precise and distinguishable from list-style siblings. It doesn't explicitly name a sibling like marketplace_list_listings or marketplace_get_order, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is for retrieving one listing when the ID is known, versus marketplace_list_listings for browsing. There is no explicit when-to-use/when-not or mention of alternatives such as marketplace_get_order.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketplace_get_orderARead-onlyInspect
Get details of a specific supply order including the associated listing details, quantity, total price, status, and optional escrow address.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Order ID (e.g. 'ord-demo-001') |
TDQS
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 covered. The description adds value beyond that by enumerating what the response contains (listing details, quantity, total price, status, escrow address), which is meaningful given there is no output schema. It does not cover auth or rate-limit behavior, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence stating the verb, resource, and returned fields with zero filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-by-id tool with annotations covering safety and only one fully documented parameter, the definition is nearly sufficient; listing the returned fields compensates for the absent output schema. Only the lack of explicit sibling routing keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With a single parameter and 100% schema description coverage, the schema already documents the 'id' field including an example ('ord-demo-001'). The description implies identification by id but adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource ('Get details of a specific supply order') and enumerates the fields returned (listing details, quantity, total price, status, escrow address). The word 'specific' plus the required id parameter distinguishes it from marketplace_list_orders, though it never names the sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: 'a specific supply order' signals this is the lookup-by-id path versus the list variant. However, there is no explicit when-to-use statement, no mention of the alternative marketplace_list_orders, and no prerequisites such as needing a valid order id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketplace_list_listingsARead-onlyInspect
Search and filter supplies/materials marketplace listings. Operators buy raw materials here to fulfill capability contracts. Filter by category, in-stock status, location, or free-text query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Full-text search across name, description, and tags | |
| inStock | No | Filter to only in-stock listings | |
| category | No | Filter by category: raw-metals, plastics-polymers, lab-reagents, lab-consumables, electronics, chemicals, biologicals, tooling, packaging, calibration, safety, other | |
| location | No | Filter by region (e.g. 'US-Midwest', 'EU-West', 'Asia-Pacific') |
TDQS
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 covered. The description adds useful domain framing about who uses the marketplace and why, but says nothing about pagination, result limits, or sort behavior expected of a listing search endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, followed by domain context and the filter list. Slight redundancy between 'search and filter' and the trailing 'filter by ...' clause, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, fully-optional, read-only list tool with 100% schema coverage and no output schema, the description supplies enough to call it correctly. The only minor gap is absence of pagination/result-limit hints, which is acceptable here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the full category enum and location examples, so the schema already carries the parameter detail. The description merely restates the filter dimensions (category, in-stock, location, query) without adding syntax or semantics beyond it. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb pair (search and filter) and resource (supplies/materials marketplace listings), and the domain sentence clarifies what the listings represent. It clearly reads as the list counterpart to marketplace_get_listing and marketplace_list_orders, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The domain context ('operators buy raw materials here to fulfill capability contracts') implies when this tool is relevant, but there is no explicit when-to-use vs alternatives guidance (e.g. use marketplace_get_listing for a single listing, marketplace_categories to enumerate categories). Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketplace_list_ordersBRead-onlyInspect
List marketplace supply orders. Filter by buyerId, sellerId, or status. Returns order history with pricing and status.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by order status | |
| buyerId | No | Filter to orders placed by this buyer | |
| sellerId | No | Filter to orders received by this seller |
TDQS
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 covered. The description adds that the result carries pricing and status fields, which is useful, but says nothing about pagination, ordering, or what happens when no filter is supplied (potentially an unbounded result set).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and then the filters and return shape; nothing is redundant enough to cut. The return-content sentence is the weakest, but it is brief and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter read tool with no output schema, the description conveys the core behavior and return contents. It is incomplete on operational details such as default scope, result limits, and pagination, which matter for a list endpoint with all-optional filters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the three parameters and the status enum are already fully documented in the schema. The description merely restates the same filter names without adding format, semantics, or interaction rules, making 3 the correct baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List marketplace supply orders') plus the available filters, which separates it from the singular marketplace_get_order sibling. It stops short of explicitly naming those siblings, so an agent must infer the boundary rather than being told it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the filter list: call this when you want many orders narrowed by buyer, seller, or status. There is no explicit when-not guidance and no mention of the alternative single-order retrieval tool, leaving the agent to infer the choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketplace_place_orderAInspect
Place a purchase order for supplies or materials. Calculates total price automatically (quantity × pricePerUnit). Returns an order with 'pending' status. Optionally links to an on-chain escrow for trustless settlement.
| Name | Required | Description | Default |
|---|---|---|---|
| buyerId | No | Buyer entity ID (operator kernel ID, etc.) | |
| quantity | Yes | Quantity to order (must meet listing minOrder/maxOrder) | |
| listingId | Yes | Listing ID to order from | |
| escrowAddress | No | Optional on-chain escrow address for trustless settlement |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description goes further by explaining that total price is computed automatically (quantity × pricePerUnit), that the result carries 'pending' status, and that an on-chain escrow can optionally be linked. It still omits auth/permission requirements, but adds real behavioral value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, the core action front-loaded and each sentence carrying distinct information (action, pricing/return behavior, escrow option). No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the key outcome (order returned with 'pending' status) and the optional escrow path. Only missing pieces are permission/auth expectations and whether repeated calls create duplicate orders.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds the quantity×pricePerUnit relationship and frames escrowAddress as optional, but offers no syntax or format detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Place) plus resource (purchase order for supplies/materials), clearly distinct from sibling read tools like marketplace_get_order and marketplace_list_orders. An agent can identify it as the order-creation tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus marketplace_get_order/marketplace_list_orders, and no prerequisites such as the listing needing to exist or quantity constraints. Usage is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
marketplace_update_listingAInspect
Update an existing supplies/materials listing (price, stock status, description, etc.). Pass only the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Listing ID to update | |
| tags | No | Updated search tags | |
| inStock | No | Stock availability | |
| description | No | Updated description | |
| leadTimeDays | No | Updated lead time in days | |
| pricePerUnit | No | New price per unit in USDC |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive mutation. The description adds the partial-update semantic (only changed fields are submitted), which is genuinely useful context beyond the annotations. It does not disclose permission requirements, reversibility, or what happens when a field is omitted, leaving gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler: the first states what is updated, the second states how to call it. The key calling convention is front-loaded and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers purpose and the partial-update mechanism, and annotations cover the safety profile. It omits who may update a listing, whether updates are reversible, and the response shape, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all six parameters are already documented in the schema, establishing the baseline of 3. The description's "pass only the fields you want to change" clarifies the partial-update contract across all optional parameters, adding modest value beyond the per-field schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Update), resource (supplies/materials listing), and enumerates the kinds of fields affected (price, stock status, description). It is clearly distinguishable from marketplace_create_listing and marketplace_delete_listing, though it does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Pass only the fields you want to change" gives useful partial-update guidance, which is implied usage context. However, there is no explicit when-to-use vs. when-not guidance, no mention of prerequisites (e.g., ownership of the listing), and no reference to sibling tools like marketplace_create_listing or marketplace_get_listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
match_spacesBInspect
Find hosting spaces that match specific machine requirements (voltage, area, etc.). Returns scored matches.
| Name | Required | Description | Default |
|---|---|---|---|
| minArea | No | Minimum floor area in square feet | |
| voltage | No | Required voltage (e.g. 208, 480) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=false and readOnlyHint=false; the description adds that the result is scored matches, which is return-value context beyond the annotations. However it does not explain scoring, ordering, pagination, whether the match is persisted (relevant given readOnlyHint=false on what reads like a query), or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero padding, with the core action front-loaded and the return behavior stated second. The parenthetical '(voltage, area, etc.)' is mildly redundant with the schema but does not bloat the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, no-required-argument tool with no output schema and annotations covering the safety profile, this is minimum viable: it says what it matches and that results are scored. It omits what a score means, result shape/ordering, and why a 'find' tool is flagged as not read-only, which an agent would benefit from knowing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (minArea with square feet, voltage with examples) are fully documented in the schema. The description only echoes the same fields ('voltage, area') and adds no syntax, defaults, or combining semantics beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Find hosting spaces that match specific machine requirements.' An agent can tell it is a matching/search tool for spaces, which separates it from mutation siblings. It does not, however, distinguish itself from the nearby search_spaces or get_space siblings, so no sibling differentiation credit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'match specific machine requirements (voltage, area, etc.)' implies the usage context — you call it when you have machine constraints and want candidate spaces. But there is no statement of when NOT to use it and no routing to search_spaces, get_space, or get_space_bookings, leaving the agent to infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_certificateAInspect
Mint a soulbound capability certificate (cNFT via Metaplex Core) for a kernel. Proves a verified capability on-chain as an immutable credential. Step 5 of onboarding.
| Name | Required | Description | Default |
|---|---|---|---|
| metadata | No | Additional metadata (tolerances, materials, calibration proof CID) | |
| kernelDid | Yes | DID of the kernel (e.g. did:pcc:kernel:biolab-01) | |
| assuranceTier | No | Assurance tier (0-3) | |
| capabilityType | Yes | Capability type (e.g. fdm, cnc-3axis, hplc) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and destructiveHint=false. The description adds genuinely useful behavioral context: the output is soulbound, on-chain, and immutable, which tells the agent the credential cannot be transferred or undone. It stops short of disclosing cost/gas requirements or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences; the core action and artifact are front-loaded, and each subsequent sentence adds a distinct fact (on-chain proof, onboarding position). No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with no output schema and thin annotations, the description covers the artifact, its immutability, and its onboarding position. It omits what the call returns (e.g., certificate address) and any cost or prerequisite detail, a modest but real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (kernelDid, capabilityType, assuranceTier, metadata) are already documented, including the nested metadata object. The description adds no syntax, format, or constraint detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (mint) and a precise resource (soulbound capability certificate, cNFT via Metaplex Core) plus the target object (a kernel). It is clear what the tool produces, though it never distinguishes itself from close siblings like create_capability or register_capability_ip.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Step 5 of onboarding" implies sequencing context and thus a rough when-to-use signal, but there is no explicit precondition list, no statement of when NOT to use it, and no routing to sibling alternatives such as create_capability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
near_intentAInspect
Submit a cross-chain payment intent to the NEAR 1Click solver network. Creates a signed intent that routes the payment atomically across chains. Call near_quote first to obtain a quoteId. Intents typically settle within 30-60 seconds — poll near_intent_status to track progress.
| Name | Required | Description | Default |
|---|---|---|---|
| quoteId | Yes | Quote ID returned from near_quote | |
| recipient | No | Recipient address on the destination chain (optional) | |
| workflowId | Yes | PCC workflow or job ID this payment is for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds genuinely new behavioral context — that the intent is signed, that routing is atomic across chains, and the typical 30-60 second settlement window. It does not cover auth/permission needs or what happens on a failed settlement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: what it does, the prerequisite, and the follow-up. The prerequisite is front-loaded before the polling hint, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and full schema coverage, the description supplies what an agent needs to sequence correctly: prerequisite quote, cross-chain atomicity, and settlement timing plus the tracking tool. It leaves out failure/refund behavior and permission requirements, which keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains quoteId, recipient, and workflowId. The description only restates the quoteId provenance ('Call near_quote first'), adding no syntax, format, or constraint detail beyond the schema — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Submit a cross-chain payment intent to the NEAR 1Click solver network') and adds the mechanism ('creates a signed intent that routes the payment atomically'). This clearly separates it from sibling near_quote (which produces the quote) and near_intent_status (which tracks it).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit prerequisite ('Call near_quote first to obtain a quoteId') and an explicit follow-up ('poll near_intent_status to track progress'), which is strong routing guidance. It does not state when not to use the tool or what happens if the quote expires, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
near_intent_statusARead-onlyInspect
Check the settlement status of a submitted NEAR 1Click cross-chain payment intent. Statuses progress: pending → submitted → settled | failed. Returns txHash and explorerUrl when settled.
| Name | Required | Description | Default |
|---|---|---|---|
| intentId | Yes | Intent ID returned from near_intent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/no-destructive, so the burden is lower. The description still adds genuine value by disclosing the state machine (pending → submitted → settled | failed) and what is returned on success (txHash, explorerUrl), which no output schema covers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with zero filler: the action and target come first, the status progression and return values follow. Nothing is redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully compensates by naming the return fields and the terminal states. It falls short only on operational guidance such as polling cadence or what to do while pending, which an agent calling a status-check tool would benefit from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and the schema documents it at 100% coverage, including its origin ('returned from near_intent'). The description adds no further parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (check) plus the exact resource (settlement status of a submitted NEAR 1Click cross-chain payment intent). This clearly separates it from siblings like near_intent, near_quote, and near_status, since it names the specific 1Click intent lifecycle it operates on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'submitted' implies the tool is used after near_intent, but the description never names near_intent as a prerequisite or states when to prefer this over near_status or get_settlement_status. Usage is inferable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
near_quoteAInspect
Get a cross-chain payment quote from the NEAR 1Click solver network (chaindefuser.com). Provides optimal routing and fee estimates for funding PCC escrow contracts using any source asset on any supported chain. Call near_status first to confirm available chains/assets.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount as an integer string in the smallest denomination (e.g. '1000000' for 1 USDC with 6 decimals) | |
| toAsset | Yes | Destination asset symbol (e.g. 'USDC') | |
| toChain | Yes | Destination chain (e.g. 'base', 'eth') | |
| fromAsset | Yes | Source asset symbol (e.g. 'USDC', 'ETH', 'NEAR') | |
| fromChain | Yes | Source chain (e.g. 'eth', 'base', 'near', 'arbitrum') | |
| recipient | No | Recipient address on the destination chain (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations are essentially defaults (readOnlyHint=false, destructiveHint=false), so they carry little; the description usefully adds the solver-network dependency and the near_status prerequisite. However, it says nothing about whether the quote is binding, how long it is valid, whether calling it has side effects on the destination chains, or what the response contains. Note: readOnlyHint=false is mildly at odds with the retrieval framing ("Get a quote"), but since false is the non-asserting default it is not a genuine contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the resource and provider, then use case, then prerequisite. No filler or repetition. It could arguably be even tighter, but every sentence contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers what the tool is, what it is for (funding PCC escrow contracts), and the prerequisite call. With no output schema, it would help to state what a quote returns (route, fee, expected amount), and it omits what to do with the quote afterwards (near_intent). For a single-purpose retrieval tool the core context is otherwise present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (amount denomination, chain/asset symbols, optional recipient are all documented in the schema), so the baseline is 3. The description adds conceptual scope ("any source asset on any supported chain") but no syntax, constraint, or default information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ("Get a cross-chain payment quote") and identifies the provider (NEAR 1Click solver network / chaindefuser.com), so the agent knows exactly what it produces. It does not explicitly differentiate itself from the nearest siblings near_intent / near_intent_status, which an agent must infer (quote vs. execute vs. poll).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete precondition: "Call near_status first to confirm available chains/assets." That is clear sequencing guidance for a multi-step cross-chain flow. It stops short of naming the execution alternative (near_intent) or stating when not to use a quote, so it is context without exclusions rather than full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
near_statusARead-onlyInspect
Get NEAR Protocol chain-abstraction integration status. Returns supported chains (near, eth, base, arbitrum, optimism, polygon), supported assets (USDC, USDT, NEAR, ETH, WBTC), and capability flags. Use this to confirm cross-chain settlement is available before requesting quotes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds genuine value beyond that by disclosing the payload contents (six supported chains, five assets, capability flags), which matters because there is no output schema. It stops short of noting error modes or staleness of the status data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: what it returns, the exact contents, and the intended use. Front-loaded with the verb+resource and no filler or restatement of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only status probe with annotations covering the safety hints and no output schema, the description carries the necessary burden by enumerating return contents and the intended pre-quote use. An agent can call this correctly without further information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to describe; baseline for a no-arg tool is 4. Nothing in the description misleads about inputs, and 'confirm before requesting quotes' correctly signals that the call is argument-free and cheap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (NEAR Protocol chain-abstraction integration status), and enumerates the returned data (chains, assets, capability flags). This is distinguishable from the other NEAR-prefixed siblings (near_quote, near_intent, near_intent_status), which concern quoting and intent flows rather than integration availability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives the triggering condition: 'Use this to confirm cross-chain settlement is available before requesting quotes.' That pins down when to call it and implies the sequencing relative to quote requests, though it doesn't name the sibling tool (near_quote) directly or state when the tool is unnecessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
onboard_machineAInspect
Register a new machine on the PCC network. Provide machine details to create a registration record. Include operator ({walletAddress, displayName, email}): without it the registration is recorded as operator 0x0000000000000000000000000000000000000000 / "Unknown", and prove cannot match it to you.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Machine name | |
| model | No | Model identifier | |
| category | Yes | Machine category (e.g. fdm, cnc, laser-cut, hplc) | |
| operator | No | Who owns this machine. prove and activate match the caller against operator.walletAddress (or operator.email). | |
| description | No | Machine description | |
| capabilities | No | Array of capability objects | |
| manufacturer | No | Manufacturer name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false. The description goes beyond that by disclosing what happens when `operator` is omitted (recorded as the zero address / 'Unknown') and the downstream consequence that prove cannot match the caller. This is genuine behavioral context an agent could not get from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, with the core action front-loaded and the operator caveat as the payoff. The trailing clause 'and prove cannot match it to you' is slightly awkward but carries real information, so the length is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter write tool with a nested operator object and no output schema, the description covers the action, the critical optional parameter, and its failure mode. It omits what a successful registration returns and how it relates to the subsequent prove/activate steps, which would round it out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds value beyond the schema by explaining the practical effect of the optional `operator` object (zero-address fallback and proof-matching failure), which the schema only hints at. The remaining six parameters get no description-level treatment, so it is not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Register a new machine on the PCC network.' This is clearly distinct from the read sibling 'get_registration' and the follow-up 'prove_registration'/'activate_registration'. It doesn't explicitly name those siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the entry point of the registration flow and gives conditional guidance on the `operator` field, but it never states when to use this tool versus the adjacent registration steps (prove_registration, activate_registration, list_registrations). Usage is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
operator_heartbeatCInspect
Operator sends heartbeat with capability re-announcement. Keeps the kernel alive on the network and updates available capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| kernelId | Yes | ||
| capabilities | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations supply the safety profile (readOnlyHint=false, destructiveHint=false), so the description only needs to add operational context. It does say the call keeps the kernel alive and updates capabilities, but omits frequency expectations, idempotency, and any auth/registration prerequisite tying it to operator status.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences that front-load the core action. A little more specificity would fit without bloat, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutating heartbeat with no output schema, 0% parameter documentation, and no stated return behavior leaves the agent guessing about what a successful response means and what shape capabilities must take. The description should do more given the missing schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% across two parameters, so the schema documents nothing. The description hints that the 'capability re-announcement' maps to the capabilities array and that kernel liveness maps to kernelId, but gives no expected structure for the capability objects or format constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ("Operator sends heartbeat") and adds the effect of keeping the kernel alive and refreshing capabilities. It does not explicitly distinguish itself from the sibling kernel_heartbeat or kernel_announce_capabilities, so an agent must infer the operator-side role rather than read it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to call this versus kernel_heartbeat, kernel_announce_capabilities, or get_operator_status. No timing, frequency, or context guidance is given; the agent must infer that this is a periodic liveness call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
operator_poll_jobsARead-onlyInspect
Operator polls for pending jobs assigned to their kernel. Returns queued jobs ready for execution. The pcc-node 0.1.1 daemon does not call it: it takes no jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| kernelId | Yes | Kernel ID to poll jobs for |
TDQS
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 covered. The description adds that it returns 'queued jobs ready for execution' and notes the daemon exclusion, but says nothing about polling cadence, side effects on returned jobs, or pagination—modest added context over annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with no filler. The purpose leads, the return value follows, and the daemon caveat is a deliberate, earned exception note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only poll tool with no output schema, the description covers purpose, return semantics, and a key caller exclusion. It lacks return shape/pagination detail, but the read-only annotation and the low complexity keep this adequate near the top of the scale.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage ('Kernel ID to poll jobs for'), so the schema already documents it. The description adds no format, sourcing, or validation detail beyond what the schema provides, matching the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('polls for pending jobs assigned to their kernel') with explicit scope and a named non-caller ('pcc-node 0.1.1 daemon does not call it'), which distinguishes it from siblings like get_kernel_jobs and list_jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies the operator/kernel-execution context and explicitly excludes the pcc-node 0.1.1 daemon ('it takes no jobs'), which is useful negative guidance. It does not name an alternative poll tool or state preconditions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
operator_push_evidenceAInspect
Operator pushes evidence bundle from a completed job execution. Contains device ID, execution timestamp, result payload, and event timeline. Success is a receipt with stored: true naming this jobId. HTTP 200 with stored: false means nothing was stored: never follow it with status completed.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | ||
| evidence | Yes | ||
| kernelId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnly=false and destructive=false, so the description carries most of the burden and does so well: it defines the success receipt (stored: true plus jobId) and warns that HTTP 200 with stored: false means nothing was stored and must not be followed by a 'completed' status. That failure-mode disclosure is real value beyond the annotations, though auth/prerequisites are unmentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the action and payload, then the success and failure semantics. No filler, though the success/failure conditions could be slightly tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no output schema and a nested evidence object, the description covers action, payload, return receipt, and the critical failure interpretation, which is the important missing piece an agent would otherwise get wrong. It remains thin on parameter-level detail and sibling disambiguation, but is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the schema only types the nested evidence object as generic 'object', so the description meaningfully clarifies the bundle's fields (device ID, execution timestamp, result payload, event timeline). It still leaves jobId and kernelId unexplained, so it compensates only partially for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('pushes evidence bundle') and describes the payload contents, so an agent understands what is being transmitted. However, it never distinguishes this tool from nearby siblings like commit_evidence, submit_evidence_hash, or register_job_evidence_ip, leaving the agent to guess which evidence-writing path applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'from a completed job execution' implies the context (a finished job's evidence must be pushed), which is genuine if minimal guidance. There is no explicit when-not-to-use or named alternative among the many evidence-related siblings, so usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
operator_update_job_statusAInspect
Operator reports a job's status (in_progress, completed, failed). The node path finishes a job in two calls: submit its evidence (POST /api/operator/evidence; pcc-node does this), and only if that receipt says stored: true for this jobId, set status completed here. HTTP 200 alone is not enough: the relay answers 200 with stored: false when it could not store the evidence (an unknown job, a storage failure); then set failed with the reason evidence_not_stored. On the current gateway, completed marks the job done and its timeline then says settled, but the escrow is not released yet (board G1). Do not call pcc_job_complete after this: it answers 409.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | ||
| status | Yes | ||
| kernelId | Yes | ||
| metadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover safety (readOnlyHint false, destructiveHint false). The description reveals non-obvious behavior: HTTP 200 does not imply success because the relay returns stored:false on storage failure, and 'completed' sets the timeline to 'settled' without releasing escrow. This is exactly the behavioral context annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the core action and status values, then layers the workflow and failure semantics. Dense but every sentence adds operational information. Slightly long for a tool description, though not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a mutation tool with only safety annotations, the description covers the critical decision path (evidence receipt → status), failure handling, and settlement caveats. It omits parameter-level detail (jobId, kernelId, metadata), which is the main gap for a 4-parameter tool with 0% schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there are 4 parameters (jobId, kernelId, status enum, metadata object). The description gives meaning to the status values (in_progress, completed, failed) and ties 'completed' to the stored:true precondition, but it says nothing about jobId, kernelId, or the metadata object. With 0% schema coverage, the description should have compensated more for the undocumented required identifiers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('reports a job's status') and enumerates the valid status values. It distinguishes itself from the generic sibling update_job_status by naming the operator role and a distinct workflow, and explicitly warns against calling pcc_job_complete afterward.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It prescribes a full two-step protocol: submit evidence, check stored:true, then set completed; otherwise set failed with evidence_not_stored. It also lists an explicit exclusion ('Do not call pcc_job_complete after this: it answers 409'). This is the strongest form of when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_protocol_runAInspect
Pause a running protocol run. Use resume_protocol_run to continue.
| Name | Required | Description | Default |
|---|---|---|---|
| runId | Yes | Protocol run ID to pause |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this mutates state non-destructively, and nothing in the description contradicts that. The description adds no further behavioral context — no reversibility, idempotency, or state-retention details — so it does not exceed the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the action is front-loaded and the sibling reference follows immediately. No filler whatsoever.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter state-mutation tool with no output schema, the action plus continuation path is essentially sufficient. Minor gaps remain around failure behavior and required run state, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single self-explanatory runId parameter, so the schema does the work. The description adds no format or sourcing guidance beyond it, giving the standard baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Pause) and resource (protocol run), scoped to a 'running' run, which is more precise than the bare name. It does not distinguish itself from the adjacent cancel_protocol_run sibling, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names resume_protocol_run as the way to continue, giving one explicit routing cue. However, it never says when to pause versus cancel_protocol_run or what prerequisites (ownership, run state) apply, leaving the main selection logic to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pay_ip_royaltyBInspect
Pay royalties to an IP asset vault. The payer sends tokens that flow to stakeholders via the royalty splits.
| Name | Required | Description | Default |
|---|---|---|---|
| ipId | Yes | IP asset ID | |
| amount | Yes | Amount to pay in wei (as string) | |
| payerAddress | Yes | EVM address of the payer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish it is a non-read-only, non-destructive mutation. The description adds genuine value by disclosing the split-based distribution flow, but omits whether a token approval is required, whether the payment is reversible, gas implications, or any permission requirements for the payer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, with the core action front-loaded and the flow mechanic second. No filler, though there is room for one clause of routing guidance without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation with no output schema and no return-value expectations needed, the description is adequate but incomplete: it doesn't say what the caller observes on success, whether approval is a prerequisite, or how it differs from the royalty-distribution siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents ipId, amount (wei as string), and payerAddress. The description adds no format, range, or unit details beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It states a specific verb and resource ('Pay royalties to an IP asset vault') and even sketches the fund flow. However, it never names or distinguishes itself from close siblings such as distribute_royalties, claim_ip_revenue, or get_ip_revenue, so the agent cannot route between them from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the mechanism ('tokens flow to stakeholders via royalty splits') but gives no when-to-use condition, no preconditions, and no mention of alternatives like distribute_royalties or claim_ip_revenue. Usage is only weakly implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_assign_node_operatorBInspect
Assign an operator to a specific capability node within a request. The node status changes to 'assigned'. Operators claim nodes to indicate they will execute that capability.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Capability node ID | |
| requestId | Yes | Request ID | |
| operatorId | Yes | Operator kernel ID or wallet address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish the safety profile (readOnlyHint=false, destructiveHint=false), so the mutation nature is already covered. The description does add one genuine behavioral fact beyond the annotations: the node status transitions to 'assigned'. However, it omits what happens if the node is already assigned, whether the change is reversible, and any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and resource, followed by the observable side effect and the rationale. No filler, though the third sentence is more motivational color than operational guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a non-destructive mutation tool with no output schema and fully documented parameters, the description covers purpose and the resulting state change. It leaves gaps around conflict handling, authorization, and the response shape, but these are not severe given the annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so nodeId, requestId, and operatorId are already fully documented in the schema, including the note that operatorId can be a kernel ID or wallet address. The description adds no parameter-level detail beyond that, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource pairing: assigning an operator to a capability node within a request. This is unambiguous and clearly distinct from read/query siblings like pcc_get_request. It stops short of differentiating itself from the nearby pcc_update_node_status, which also mutates node state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It conveys the intent behind the operation ('Operators claim nodes to indicate they will execute that capability'), which implies when it's used, but gives no explicit when-not conditions, prerequisites, or named alternatives such as pcc_update_node_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_camera_latestARead-onlyInspect
Get the latest camera frame from a kernel as a JSON snapshot (base64 JPEG + metadata). For raw JPEG image, use GET /api/ot2/camera/latest directly.
| Name | Required | Description | Default |
|---|---|---|---|
| kernelId | Yes | Kernel ID to get camera frame from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely useful behavior context beyond that: the payload is a JSON envelope containing base64 JPEG data plus metadata, which tells the agent how to parse the result. No auth or rate-limit notes, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The core action and payload are front-loaded, and the alternative-method routing is a tight follow-up sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully describes the return payload, and the single required param is covered by the schema. Complete enough to invoke correctly; only auth/error behavior is unaddressed, which is minor for a read-only snapshot tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and kernelId is fully documented in the schema, so the description adds no parameter meaning beyond it. Baseline 3 is appropriate; the description's value lies in the return format, not the input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Get the latest camera frame from a kernel') plus the exact return shape (JSON snapshot with base64 JPEG + metadata). It also distinguishes this tool from the raw-JPEG path, so an agent can tell what it will receive without opening anything else.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the alternative for the raw JPEG case ('use GET /api/ot2/camera/latest directly'), which is a real routing decision. It lacks any exclusions relative to sibling tools, but the format-choice guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_cancel_requestADestructiveInspect
Cancel a capability request. Cancelled requests cannot be updated, decomposed, or published. This is a soft delete — the request remains visible with status 'cancelled'.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | Request ID to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds genuinely useful context that annotations cannot: this is a soft delete, the request stays visible with status 'cancelled', and downstream operations (update, decompose, publish) are blocked. That materially refines the meaning of 'destructive' for the caller. It does not disclose permissions or idempotency behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, action first, consequences second, semantic clarification third. No filler, and the most important information (what the tool does) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, no-output-schema tool with destructive annotations, the description covers purpose, irreversibility of downstream actions, and the soft-delete semantics. Only minor gaps remain, such as required request status or whether cancel is idempotent, which an agent could reasonably need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage ('Request ID to cancel'), so the schema fully documents the input. The description adds no format, sourcing, or validation guidance beyond it. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Cancel) and resource (capability request) in the first sentence, and the second sentence implicitly distinguishes it from the sibling mutation tools pcc_update_request, pcc_decompose_request, and pcc_publish_request by naming the operations that become impossible. It stops just short of explicitly naming an alternative tool or the trigger condition for choosing it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: an agent can infer this is for terminal withdrawal of a request, and that update/decompose/publish are no longer options afterward. However, there is no explicit 'use this when X, instead of Y' guidance, no prerequisites (e.g. must the request be in a particular status?), and no statement about whether cancellation can be repeated or undone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_capture_anchorAInspect
Anchor a PASS + anchor-candidate capture verdict to CaptureClassRegistry on-chain (Base Sepolia by default). Rejects FAIL/PARTIAL verdicts. Idempotent — re-submitting the same verdictId returns the existing anchor row. Returns 202 {status:'deferred'} if CaptureClassRegistry is not yet deployed (CAPTURE_REGISTRY_ADDRESS unset).
| Name | Required | Description | Default |
|---|---|---|---|
| verdictId | Yes | The verdictId returned by pcc_capture_upload. Must be a PASS verdict with anchorCandidate=true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnly=false, destructive=false), and the description goes well beyond: it discloses idempotency semantics, the rejection rule for FAIL/PARTIAL, and the 202 deferred fallback when CAPTURE_REGISTRY_ADDRESS is unset. These are exactly the runtime behaviors an agent cannot infer from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the action and target, followed by the acceptance rule, then the idempotency and fallback behaviors. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter write tool with no output schema, the description covers the success path, the rejection path, the idempotent replay case, and the not-deployed 202 case — leaving nothing material unspecified for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 100% schema description coverage, so the schema already carries verdictId's meaning and its PASS/anchorCandidate constraint. The description reinforces but does not extend that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (anchor) and resource (PASS capture verdict → CaptureClassRegistry), states the accepting condition (PASS + anchorCandidate) and the target chain. This is clearly distinct from sibling pcc_capture_upload (which produces the verdictId) and pcc_capture_class_registry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear preconditions: the verdict must be PASS with anchorCandidate=true, and the verdictId comes from pcc_capture_upload. It also states that FAIL/PARTIAL verdicts are rejected. It does not explicitly route the agent between this and the registry/upload siblings, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_capture_challengeAInspect
Issue a fresh block-anchored CaptureNonceChallenge for a job. The operator's device must render this nonce into the captured media (QR code, audio tone, etc.) before calling pcc_capture_upload. The nonce is derived from (challengeId, latest blockHash, workOutputRoot) so captures cannot be pre-computed. Returns challengeId, 64-char hex nonce, blockNumber, maxAgeSeconds (clamped to 120).
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | PCC job ID the capture belongs to | |
| declaredClass | Yes | Capture class the operator plans to claim. Determines which gates the verifier will run. | |
| requestedTtlSeconds | No | Requested challenge lifetime in seconds. Clamped to 120 server-side. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so this is a non-destructive write. The description adds meaningful behavior beyond that: the nonce is block-anchored and derived from (challengeId, latest blockHash, workOutputRoot) to prevent pre-computation, and TTL is clamped to 120 seconds. It omits auth needs or rate limits, but the added cryptographic and lifetime context is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences: purpose, required workflow step, then derivation and return shape. No wasted words and key constraints are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully lists the return fields (challengeId, nonce, blockNumber, maxAgeSeconds). It covers the challenge's role in the capture workflow and its anti-precomputation guarantee, so an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents jobId, declaredClass, and requestedTtlSeconds. The description only repeats that maxAgeSeconds/requestedTtlSeconds is clamped to 120, adding no new syntax or constraint information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Issue a fresh block-anchored CaptureNonceChallenge for a job.' This clearly distinguishes it from sibling capture tools like pcc_capture_upload and pcc_capture_anchor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says the operator's device must render the nonce into captured media before calling pcc_capture_upload, which gives clear sequencing and names the next tool. It does not say when not to use this tool or list alternative challenge mechanisms, but the context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_capture_class_registryARead-onlyInspect
Look up a capture's on-chain anchor record in CaptureClassRegistry by its 32-byte captureHash. Returns the registry address, captureHash, and decoded anchor tuple (declaredClass, verifiedClass, manifestHash, submittedBy, jobId, challengeId, blockAnchor, capturedAt, attestationsRoot, attesterCount). onchain is null if the capture was never anchored. Returns 202 deferred when CaptureClassRegistry is not yet deployed.
| Name | Required | Description | Default |
|---|---|---|---|
| captureHash | Yes | Capture hash (32-byte). Accepts 0x-prefixed or unprefixed hex, or sha256:<hex> format. Padded server-side to bytes32. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint=false, so safety is covered. The description adds real behavioral context beyond that: onchain is null when the capture was never anchored, and a 202 deferred response when the registry is undeployed. It stops short of describing retry/polling behavior for the deferred case.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences: what it looks up, what it returns, and the two edge-case behaviors. Front-loaded with the core purpose and no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description enumerates the return shape (registry address, captureHash, decoded anchor tuple fields) and the two special states (null onchain, 202 deferred). An agent has everything needed to call and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single captureHash parameter is fully documented (hex, 0x-prefix, sha256: format, server-side bytes32 padding). The description only restates '32-byte captureHash', adding nothing the schema doesn't already say, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (look up), resource (a capture's on-chain anchor record in CaptureClassRegistry), and key (32-byte captureHash). This clearly separates it from the write-side sibling pcc_capture_anchor and from status/upload tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the read path for an existing capture's anchor, but it never states when to prefer it over pcc_capture_status, pcc_capture_anchor, or pcc_get_request. No explicit exclusions or routing guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_capture_statusARead-onlyInspect
Fetch the combined verdict + on-chain anchor view for a single capture. Mirrors the verifier's DB shape plus the anchor tx metadata (txHash, blockNumber, gasUsed, explorerUrl). Anchor is null if the verdict was never anchored.
| Name | Required | Description | Default |
|---|---|---|---|
| verdictId | Yes | Capture verdict UUID (from pcc_capture_upload). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a safe read (readOnlyHint=true, destructiveHint=false). The description adds real behavioral value beyond that: it enumerates the returned anchor metadata fields (txHash, blockNumber, gasUsed, explorerUrl) and explains the null-anchor edge case. It stops short of covering auth requirements or any rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the primary purpose front-loaded and the null-anchor edge case appended. No filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully sketches the return payload and the null case, and the read-only annotations cover the safety profile. For a single-parameter read tool this is largely sufficient, though chain/context and auth expectations are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter's schema description even points to its origin (pcc_capture_upload), so the schema carries the load. The description adds no parameter-level detail beyond this, which is the expected baseline when schema documentation is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Fetch') and resource ('combined verdict + on-chain anchor view for a single capture'), which clearly distinguishes it from list-style siblings like pcc_list_verdicts and the anchor-only pcc_capture_anchor. It is clear what the tool returns, though it does not explicitly name the sibling tools it should be chosen over.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by 'for a single capture'; there is no explicit when-to-use guidance or routing to alternatives such as pcc_capture_anchor or pcc_list_verdicts. The mention that the anchor is null when unanchored hints at a use case but is not framed as selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_capture_uploadAInspect
Upload a capture (photo / video / audio / sensor clip) with its CaptureManifest for G1..G6 verification. Bytes are base64-encoded inline; optional base64 C2PA manifest bytes can be supplied for CC3+ claims. The server runs the 6-gate CaptureVerifier and persists a PASS/PARTIAL/FAIL verdict. Returns {verdictId, verdict, verifiedClass, gatesPassed, gatesFailed, warnings, anchorCandidate, captureHash, manifestHash}.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | No | Job ID for telemetry binding. Falls back to manifest.jobId if omitted. | |
| manifest | Yes | CaptureManifest — ALCOA+-ready metadata: class, declaredAt (ISO-8601), deviceFingerprint, mediaHash (sha256:<hex>), optional challengeId. See CaptureManifestSchema in @pcc/spec. | |
| operatorId | No | Explicit operator ID. Falls back to the authenticated session userId. | |
| challengeId | No | Challenge UUID to re-bind to the in-memory challenge cache (G3 freshness gate). | |
| submittedAt | No | Client-submitted timestamp (epoch ms). Used in drift detection. | |
| visualNonceEcho | No | The visual nonce value the operator rendered in-scene (QR payload, audio tone id, etc.). | |
| c2paManifestBase64 | No | Optional base64-encoded C2PA manifest JUMBF bytes. Required when manifest.class >= CC3. | |
| captureBytesBase64 | Yes | Base64-encoded capture bytes (image / video / audio / sensor clip). Hash must match manifest.mediaHash. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only state readOnlyHint=false and destructiveHint=false; the description adds meaningful process detail by explaining that the server runs the 6-gate CaptureVerifier and persists a PASS/PARTIAL/FAIL verdict. It also lists the response fields, giving the agent visibility into the post-upload behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four tightly written sentences: purpose first, then encoding details, then verification behavior, then return shape. Every sentence adds useful information and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description usefully names the returned fields and explains the verification workflow. It stops short of covering authentication fallbacks, error cases, or idempotency, but the schema handles parameter-level details and annotations cover the write profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all eight parameters thoroughly. The description adds only light context about base64 inline bytes and optional C2PA bytes for CC3+ claims, which largely repeats what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specifies the exact verb (Upload) and resource (capture) along with the verification scope (G1..G6) and supported media types. This distinguishes it operationally from nearby siblings like pcc_capture_challenge and pcc_capture_status without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but gives no explicit when-to-use guidance or alternatives to pcc_capture_anchor, pcc_capture_challenge, or pcc_list_verdicts. The CC3+ C2PA note is a conditional parameter requirement, not usage guidance for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_chat_historyBRead-onlyInspect
Get chat history with a kernel. Returns messages between agents, operators, and users for a specific kernel.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum messages to return (default 50) | |
| kernelId | Yes | Kernel ID to get chat history for |
TDQS
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 covered. The description adds that results are scoped to a single kernel and include multiple participant types, but says nothing about ordering, pagination, or whether history is truncated beyond the default limit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core action front-loaded and no filler. The second sentence is mildly redundant with the first but does usefully enumerate the participant types.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-param read tool with an output schema absent but trivial return semantics, the definition is adequate but leaves open result ordering and pagination behavior. Nothing an agent needs to invoke it is missing, but nothing extra is provided either.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (kernelId, limit with default 50) are documented in the schema. The description adds kernel scoping context but no syntax or behavioral detail beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('chat history with a kernel') and clarifies the returned content is messages between agents, operators, and users for a specific kernel. It does not name or differentiate itself from the sibling pcc_chat_send, which is the closest alternative, so it lands just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the read-oriented framing and the presence of pcc_chat_send as a sibling, but the description never states when to use this versus sending or listing conversations (e.g. list_conversations). No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_chat_sendAInspect
Send a chat message to a kernel's operator or agent. Used for human-in-the-loop communication during job execution, troubleshooting, and escalation.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Sender role (default: user) | |
| message | Yes | Message content | |
| kernelId | Yes | Kernel ID to send the message to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive write. The description adds useful context that the message is for human-in-the-loop communication, but it does not disclose delivery behavior, persistence, recipient routing, or authentication requirements. With annotations covering the safety profile, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, followed by concise usage context. Every phrase earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple send-message tool with full schema coverage and annotations that cover safety, the description is nearly complete. It explains purpose and usage contexts. The main missing element is explicit routing against sibling pcc_chat_history, but that is a minor gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema documents all three parameters including the role enum and its default. The description adds no additional parameter-level semantics beyond identifying the recipient as an operator or agent. Baseline 3 is appropriate when the schema already carries the parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Send a chat message to a kernel's operator or agent.' It clearly conveys the action and target. However, it does not distinguish this tool from sibling pcc_chat_history, which likely handles the read side of the same conversation domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage contexts: human-in-the-loop communication during job execution, troubleshooting, and escalation. This is clear guidance on when to use it. It stops short of naming alternatives or stating when not to use it, such as reading existing chat history instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_contributor_listARead-onlyInspect
List all contributor profiles for an address across roles. Returns an array of {id, address, role, scheduleHash, ipId, contributorNftTokenId, metadataUri, registeredAt}. Returns empty array when no profiles exist for the address.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Wallet address (0x + 40 hex chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a read-only, non-destructive operation. The description adds useful behavior beyond annotations by specifying the returned array structure and the empty-array case when no profiles exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose and followed by the return behavior. Every sentence earns its place by clarifying output shape and the empty-result case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully lists the return object fields and the empty-array case. It is complete enough for an agent to call and interpret the response, though it omits ordering or pagination details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single address parameter is already fully documented in the schema. The description adds only that profiles are looked up for that address across roles, which is meaningful but does not go beyond the baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource: 'List all contributor profiles for an address across roles.' It clearly states what the tool returns, though it does not explicitly differentiate from the related sibling pcc_contributor_register.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied: use this to retrieve contributor profiles for a given address. However, there is no explicit when-to-use or when-not-to-use guidance, and no alternative such as pcc_contributor_register is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_contributor_registerAInspect
Register a contributor profile binding a wallet address to a role and a published RateSchedule. Body: address (0x40hex), role (10 ContributorRole values from ADR-12 §2.1 + legacy 'designer'), scheduleHash (0x64hex of a previously published schedule), optional ipId, metadataUri, contributorNftTokenId. Returns the persisted profile (composite id is address:role:tail). Idempotent on the composite id — re-posting the same (address, role, contributorNftTokenId) replaces the prior profile.
| Name | Required | Description | Default |
|---|---|---|---|
| ipId | No | Optional Story Protocol IP Asset ID | |
| role | Yes | ContributorRole — 10 ADR-12 roles + deprecated 'designer' | |
| address | Yes | Wallet address (0x + 40 hex chars) | |
| metadataUri | No | Optional ipfs:// or https:// URI | |
| scheduleHash | Yes | 0x + 64 hex sha256 of a published RateSchedule | |
| contributorNftTokenId | No | Optional ContributorNFT tokenId once minted on-chain |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false. The description adds real behavioral context beyond that: the idempotency key (composite id address:role:tail), the fact that matching re-posts overwrite the prior profile, and the shape of the returned persisted record. Auth requirements and failure modes on an unpublished scheduleHash remain undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: identity and core binding first, then the field list, then return/idempotency semantics. Nearly every clause carries information, though the hex-format repetition of the schema costs some space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-param mutation tool with no output schema, the description covers the return value, the composite id, and overwrite behavior. It is close to complete for calling it correctly, missing only permission/validation error behavior and what happens when scheduleHash references an unpublished schedule.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each field including the role enum and hex formats. The description largely restates the same hex lengths and role provenance, adding only the 'previously published schedule' dependency, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Register a contributor profile binding a wallet address to a role and a published RateSchedule.' That is unambiguous and clearly separable from the sibling pcc_contributor_list, which reads rather than writes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: an agent can infer this is the write path for contributor profiles. The idempotency note ('re-posting the same (address, role, contributorNftTokenId) replaces the prior profile') is genuinely decision-relevant, but there is no explicit when-to-use/when-not or named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_create_scopeAInspect
Create an execution scope for a job. Scopes define exactly which tool calls are allowed on a kernel during a job, with command budgets, retry limits, and time-to-live. Required before issuing SCOPED WRITE operations (protocol upload, run create, run action).
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | No | Job ID this scope is bound to (optional) | |
| kernelId | Yes | Kernel ID to create the scope for | |
| maxRetries | No | Maximum retries allowed (default 3) | |
| ttlMinutes | No | Scope duration in minutes (default 30) | |
| maxCommands | No | Maximum tool calls allowed in this scope (default 100) | |
| allowedSlots | No | Which deck slots may be accessed (e.g. [1, 2, 3, 9]) | |
| allowedTools | Yes | List of tool names allowed in this scope (e.g. ['ot2_protocol_upload', 'ot2_run_create', 'ot2_run_action']) | |
| protocolHash | No | SHA-256 hash of the approved protocol content. If set, protocol uploads are hash-verified. | |
| allowedPipettes | No | Which pipettes may be used (e.g. ['left']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-read-only, non-destructive operation. The description adds meaningful context beyond that: it explains that the created scope gates which tool calls are allowed and includes budgets, retry limits, and TTL. It stops short of covering auth requirements or reversibility, but the annotations carry that baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action, followed by a definitional elaboration and then a prerequisite. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation tool with full schema coverage and annotations, the description is nearly complete: it covers purpose, scope semantics, and the critical prerequisite. It could route to related sibling tools (revoke_scope, scope_audit) to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is documented in the schema. The description adds only high-level grouping (command budgets, retry limits, time-to-live, allowed tool calls) without syntax or format details beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Create an execution scope for a job') and immediately elaborates what a scope is ('exactly which tool calls are allowed on a kernel... with command budgets, retry limits, and time-to-live'). This distinguishes it from siblings like pcc_revoke_scope or pcc_scope_audit without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a clear prerequisite: 'Required before issuing SCOPED WRITE operations (protocol upload, run create, run action).' This tells the agent when to call it, but it does not name alternatives or state when not to use it (e.g., if a scope already exists).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_decompose_requestAInspect
Re-trigger decomposition of an existing capability request. Overwrites the existing capability DAG with a fresh decomposition. Useful after updating the description or budget.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | Request ID to decompose |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=false already covering the write nature, the description adds the crucial consequence that the existing capability DAG is overwritten and replaced with a fresh one — an effect the agent could not infer from annotations. There is mild tension with destructiveHint=false since prior decomposition output is discarded, but the operation is a regenerable recompute rather than an irreversible deletion, so this is not a true contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, then the effect, then the motivating scenario. No redundancy and nothing that fails to earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, no-output-schema mutation, the definition covers action, side effect, and motivation, which is enough to invoke it correctly. It could say slightly more about what the fresh decomposition replaces or whether it is asynchronous, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100% ('Request ID to decompose'), so the schema already carries the semantics. The description never mentions requestId or what constitutes a valid/re-decomposable request, adding nothing beyond the schema — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Re-trigger decomposition of an existing capability request') and the qualifier 'existing' plus 'Re-trigger' cleanly separates it from creation siblings like pcc_submit_request and read siblings like pcc_get_request_dag. An agent can pick this tool without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete trigger condition ('Useful after updating the description or budget'), which is real when-to-use guidance rather than generic filler. It stops short of naming alternatives or stating when NOT to re-decompose (e.g. while a decomposition is already running).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_dht_announceAInspect
Announce capabilities to the DHT network. Signs the announcement with your node's Ed25519 key and broadcasts to connected peers.
| Name | Required | Description | Default |
|---|---|---|---|
| kernelId | Yes | Kernel ID announcing capabilities | |
| ttlSeconds | No | How long the announcement is valid (default 300) | |
| capabilities | Yes | Array of capability summaries to announce |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover readOnlyHint=false and destructiveHint=false; the description adds real behavioral value by disclosing that the announcement is signed with the node's Ed25519 key and broadcast to connected peers. It still omits auth requirements, idempotency, or rate-limit behavior, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences with the action front-loaded and the signing/broadcast mechanics second. No wasted words or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter announcement tool with no output schema and annotations already carrying the safety profile, the description covers the essential mechanics. The remaining gap is the undisclosed overlap with kernel_announce_capabilities rather than missing return or param detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so kernelId, ttlSeconds, and capabilities are already documented in the schema. The description adds no syntax, default, or constraint detail beyond it, which matches the baseline 3 when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Announce capabilities to the DHT network,' which is clear on its own. However, it does not distinguish itself from the sibling kernel_announce_capabilities, leaving ambiguity about which announcement tool to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use context, no prerequisites, and no exclusions. It never acknowledges the closely related sibling kernel_announce_capabilities, so the agent gets no routing guidance between the two.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_dht_metricsARead-onlyInspect
Get a snapshot of DHT telemetry counters and recent events. Returns message counts, peer connection stats, query/announce rates, and a list of the last 50 metric events. Use for monitoring network health.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral detail: what the snapshot contains (message counts, peer connection stats, query/announce rates) and that the event list is capped at the last 50 — a bounded-return disclosure the annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the operation and return contents front-loaded; the closing usage hint is short and additive. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, no-output-schema snapshot tool, the description covers what is returned and the event-list cap. It leaves out refresh/freshness semantics and the exact shape of the counter fields, but nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies a parameter-free snapshot and does not fabricate arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (DHT telemetry counters and recent events), and enumerates the returned metrics. It distinguishes the tool from pcc_dht_peers/pcc_dht_query/pcc_dht_announce by content, though it does not explicitly name those siblings or get_telemetry_stats, which also reports telemetry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use for monitoring network health" implies a context but gives no when-not guidance and names no alternative among the many telemetry tools (get_active_telemetry, get_telemetry_stats, get_telemetry_logs). Usage is inferable but not routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_dht_peersBRead-onlyInspect
List known DHT peers and their connection status. Shows which nodes are currently connected to the gossip network.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds a useful scope clarification (peers currently connected to the gossip network) but says nothing about result size, pagination, freshness of the snapshot, or what 'connection status' values look like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and resource. The second sentence is somewhat redundant with 'connection status' in the first, costing a little efficiency but not enough to be a real defect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool this is close to adequate, but with no output schema the description should carry the return shape (peer identity fields, status values, whether the view is local or global), and it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the schema to describe and nothing the description must compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List known DHT peers') plus the key attribute returned ('connection status'), and the second sentence clarifies the scope as nodes on the gossip network. It does not, however, explicitly distinguish itself from the closely-named siblings pcc_dht_announce, pcc_dht_query, or pcc_dht_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance and no alternative routing. An agent cannot tell from the text whether this is the right call versus pcc_dht_metrics (peer/graph statistics) or pcc_dht_query (lookup a key), which are plausible substitutes for inspecting the DHT.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_dht_queryCInspect
Query the DHT for capabilities matching your requirements. Returns announcements from operators whose equipment matches the type, materials, and price range you specify.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Capability type to search for (e.g. 'fdm_print', 'liquid-handler', 'cnc-3axis') | |
| limit | No | Maximum results to return (default 10) | |
| maxPrice | No | Maximum price per job — matches operators whose min price is at or below this | |
| materials | No | Materials you need (matches if operator supports ANY of these) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations supply readOnlyHint=false and destructiveHint=false, yet the description frames this purely as retrieval ('Query... Returns announcements') and never discloses what the non-read-only side effects actually are. No rate limits, timeout, stale-cache, or result-freshness behavior is mentioned, so the description adds essentially no behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the purpose front-loaded and no filler. The second sentence mostly restates the first from the return side, so there is a small amount of redundancy but nothing costly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param, all-optional query with full schema coverage and no output schema, the description does cover what comes back ('announcements from operators'). What is missing is the behavioral side: why the server marks it non-read-only, and how result volume/freshness works. Adequate but with a clear gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so type, limit, maxPrice, and materials are already fully documented in the schema. The description merely restates the same filters (type, materials, price range) and omits 'limit' entirely, adding no semantics beyond structured data. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Query the DHT for capabilities' with the matching criteria (type, materials, price range) spelled out. It does not, however, differentiate itself from siblings like search_capabilities, pcc_orchestrator_match_capabilities, or pcc_dht_announce, which an agent must choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance and no alternatives named. An agent has to guess whether this or search_capabilities / pcc_orchestrator_match_capabilities is the right entry point for capability discovery, and whether pcc_dht_announce is the write-side counterpart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_get_requestBRead-onlyInspect
Get a capability request by ID with the full decomposed DAG — all capability nodes, their dependencies, estimated costs/hours, assigned operators, and linked bounty IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | Request ID |
TDQS
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 covered. The description adds useful content about the returned payload (full decomposed DAG, operators, bounty links), but says nothing about response size, pagination, or truncation for what is likely a large nested graph.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler; the dash-list of returned fields is dense but each item is informative. Slightly long, but every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully sketches the return payload, which is the right move. It falls short on the one thing an agent in this crowded request-tool family needs most: how it differs from pcc_get_request_dag and pcc_get_request_critical_path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single required requestId parameter with 100% schema description coverage, so the schema already documents the input. The description's 'by ID' adds no syntax or format detail beyond that; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (capability request) and enumerates the payload: capability nodes, dependencies, costs/hours, operators, bounty IDs. However, it does not distinguish this from the sibling pcc_get_request_dag, which appears to serve a very similar DAG-retrieval purpose, leaving overlap unresolved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus pcc_get_request_dag, pcc_get_request_critical_path, or pcc_list_requests. The agent must infer from names alone which of several near-identical request-read tools applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_get_request_critical_pathARead-onlyInspect
Get the critical path (longest dependency chain) for a capability request. The critical path determines the minimum calendar time to complete the request. Returns node IDs in order, the full node details, and total hours on the critical path.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | Request ID |
TDQS
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 covered. The description adds useful behavioral substance by disclosing what is returned (ordered node IDs, full node details, total hours), which matters since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and no filler. Minor redundancy in restating 'critical path' across sentences, but overall tight and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description covers the purpose, the meaning of the result, and the return shape. The only real gap is sibling routing against pcc_get_request_dag, which is a minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is a single requestId parameter, so the schema carries the load. The description adds no parameter syntax or format detail beyond what is already in the schema, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the critical path... for a capability request') and even defines the term parenthetically as the longest dependency chain, so the agent knows exactly what is fetched. It does not, however, distinguish itself from the closely related sibling pcc_get_request_dag, which an agent selecting between them would need.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains why the critical path matters ('determines the minimum calendar time') but gives no explicit when-to-use guidance and names no alternatives. With siblings like pcc_get_request and pcc_get_request_dag, the agent gets no routing signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_get_request_dagARead-onlyInspect
Get the capability DAG (directed acyclic graph) for a request as adjacency data — nodes with all fields plus explicit edges showing dependency relationships. Useful for visualization or workflow planning.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | Request ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuine value beyond that by disclosing the return structure ('nodes with all fields plus explicit edges showing dependency relationships') — important since no output schema exists. It stops short of noting size limits or pagination, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the core action and the distinguishing output shape front-loaded. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining the return value and does so adequately by naming nodes and edges. It is slightly under-complete on error behavior and whether the graph can be partial or large, but nothing critical to invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (requestId) with 100% schema description coverage, so the baseline is 3. The description adds no meaning about the identifier's origin or format beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the capability DAG for a request') and goes further by describing the returned shape as adjacency data with nodes and explicit edges. It does not, however, differentiate itself from close siblings like pcc_get_request or pcc_get_request_critical_path, so an agent must guess which graph view it wants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for visualization or workflow planning' implies a context of use but gives no explicit when-to-use versus alternatives and no exclusions. The agent is left to infer that the critical-path sibling is the narrower option.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_get_tool_manifestARead-onlyInspect
Get the tool manifest for a kernel's device type. Lists all available tools with their safety classification (read, safe_control, scoped_write, privileged) and input schemas. Use to understand what tools are available before making tool calls.
| Name | Required | Description | Default |
|---|---|---|---|
| kernelId | Yes | Kernel ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe read (readOnlyHint=true, destructiveHint=false), and the description is consistent with that. It adds real value by disclosing what the response contains: the union of available tools, their safety classifications, and their input schemas. It stops short of noting pagination or scoping limits, which is minor for a discovery call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose and followed by the return contents and the usage cue. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description reasonably covers the return shape (tool list, safety classes, schemas) and the rationale for calling it. For a single-parameter read tool with annotations handling the safety profile, nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One parameter with 100% schema description coverage, so the schema carries the load. The description adds only a framing note that the manifest is keyed to a kernel's device type, which slightly clarifies what kernelId selects but adds no format or constraint detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb ('Get') and resource ('tool manifest'), scopes it ('for a kernel's device type'), and states exactly what the payload contains (tool list, safety classification, input schemas). This distinguishes it from relay/execution siblings like pcc_relay_tool_call, which invoke tools rather than enumerate them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it: 'Use to understand what tools are available before making tool calls.' This gives clear context but names no alternative (e.g., a per-tool lookup or pcc_get_tool_result) and sets no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_get_tool_resultARead-onlyInspect
Get the result of a previously relayed tool call. Poll this endpoint until the executor has processed the call and posted results.
| Name | Required | Description | Default |
|---|---|---|---|
| callId | Yes | Tool call ID returned from pcc_relay_tool_call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely new behavioral context: the operation is asynchronous and results may not be ready, so the agent must poll rather than expect an immediate value. It says nothing about return shape or error states for an unknown/expired callId, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and followed by the operational instruction. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description is the only place a return-value shape could be explained, and it does not describe what a completed result looks like or what a not-yet-ready response returns. For a simple single-param read tool this is adequate but leaves a clear gap for polling logic.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One required parameter with 100% schema coverage; the schema already documents callId as the ID returned from pcc_relay_tool_call. The description adds no format, lifecycle, or expiry semantics for the ID, so this is the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: retrieves the result of a previously relayed tool call, which cleanly distinguishes it as the retrieval counterpart to pcc_relay_tool_call. It doesn't explicitly name which relay sibling it pairs with in the description body, but the pairing is unambiguous from context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Poll this endpoint until the executor has processed the call and posted results" gives a concrete usage pattern for an async workflow, telling the agent this is a post-relay retrieval step. It stops short of stating when not to use it, e.g. that a call that was never relayed has no result.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_job_completeAInspect
Complete a job: gathers tool call audit trail from execution scopes, builds evidence bundle with SHA-256 hash, stores evidence, revokes scopes, and settles escrow (mock or real). This is how a job run through execution scopes is finished. A node that submitted its evidence and set status completed (operator_update_job_status) must not call it: it then answers 409 ("Job already completed or completion in progress").
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID to complete | |
| message | No | Completion message or notes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnlyHint=false, destructiveHint=false); the description carries the real behavioral burden by disclosing the multi-step side effects (evidence hashing/storage, scope revocation, escrow settlement) and the 409 failure mode. It does not cover idempotency or what a successful completion returns, and 'revokes scopes' sits in mild tension with destructiveHint=false, though that flag plausibly refers to data destruction rather than access revocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action and its effects, then the routing rule and error case. Dense but every clause carries information; only the parenthetical '(mock or real)' and repeated 'completed' phrasing are mildly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-step mutating job-lifecycle tool with no output schema, the description covers triggers, effects, and the key error path. It stops short of describing the settlement result or partial-failure behavior, which an agent might want before committing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so jobId and message are already documented in the schema; the description adds no syntax, format, or constraints for either. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('Complete a job') and enumerates the concrete lifecycle it performs: gather audit trail, build SHA-256 evidence bundle, store evidence, revoke scopes, settle escrow. It clearly distinguishes the tool from siblings like operator_update_job_status and pcc_job_settlement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States both the primary when-to-use ('This is how a job run through execution scopes is finished') and an explicit when-NOT-to-use, naming the sibling (operator_update_job_status) and the resulting 409 response. An agent cannot misroute this call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_job_settlementARead-onlyInspect
Get a job's settlement status from its own escrow records: status (settled only when a settlement read confirms the release; reported_released when the milestone record says released but nothing confirms it; simulated for a mock escrow; awaiting_settlement, no_settlement_record, unknown or unavailable otherwise), settled, payout, paidAmount (confirmed releases only), reportedReleasedAmount, quotedAmount, currency (recorded or null), escrow, milestones, the negotiation session, notices and asOf.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read, so the bar is lower, yet the description still adds real value: it explains the provenance of the data and, critically, the confidence semantics of each status value (settled only when a settlement read confirms release; reported_released when only the milestone record claims it; simulated for a mock escrow). That is exactly the kind of interpretation guidance annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and the status-semantics parenthetical are front-loaded, and every listed field earns its place because there is no output schema. It is, however, a single run-on sentence enumerating a dozen fields without grouping, which slightly hurts scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, enumerating return fields and defining status values is essential, and the description does this thoroughly, including the nullable-currency caveat and the asOf timestamp. Minor gaps remain on what container fields like escrow, milestones, and notices actually hold.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
A single jobId parameter is fully documented (100% schema coverage) and the description adds nothing about it, which is the expected baseline. No enum, format, or lookup hints are given beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a job's settlement status') and even narrows the source ('from its own escrow records'), which helps distinguish it from get_escrow/get_settlement_status. It never explicitly routes against those siblings, so an agent still has to infer which settlement-related getter to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not guidance, and the sibling set contains several close alternatives (get_settlement_status, get_escrow, get_settlement_epochs, get_job) that go unmentioned. The agent must guess based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_list_requestsARead-onlyInspect
List all capability requests with optional filtering. Shows status, decomposed DAG summary, estimated costs, and timelines.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status | |
| urgency | No | Filter by urgency | |
| requesterEmail | No | Filter by requester email |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds meaningful value beyond that by disclosing the returned fields (status, DAG summary, estimated costs, timelines), which is useful since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste; the purpose is front-loaded and the return-content detail follows economically.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description adequately covers both the filtering behavior and the shape of returned data. Minor gaps (pagination, sorting) remain but are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both enums are documented in the schema, so the description's 'optional filtering' adds no syntax or format detail. Baseline 3 is appropriate when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all capability requests'), clearly distinguishing this bulk-listing operation from the singular pcc_get_request sibling. It does not name siblings explicitly, but 'all' signals the listing scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'with optional filtering' implies the tool is for browsing/scanning requests, but there is no explicit guidance on when to use this versus pcc_get_request or pcc_list_verdicts. Usage 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.
pcc_list_verdictsARead-onlyInspect
List recent capture verdicts, newest first. Optionally filter by jobId. Default limit is 50, capped at 200 server-side. Returns {verdicts, count, limit, jobId}.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | No | Filter by job ID. Omit for all verdicts across jobs. | |
| limit | No | Maximum rows returned (default 50, hard cap 200). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely useful behavior beyond the schema: default 50, hard server-side cap of 200, and newest-first ordering, which tells the agent how to interpret result size and recency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler, with the scoping filter and ordering stated before the limit/return details. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies the return shape ({verdicts, count, limit, jobId}) and the key size constraints, which is enough to call it correctly. It stops short of defining what a 'verdict' contains or how truncated results should be paged, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented there. The description restates the default/cap for limit rather than adding new semantics (e.g., whether limit can exceed the cap silently or errors), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List recent capture verdicts') plus ordering ('newest first'), so the agent knows exactly what it gets. It does not name or contrast any sibling tool, so it falls short of the 5 bar, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Optionally filter by jobId' implies the filtering use case and the schema repeats that omitting it returns all jobs. There is no explicit when-to-use/when-not, no mention of pagination strategy when the 200 cap is hit, and no named alternative for narrower queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_onboard_session_build_agentAInspect
Finalise a physical-operator onboarding session: registers the operator on PCC, mints a wallet, writes the SEO mirror, returns the publication payload (capabilities, operator_id, discovery_url). Idempotent — safe to retry inside the same session_id. Auth-required.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Session id returned by pcc_onboard_session_start. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and destructiveHint=false. The description adds genuinely useful context beyond that: idempotency scoped to the same session_id, retry safety, and an auth requirement. It is missing only the failure/partial-success semantics of a multi-effect operation (e.g. what happens if the wallet mint succeeds but the SEO mirror write fails).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, front-loaded action and effects before the idempotency and auth notes. Every clause carries information the agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by naming the return payload fields (capabilities, operator_id, discovery_url). Combined with the auth-required and idempotency notes, an agent has enough to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 100% schema coverage the baseline is 3, but the description adds meaning by tying the session_id to pcc_onboard_session_start and by scoping idempotency ('safe to retry inside the same session_id'), telling the agent what reuse of the same id does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('finalise') with the resource (physical-operator onboarding session) and enumerates the concrete effects: registers the operator on PCC, mints a wallet, writes the SEO mirror, and returns the publication payload. This clearly separates it from siblings like pcc_onboard_session_start, _status, _ingest_docs, and _scrape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Finalise' plus the session_id parameter documented as 'returned by pcc_onboard_session_start' makes it clear this is the terminal step of the onboarding sequence. It gives no explicit when-not-to-use or alternative guidance, but the position in the flow is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_onboard_session_ingest_docsAInspect
Queue documents (datasheets, SOPs, MOPs, certifications) for ingestion into a physical-operator onboarding session. Document URLs may be local:// for files dropped in the chat console or full https:// URLs. Auth-required.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Session id returned by pcc_onboard_session_start. | |
| doc_urls | Yes | URLs of documents to ingest. Mix of local:// and https:// is fine. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context that the operation is authentication-required and that URLs may be local:// or https://, but it does not disclose what happens after queueing, whether ingestion is asynchronous, or how errors are surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tight sentences plus an auth note. It front-loads the core purpose, then clarifies URL formats and the auth requirement without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a queueing/mutation tool with no output schema and only two required parameters, the description covers purpose, input URL forms, and auth. It still omits what the tool returns, whether queued documents are processed asynchronously, and how to check ingestion progress via the related status tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description reinforces the accepted URL forms but adds no new semantic detail beyond what the schema already provides, making 3 the appropriate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (queue/ingest) and resource (documents) scoped to a physical-operator onboarding session. Clear enough for an agent to know what the tool does, but it does not explicitly distinguish itself from sibling tools such as pcc_onboard_session_scrape or pcc_onboard_session_build_agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by tying ingestion to a physical-operator onboarding session and by requiring a session id. However, it does not state when to use this tool versus other onboarding-session tools, nor does it name alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_onboard_session_live_dataARead-onlyInspect
Full event log for a physical-operator onboarding session — feeds the chat console's activity sidebar. Supports incremental polling via ?since=. Returns the next cursor on every response. Auth-required.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Session id returned by pcc_onboard_session_start. | |
| since | No | Unix milliseconds cursor — returns only events with t > since. Use the 'cursor' field of the previous response for incremental polling. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true/destructiveHint=false, and the description adds genuinely useful behavior an agent needs: auth is required, every response carries the next cursor, and polling is supported via a since cursor. It stops short of describing event shape or rate limits, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with what the tool returns and who consumes it, with no filler. Could be tightened slightly but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the right thing by stating the return payload (event log plus a cursor per response) and the auth requirement. Event-level structure remains unspecified, but for a 2-param read tool that is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents both id and since, including the note to reuse the previous response's cursor. The description restates the cursor mechanism and adds the ?since=<unix-millis> format hint, but adds little meaning beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('full event log for a physical-operator onboarding session') and its consumer (the chat console activity sidebar), so the agent knows exactly what it retrieves. It is not confused with pcc_onboard_session_status or pcc_chat_history, but it never names a sibling to differentiate explicitly, which keeps it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'supports incremental polling via ?since' sentence implies the polling use case, and 'feeds the activity sidebar' implies context, but there is no explicit when-to-use guidance versus pcc_onboard_session_status or pcc_chat_history. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_onboard_session_scrapeAInspect
Scrape a URL into the running physical-operator onboarding session. Triggers a stealth fetch + structured extraction (machines, hours, services, certifications). Returns a small JSON summary; full extraction is appended to the session's running profile and visible via /live-data. Auth-required.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Session id returned by pcc_onboard_session_start. | |
| url | Yes | URL to scrape (e.g. company About page). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint=false, destructiveHint=false. The description goes beyond: it discloses the auth requirement, the stealth-fetch mechanism, the append-to-running-profile side effect, and the /live-data visibility path. That is solid behavioral context for a mutation-shaped tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences front-loaded with the action, then mechanism, then return profile. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description correctly notes the return shape ('small JSON summary') and that the full extraction persists elsewhere. Covers the key unknowns for this mutation tool; only missing explicit prerequisites beyond 'Auth-required.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both params are described there. The description only hints at the 'id' linkage ('running session') and example URL source ('company About page') without adding format/semantics beyond the schema. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scrape) and resource (URL/auth-required onboarding session). The parenthetical 'stealth fetch + structured extraction' clarifies what kind of scrape. Missing sibling disambiguation versus pcc_onboard_session_ingest_docs, which is a closely related session-data ingestion tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Fits within an obvious session-scraping family, but does not say when to use this vs. pcc_onboard_session_ingest_docs or pcc_onboard_session_build_agent. Usage is only implied by name and training context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_onboard_session_startAInspect
Start a new physical-operator onboarding session. Returns a session_id used by every subsequent /api/onboard/* call. Auth-required.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Optional company website. If supplied, the orchestrator scrapes it on the next /scrape call. | |
| name | Yes | Operator / company name (e.g. 'Oakland Titanium Mills'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false (a non-destructive write); the description goes beyond them by disclosing the auth requirement and the returned session_id that other calls depend on. It doesn't state the response shape or failure modes, but for a write tool with annotations, this adds real value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste; the action is front-loaded and the dependency/auth facts follow immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a session-initiation tool with no output schema, the description covers what an agent needs: the action, the returned session_id, and the auth requirement. Minor omission is any note on session lifetime or errors, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (name, url) are already fully documented in the schema, including the url scrape behavior. The description adds no additional parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Start a new physical-operator onboarding session.' The scope ('physical-operator onboarding') is specific enough to place it within the pcc_onboard_session_* family, though it doesn't name sibling tools like pcc_onboard_session_status to distinguish itself explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context: it returns a session_id 'used by every subsequent /api/onboard/* call,' which tells the agent this must be invoked first. There are no explicit exclusions or named alternatives, but the sequencing requirement is effectively conveyed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_onboard_session_statusARead-onlyInspect
Coarse status snapshot for a physical-operator onboarding session: current state, 0-100 progress, scraped_count, ingested_count, last_event, publication payload (if built). Cheap — designed for polling from the chat header. Auth-required.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Session id returned by pcc_onboard_session_start. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds that the endpoint is auth-required, cheap, and intended for header polling. It also discloses conditional 'publication payload (if built)' but does not detail rate limits or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It front-loads the purpose, lists return fields compactly because no output schema exists, and closes with concise usage and auth notes. Every element serves the caller.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-parameter status snapshot, the description supplies the missing output context (key return fields), auth requirement, and polling guidance. Nothing essential for invocation is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the only parameter, id, is fully documented by the schema as a session id from pcc_onboard_session_start. The description adds no parameter syntax or constraint beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource — a physical-operator onboarding session — and a specific operation, coarse status snapshot, so an agent can distinguish it from onboarding siblings like start, scrape, or build_agent. The listed return fields reinforce the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the intended use context: 'designed for polling from the chat header' and notes it is cheap and auth-required. It does not name alternatives or when-not conditions, but the polling context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc.op.capability.request_quoteARead-onlyInspect
Price a configured PCC capability (typed operation). Returns the itemized quote for the given capability type + selections. Pure calculation — no funds move and nothing is created. Maps to POST /api/build/price.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Capability type, e.g. 'fdm'. | |
| profileId | No | ||
| selections | Yes | Parameter selections. | |
| capabilityId | No |
TDQS
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 covered. The description adds domain-specific assurance ('no funds move and nothing is created') plus the backing endpoint POST /api/build/price, which goes beyond a bare restatement of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences with no padding; the core purpose leads and the endpoint mapping closes. The endpoint line is marginally decorative but not enough to be wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with a nested object and no output schema, the description covers the intent but leaves gaps: valid capability types, what profileId/capabilityId select, and what the quote response contains beyond 'itemized' are all unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: only `type` and `selections` are documented, and the description names exactly those two ('capability type + selections'). It adds no meaning for the undocumented `profileId` and `capabilityId`, nor any hint about the shape of the nested `selections` object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Price a configured PCC capability', and clarifies it returns an itemized quote for a given capability type plus selections. Clear on its own, but it never distinguishes itself from adjacent pricing siblings such as calculate_price or get_shipment_quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'a configured PCC capability' and 'given capability type + selections' hint that configuration must precede the call, but there is no explicit when-to-use, when-not-to-use, or named alternative among the many quote/price siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_oracle_statusARead-onlyInspect
Not served by the PCC gateway: GET /api/oracle/health returns 404 there. PCC's verification oracle runs as a separate service, and this route answers only where a deployment fronts it. Agents never call the oracle to settle a job: settlement is the gateway's step after pcc_job_complete. Where it is served, it returns the oracle's EIP-712 signing address and chain ID.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/destructiveHint=false, so safety is covered. The description adds non-obvious behavioral context: this endpoint 404s on the PCC gateway, runs as a separate service, and returns signing address plus chain ID. That is meaningful disclosure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each contributing distinct information (not-gateway-served, separate service, do-not-use-for-settlement, return payload). It is front-loaded with the surprising constraint, though the negative framing could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description correctly compensates by naming the return values (EIP-712 signing address, chain ID). For a zero-parameter read tool it covers the deployment caveat and the settlement anti-pattern. Marginally could have stated the positive use case, but it is complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, and the rule sets the baseline at 4 when there are no parameters to document. Nothing further is required or expected here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete resource and return payload: the oracle's EIP-712 signing address and chain ID. It is specific enough to distinguish this from pcc_oracle_verify and pcc_verifier_health, though the heavy 'what it is not' framing slightly muddies the primary purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-not-to-use guidance: agents never call the oracle to settle a job, and settlement belongs to the gateway after pcc_job_complete. It also warns the route only answers where a deployment fronts it (404 elsewhere). It stops short of stating the positive trigger condition for calling it, but the exclusion and alternative are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_oracle_verifyAInspect
Not served by the PCC gateway: POST /api/oracle/verify returns 404 there. PCC's verification oracle runs as a separate service, and this route answers only where a deployment fronts it. Agents never call it to settle a job: settlement is the gateway's step after pcc_job_complete. Where it is served, it checks that the evidence exists, its hash matches, tier requirements are met, there is no replay and the operator identity is valid, and it returns a signed EIP-712 attestation.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | PCC job ID | |
| kernelId | Yes | Operator kernel ID | |
| evidenceHash | Yes | SHA-256 hash of evidence bundle | |
| assuranceTier | No | Evidence tier (0=none, 1=basic, 2=full, 3=ZK) | |
| escrowAddress | Yes | Escrow contract address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the 404 behavior, that the oracle runs as a separate service, that this route only answers where a deployment fronts it, and the exact checks performed plus the EIP-712 attestation output. Annotations (readOnlyHint=false, destructiveHint=false) are consistent with a POST that produces an attestation, and the description adds meaningful context beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loading the 'not served by the gateway' caveat is the right call, but the first three sentences restate the same point (404, separate service, only served where fronted) with redundancy. The validation and attestation content is dense and useful, but the definition is longer than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a route that is largely unreachable in the primary deployment, the description covers the important context: availability, the separate-service model, what it validates, and its signed output. No output schema exists, so explaining the attestation return is appropriate. It could go one step further and name the in-deployment alternative for verification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters (jobId, kernelId, evidenceHash, assuranceTier, escrowAddress) are already documented with their tiers and semantics. The description adds no parameter-level detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource: it verifies evidence (hash match, tier, replay, operator identity) and returns a signed EIP-712 attestation. It also distinguishes itself from the settlement path (pcc_job_complete / pcc_job_settlement), which is the key sibling. The heavy 'not served here / 404' framing muddies the primary purpose, keeping it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when NOT to use it: agents never call it to settle a job, and it returns 404 on the PCC gateway; the alternative for settlement is named. It stops short of telling the agent what (if anything) it should call instead for verification in this deployment, e.g. pcc_oracle_status or verify_evidence_zk.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_orchestrator_list_templatesARead-onlyInspect
List the orchestrator templates the dashboard's chat console can drive. Each entry includes slug, display_name, description, produces_kind, capability_class (physical | digital), greeting, and api_base (the route prefix that serves the six session-driver routes for that template). Public — no auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds value beyond them: it discloses that no authentication is required and that each api_base is the route prefix serving six session-driver routes, which is meaningful behavioral context an agent could not derive from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose and followed by the returned fields. The field enumeration is dense but every item earns its place given there is no output schema. Slightly list-heavy but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by enumerating the entry fields (slug, display_name, description, produces_kind, capability_class, greeting, api_base) plus the auth posture. The main residual gap is the absence of any contrast with pcc_orchestrator_match_capabilities, but for a simple list tool this is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero input parameters, so the description cannot document any; per the baseline this scores 4. It does not waste words on nonexistent inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: listing orchestrator templates that the dashboard's chat console can drive. An agent can identify the object of the operation without opening the schema. It does not explicitly differentiate itself from the similarly named sibling pcc_orchestrator_match_capabilities, which keeps it out of 5 territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'the dashboard's chat console can drive' implies the context of use, and 'Public — no auth required' tells the agent it is safe to call without credentials. However, there is no explicit when-to-use/when-not guidance and no routing to an alternative sibling, so usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_orchestrator_match_capabilitiesAInspect
Heuristic template matcher. Pass a free-text description of what you want to onboard (e.g. 'I run a CNC milling shop' or 'I have a Postgres database with a GraphQL endpoint') and the matcher returns all templates ranked by keyword score with a 'reason' string per match. Public — no auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| input | Yes | Free-text description of what you want to onboard. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds useful non-schema context: it is heuristic/keyword-based, returns a ranked list with a per-match 'reason' string, and is public with no auth required. It does not explain the readOnlyHint=false annotation, which is notable for what reads as a pure query/matching operation — but it never explicitly claims a non-mutating read, so this is a gap rather than a contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with what the tool is, followed by how to call it and the auth note. No filler, though the example list is slightly long relative to the rest.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, no-output-schema tool, the description covers behavior (heuristic ranking), input shape, return shape (matched templates + reason strings), and access requirements. The only omission is guidance relative to the sibling listing/suggestion/matching tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 100% schema coverage the schema already names and documents 'input'. The description goes beyond it by illustrating the expected free-text phrasing ('I run a CNC milling shop', 'I have a Postgres database with a GraphQL endpoint'), which meaningfully guides how to populate the single argument.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('template matcher' that returns templates ranked by keyword score) and clarifies the input contract with concrete examples. It is distinguishable from list_templates/suggest_csd_templates in practice, though it never explicitly names those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage ('pass a free-text description of what you want to onboard') with two realistic example inputs, which gives helpful context. However it never says when to prefer this over pcc_orchestrator_list_templates, suggest_csd_templates, or search_capabilities, so the routing decision is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_protocol_feeARead-onlyInspect
Get the current protocol fee rate (2.35%, immutable) and fee recipient address. The fee is hardcoded in the PCCProtocol smart contract — no admin, no governance, no upgrade can change it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely useful context beyond that: the fee is hardcoded, immutable, and unchangeable by admin, governance, or upgrade, which tells the agent the returned value is stable and requires no auth or write path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with what is returned and followed by the immutability guarantee. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return burden and does so by naming both return values (fee rate and recipient address). It is complete for invocation, though it leaves the sibling-selection question unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; schema coverage is also 100%. There is no parameter semantics to explain, and the description correctly adds nothing extraneous on that axis.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (protocol fee rate plus fee recipient address), and even pins the value at 2.35% with its immutability property. However, it does not distinguish itself from near-identical siblings like protocol_fee, protocol_escrow_fees, and protocol_token_fees, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives, despite siblings such as protocol_fee, protocol_escrow_fees, protocol_token_fees, protocol_state, and get_protocol that overlap in topic. The agent must infer selection from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_publish_requestBInspect
Publish all pending capability nodes in a request as bounties. Each node becomes a bidding opportunity for operators. Returns the list of created bounty IDs linked to each capability node.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | Request ID to publish |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this is a non-read-only (write) but non-destructive operation, matching the 'publish... as bounties' wording. The description usefully discloses the side effect (creating bidding opportunities) and the return value, but says nothing about required permissions, idempotency, or whether already-published nodes are re-published.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the core action front-loaded and no filler. The middle sentence explaining the bidding opportunity is mildly explanatory but still earns its place by describing the side effect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation tool with no output schema, the description covers the action, side effect, and return shape adequately. It lacks state prerequisites or error/edge-case guidance, but nothing critical to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter requestId is fully documented in the schema. The description adds no format, source, or lookup guidance beyond the schema's 'Request ID to publish,' so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Publish all pending capability nodes in a request as bounties') and clarifies the downstream effect (nodes become bidding opportunities). It is clearly distinguishable from read/sibling tools, though it never explicitly contrasts itself with near-neighbors like pcc_decompose_request or convert_bounty_to_pool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use, when-not-to-use, or named alternative guidance. The precondition (pending capability nodes must exist) is only implied by the verb 'publish pending,' and no routing advice to siblings is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_relay_generic_tool_callAInspect
Relay a tool call to any kernel's device executor via the generic relay (not OT-2 specific). Works with any device type. Safe tools (read/safe_control) don't need a scope. Scoped write tools require an active execution scope. Returns a call ID — poll pcc_get_tool_result for the response.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Tool arguments | |
| scopeId | No | Execution scope ID (required for write operations) | |
| kernelId | Yes | Target kernel ID | |
| toolName | Yes | Tool name from the device manifest |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the mutation/safety profile is mostly covered structurally. The description still adds real behavioral context the annotations cannot convey: the scope prerequisite for writes and the asynchronous call-ID/poll pattern.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, each carrying distinct information (scope distinction, device generality, scope rules, return/poll pattern), with the core purpose front-loaded and zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic relay with an opaque nested args object and no output schema, the description covers the essential call lifecycle: scope requirement, async return, and where to fetch the result. Minor gaps remain, e.g. how to discover valid toolName values beyond the schema's 'device manifest' note.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the scopeId schema text already states 'required for write operations', so the description's scope remark largely duplicates structured data. The args and kernelId parameters get no added semantic detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (relay) plus resource (tool call to a kernel's device executor), and it explicitly demarcates scope with '(not OT-2 specific)' and 'works with any device type', which routes the agent away from the OT-2-specific sibling pcc_relay_tool_call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear conditional guidance: safe tools need no scope, scoped write tools require an active execution scope. It also names the follow-up tool (pcc_get_tool_result) for retrieving the response. It stops short of an explicit when-not-to-use clause beyond the OT-2 distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_relay_tool_callBInspect
Relay a tool call to a device executor. The brain (LLM) posts tool calls here; the executor (on the device) polls for them and executes locally. Used for the brain/executor split architecture.
| Name | Required | Description | Default |
|---|---|---|---|
| scopeId | No | Execution scope ID (required for SCOPED WRITE tools) | |
| kernelId | Yes | Kernel ID of the target device | |
| toolArgs | Yes | Arguments for the tool call | |
| toolName | Yes | Tool to execute (e.g. 'ot2_health', 'ot2_run_create') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the safety profile is already covered. The description adds genuinely useful context that the call is asynchronous relayed to a polling executor, but it omits how the caller retrieves results (e.g. pcc_get_tool_result) or what happens on failure, which matters for a relay tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action in the first sentence, followed by two short clarifying sentences. The final sentence about the brain/executor split is slightly redundant given the second sentence already conveys it, but the text is tight overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description never tells the agent how the relayed call's result comes back or that a separate retrieval step is needed. For an async relay in a large tool surface, that is a meaningful gap even though the core mechanics are explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so kernelId, toolName, toolArgs and scopeId are all documented in the schema. The description adds no parameter-level detail beyond that, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Relay a tool call to a device executor,' which is concrete and actionable. However, it never distinguishes itself from the near-identical sibling pcc_relay_generic_tool_call, so an agent cannot tell which relay to pick without guessing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the architectural context (brain posts, executor polls and runs locally), which implies when the tool is relevant, but it gives no explicit when-to-use or when-not-to-use guidance and does not name the alternative relay tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_reportAInspect
Report a bug, friction, or dead-end you hit while using PCC. Call this the moment you get stuck and cannot recover: a 5xx (its response carries a report_hint with pre-filled fields), a 4xx you cannot fix from its message, the same step failing twice, or a misleading tool/description. PUBLIC — works before you provision an API key (cold agents are exactly who this is for). Persisted durably and reviewed by the PCC team. Report each distinct failure ONCE; never include an API key, token, or wallet secret. Rate-limited per IP.
| Name | Required | Description | Default |
|---|---|---|---|
| logs | No | Optional but valuable: your last few steps as SUMMARIES (never full request/response bodies) — the sequence that led to the failure. Secrets are never allowed in a note. | |
| type | No | bug = something is broken/wrong; friction = it works but was confusing/harder than it should be; idea = a suggestion or missing capability. Defaults to bug. | |
| detail | No | Multi-line context: the full error body, what you tried, what you expected. Optional but recommended. | |
| method | No | The HTTP method you used. From `report_hint.send.method`. Example: 'POST'. | |
| status | No | The HTTP status you got. From `report_hint.send.status`. Example: 500. | |
| agentId | No | Which model/agent you are. Example: 'claude', 'gpt-4o', 'gemini'. Optional. | |
| summary | Yes | 1-line description of what you were doing and what went wrong. Example: 'POST /api/build/contract returned 500 with no hint about the missing field.' | |
| traceId | No | Your journey ID — returned by provision_api_key and on every response as `x-pcc-trace-id` (also in a 5xx `report_hint.traceId`). Lets PCC replay your full run. | |
| endpoint | No | The route you were on when you got stuck. From a 5xx `report_hint.send.endpoint`. Example: '/api/build/contract'. | |
| severity | No | How badly this blocked you. Optional. | |
| errorCode | No | The machine error code from the response body, if any. From `report_hint.send.errorCode`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false, so the description carries the rest and does so richly: it is PUBLIC and works before API-key provisioning, reports are persisted durably and reviewed by the PCC team, and the endpoint is rate-limited per IP. It also points to the report_hint payload that pre-fills fields from a 5xx.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then the trigger conditions, then operational constraints in a compact block with zero filler. It is dense — a few clauses could be split for readability — but every sentence carries load.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter write tool with no output schema, the description covers when to use it, the security constraints, dedupe behavior, and rate limiting. It does not say what the call returns (e.g. a report ID) or confirm the minimum viable submission, which is a minor gap given no output schema exists to explain the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description adds real value: it explains that endpoint/method/status/errorCode come from the `report_hint.send.*` fields of a 5xx or from `x-pcc-trace-id` for traceId, which the schema alone does not tie together. The secrets prohibition also constrains the logs/note parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Report a bug, friction, or dead-end') and clearly scopes it to failures encountered while using PCC. It does not explicitly differentiate itself from nearby siblings like report_anomaly, report_protocol_failure, submit_feedback, or send_diagnostics, so it falls short of the top tier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Enumerates concrete trigger conditions — a 5xx, an unfixable 4xx, the same failure twice, or a misleading tool/description — plus a dedupe rule ('report each distinct failure ONCE') and a prohibition (never include secrets). An agent knows exactly when to call this and when to stop.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_report_attemptAInspect
Report one phase of an onboarding attempt, success or failure (attempt reporting contract v1). Send one report when each runbook phase ends, and a final report with phase "session" (with the phases roll-up), also when you stop early (outcome abandoned or budget_stop). Generate sessionId (UUID v4) once per attempt and increment seq with every report; a retried report with the same sessionId and seq is collapsed. Never guess: send null for what you do not know (tokens: source "unknown"). Redact keys, tokens, emails and wallet secrets before sending. Always include summary: contract v1 makes it optional, but until the gateway's attempt support lands it is the only field kept, and today's server refuses a report without it. The schema is contract v1: an unknown phase, outcome or harness name is accepted (the server stores it as other or unknown, with the raw value as a label), and budget-stop is a spelling of budget_stop. Never send a transcript; consent.transcript stays false until the operator decides. Unauthenticated.
| Name | Required | Description | Default |
|---|---|---|---|
| env | No | ||
| ids | No | Only the ids known so far: each at most 200 characters of [A-Za-z0-9:._/-], or null | |
| seq | Yes | Per-session report counter | |
| kind | Yes | ||
| logs | No | The phase's step timeline, summaries only | |
| pack | No | ||
| phase | Yes | ||
| detail | No | ||
| device | No | ||
| phases | No | Only on phase "session": the roll-up | |
| tokens | No | Never guess: send null with source "unknown" | |
| consent | No | ||
| harness | No | ||
| outcome | Yes | ||
| summary | No | One line, e.g. "register: failed, POST /api/kernels 400" | |
| traceId | No | x-pcc-trace-id of the last PCC call | |
| contract | No | ||
| proposal | No | One improvement idea | |
| sessionId | Yes | UUID v4, generated once at the start of the attempt | |
| durationMs | No | The phase's wall time; on session, the whole attempt |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and destructiveHint=false; the description goes well beyond by disclosing idempotent collapse of retried reports, the 'never guess / send null with source "unknown"' rule, mandatory redaction of keys/tokens/emails/wallet secrets, the currently-mandatory summary field, and that the endpoint is unauthenticated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but mostly front-loaded: the purpose and cadence come first, followed by mechanics and constraints. Sentences are long and occasionally cram multiple rules, but nearly every clause carries actionable contract detail rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 20-param, 5-required write tool with no output schema, the description covers the contract semantics, idempotency, submission cadence, redaction, and auth. It does not describe the response or failure modes of the call itself, which is the main remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 50% schema description coverage and 20 params, the description compensates substantially: how to generate sessionId (UUID v4, once per attempt), how seq increments, that phases roll-up belongs only on phase 'session', and that unknown phase/outcome/harness values are stored as other/unknown. It still leaves fields like env, ids, logs, pack, device, and proposal unexplained beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Report one phase of an onboarding attempt, success or failure,' naming the contract version. It is scoped clearly enough to separate from generic siblings, though it never explicitly contrasts itself with the near-named sibling pcc_report, leaving that differentiation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit trigger conditions: 'Send one report when each runbook phase ends, and a final report with phase "session"... also when you stop early (outcome abandoned or budget_stop).' It also states the idempotency rule (same sessionId and seq collapses) that governs whether to resend.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_revoke_scopeAInspect
Revoke an execution scope immediately (emergency stop). All pending tool calls under this scope are rejected. The kernel enters a stopped state. A new scope must be created to resume.
| Name | Required | Description | Default |
|---|---|---|---|
| scopeId | Yes | Scope ID to revoke |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses the concrete consequences: pending tool calls are rejected and the kernel enters a stopped state. It also explains the recovery requirement, which is the operationally important behavioral detail. It does not address authorization requirements or whether the revoke itself is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the action and its emergency framing, then consequences, then recovery. There is no filler and every sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation tool with no output schema, the description covers action, effect on in-flight work, resulting state, and recovery. Authorization and error behavior are unstated, but annotations and schema cover most remaining ground.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage, so the schema already carries the semantics. The description adds no format or constraint detail about scopeId, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Revoke an execution scope') and sharpens it with the parenthetical 'emergency stop', making the intent unambiguous. It is clearly distinguishable from siblings like pcc_create_scope or pcc_scope_audit without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It establishes the usage context as an emergency stop and points to the recovery path ('a new scope must be created to resume'), effectively routing the agent to pcc_create_scope. It stops short of an explicit when-not condition (e.g., prefer pause for non-emergency stops).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_schedule_evaluateAInspect
Evaluate a published RateSchedule at a moment, returning the effective bps. Inputs: scheduleHash + now (unix seconds) + optional jobValueCents (piecewise-value) + optional jobsPerDay (adoption-indexed). Returns {scheduleHash, bps, segmentKind, segmentIndex}. segmentIndex=-1 + bps=0 when no segment covers the moment (silent gap).
| Name | Required | Description | Default |
|---|---|---|---|
| now | Yes | Unix seconds at evaluation moment | |
| jobsPerDay | No | Rolling 24h job count (adoption-indexed segments) | |
| scheduleHash | Yes | 0x + 64 hex schedule hash | |
| jobValueCents | No | Job value in cents (piecewise-value segments) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=false and destructiveHint=false, the annotations only partially frame behavior; the description usefully adds the silent-gap semantics (segmentIndex=-1 + bps=0 when no segment covers the moment), which an agent would otherwise misread as an error. It does not explain why an evaluation is flagged non-read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and return value, then inputs, then the gap edge case; every clause carries information. The telegraphic parentheticals are dense but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by naming the returned fields and the sentinel gap case. It is a bit terse on what 'bps' resolves to and on any prerequisite checks, but it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3, but the description groups the options by meaning ('jobValueCents (piecewise-value)' and 'jobsPerDay (adoption-indexed)'), telling the agent when each optional input is relevant — value beyond the per-field schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Evaluate a published RateSchedule at a moment') and names the concrete return ('the effective bps'), which distinguishes it from siblings pcc_schedule_get and pcc_schedule_publish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the word 'published' hints the schedule must first exist via pcc_schedule_publish, and the optional piecewise/adoption parameters imply which schedule kinds need them. There is no explicit when-to-use-vs-alternative guidance or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_schedule_getARead-onlyInspect
Fetch a published RateSchedule by its content hash. Returns {schedule, publishedBy} with segments re-validated via Zod, or 404 if not found.
| Name | Required | Description | Default |
|---|---|---|---|
| scheduleHash | Yes | 0x + 64 hex sha256 of the schedule |
TDQS
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 covered. The description adds genuinely useful behavior beyond that: the return shape {schedule, publishedBy}, Zod re-validation of segments, and a 404 miss case.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the action first, then the return/error contract. No filler, nothing repeated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read with no output schema, the description covers the essential contract: what comes back, that it is re-validated, and the not-found case. It does not mention caching, pagination, or authorization, but none are strongly implied for a hash-keyed lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already documents scheduleHash as '0x + 64 hex sha256'. The description only echoes 'content hash' without adding format or validation detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Fetch) and resource (a published RateSchedule) plus the lookup key (content hash), so an agent can tell it retrieves rather than mutates or evaluates. It does not explicitly differentiate itself from the sibling pcc_schedule_publish / pcc_schedule_evaluate tools, but 'published' and the read framing make the role clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus pcc_schedule_evaluate or pcc_schedule_publish, and no prerequisites. The only usage signal is implicit in 'by its content hash', which is a mechanical detail rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_schedule_publishAInspect
Publish a sealed off-chain RateSchedule. Computes scheduleHash server-side via the canonical sha256-over-canonical-JSON algorithm (matching the on-chain RateScheduleRegistry.publish() invariant). Idempotent: re-publishing the same content returns alreadyPublished:true. Returns {scheduleHash, alreadyPublished}.
| Name | Required | Description | Default |
|---|---|---|---|
| schedule | Yes | RateSchedule body — version, segments (constant/step/linear-decay/exponential-decay/adoption-indexed/piecewise-value), and optional notes | |
| publishedBy | Yes | Address that publishes (0x + 40 hex chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only tell the agent this is non-read-only and non-destructive. The description goes well beyond that: it specifies server-side hash computation via a canonical sha256 algorithm matching the on-chain registry invariant, declares idempotent behavior, and states the exact return shape. With no output schema present, this return disclosure is especially valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: what it does, why the hash is trustworthy, and what happens on re-publish plus return keys. The core action is front-loaded and every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter nested-object tool with no output schema, the description covers the key behavioral facts (server-side hashing, idempotency, return values). It leaves some terms ("sealed", segment semantics) to the schema, which is a minor gap but not blocking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the nested schedule object (version, segments, notes) and publishedBy already documented in the schema. The description adds no per-parameter syntax or format details beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ("Publish a sealed off-chain RateSchedule") and clarifies that the hash is computed server-side. An agent can distinguish it from read-oriented siblings like pcc_schedule_get or pcc_schedule_evaluate, though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by "publish" and the idempotency note (re-publishing returns alreadyPublished:true), which helps an agent understand repeat calls. However, there is no explicit when-to-use/when-not guidance or routing against sibling tools such as pcc_schedule_get or publish_protocol.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_scope_auditBRead-onlyInspect
Get the audit trail for an execution scope — every tool call made under this scope, with validation results, timestamps, and outcomes.
| Name | Required | Description | Default |
|---|---|---|---|
| scopeId | Yes | Scope ID to audit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful content about what the trail contains, but says nothing about volume, pagination, retention, or whether scopeId must be active/existing — gaps that matter for an audit-log tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the resource and payload contents come immediately after the verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned fields (validation results, timestamps, outcomes), which is exactly what the agent lacks elsewhere. It falls short only on practicalities like result volume or pagination for what may be a long audit trail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is fully documented in the schema. The description's phrase 'under this scope' only restates the parameter's role, adding no format, ownership, or validity detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the audit trail for an execution scope') and enumerates the payload contents (tool calls, validation results, timestamps, outcomes). It is clear, but it makes no effort to distinguish itself from nearby read tools such as pcc_list_verdicts or pcc_list_requests.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternative. The word 'audit' hints at a post-hoc inspection context, but the agent must infer when this tool is the right choice versus other scope-related reads.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_submit_paid_jobAInspect
Fast-track paid job: one call from DHT discovery to funded escrow + active scope. Auto-negotiates, quotes, creates escrow with milestones, creates execution scope. Returns jobId, scopeId, escrowId, quote with pricing adjustments, contract terms. For testnet, escrow is mock-funded automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| kernelId | Yes | Target kernel ID (from DHT query) | |
| parameters | No | Job parameters (protocolType, volume, materials, etc.) | |
| userAgentId | Yes | Your agent/user ID | |
| paymentMethod | No | Payment method (testnet-mock for demo) | |
| capabilityType | Yes | e.g. 'liquid-handler', 'fdm', 'cnc-3axis' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish mutation-without-destruction (readOnlyHint=false, destructiveHint=false), and the description adds real behavioral context beyond them: it auto-negotiates, auto-quotes, auto-creates milestones/scope, and mock-funds escrow on testnet. It stops short of stating auth requirements or failure/rollback behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with no filler: purpose first, then side effects, then outputs, then the testnet caveat. Slightly overloaded but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-step orchestration tool with no output schema, the description compensates by enumerating return values (jobId, scopeId, escrowId, quote, contract terms). The nested 'parameters' object remains vague, but overall an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the five parameters are already documented in the schema. The description's only added parameter meaning is that testnet escrow is mock-funded, which loosely maps to the paymentMethod enum; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific composite verb-set ('fast-track paid job') and enumerates exactly what the single call accomplishes: negotiation, quote, escrow with milestones, and execution scope. It is clearly distinguishable from the step-by-step siblings (pcc_publish_request, fund_escrow, pcc_create_scope), though it never names one explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Fast-track' and 'one call from DHT discovery to funded escrow' imply the when: use this instead of chaining the individual escrow/scope/quote tools. However no explicit when-not, no prerequisites, and no named alternative are given, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_submit_requestBInspect
Submit a high-level capability request in natural language. The system automatically decomposes it into a capability DAG with dependencies, timelines, and budget allocation across fabrication, design, assembly, electronics, software, logistics, and verification nodes. Returns the request with full decomposed DAG. Example: 'Build a cute animatronic plush desk robot with servo-driven animations'.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Short title for the request | |
| budget | No | Total budget in USDC (default: 1000) | |
| urgency | No | Urgency level — affects cost multipliers (emergency: 2x cost, 0.5x time) | |
| currency | No | Currency (default: USDC) | |
| deadline | No | ISO 8601 deadline (default: 7 days from now) | |
| description | Yes | Full natural language description of what needs to be built or done | |
| requesterEmail | No | Requester email for notifications | |
| requesterWallet | No | Requester wallet address for payments |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark it as a non-read-only, non-destructive mutation, and the description usefully adds that the system automatically decomposes the input and returns the request with the full DAG. It stops short of stating side effects, whether the request is persisted/published, or any auth/payment requirements, leaving meaningful behavioral gaps for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused sentences plus a concrete example. The decomposition behavior is front-loaded and the example ('animatronic plush desk robot') efficiently conveys the expected input style. Little waste, though the node list is slightly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation tool with no output schema, the description adequately explains what happens (decomposition into a DAG) and what is returned (the request with its DAG). The main missing piece is how this relates to sibling request-lifecycle tools, but the core call semantics are covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 8 parameters (budget, urgency, currency, deadline, requesterEmail, requesterWallet, etc.) are already documented in the schema. The description only reinforces that the description field is natural language and provides an example, which is helpful but marginal. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Submit') and resource ('high-level capability request in natural language'), and goes further to explain the automatic decomposition into a capability DAG. However, it never differentiates itself from closely related siblings like pcc_decompose_request or pcc_publish_request, so the agent must infer which entry point to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance, prerequisites, or alternatives are given. With siblings such as pcc_decompose_request, pcc_publish_request, pcc_update_request, and pcc.op.capability.request_quote present, the absence of routing guidance is a real gap – the agent cannot tell whether this is the initial submission step or a downstream one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_training_manifest_getARead-onlyInspect
Fetch the TrainingManifest for a model IP. Returns the parsed datasets array + manifestHash + createdAt, or 404 if no manifest has been set.
| Name | Required | Description | Default |
|---|---|---|---|
| modelIpId | Yes | Story IP Asset ID for the model |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds useful non-obvious behavior: the 404 failure mode when no manifest exists. It does not cover auth requirements beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence front-loads the verb+resource, then enumerates the return payload and the 404 branch. Every clause earns its place with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-param read tool with annotations and no output schema, the description covers purpose, return shape, and the key failure mode. It is largely complete, though it omits auth/pagination context and sibling routing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (modelIpId is documented as 'Story IP Asset ID for the model'), so the schema carries the parameter burden. The description adds no syntax or format detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Fetch') and resource ('TrainingManifest for a model IP'), which is clear. It does not explicitly differentiate from its obvious sibling pcc_training_manifest_set, though the get/set pairing is fairly self-evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (retrieve a manifest that has been set) but there is no explicit when-to-use guidance or naming of alternatives. The pairing with pcc_training_manifest_set is left for the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_training_manifest_setAInspect
Set (insert-or-replace) the TrainingManifest for a model IP — the dataset weight map the LicensingEngine walks when distributing payouts to a 'model-author' entry in a CompositionManifest. Dataset weightBps must sum to ≤ 10000 (gateway accepts partial mixes; on-chain enforces exact 10000). Returns {modelIpId, manifestHash}.
| Name | Required | Description | Default |
|---|---|---|---|
| modelIpId | Yes | Story IP Asset ID for the model | |
| baseModelIpId | No | Optional parent ModelNFT IP if this was fine-tuned | |
| datasetWeights | Yes | DatasetIP entries with weightBps (sum ≤ 10000) | |
| methodologyHash | No | Optional 0x + 64 hex reproducibility hash |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the insert-or-replace semantics, the ≤10000 weightBps invariant, the critical gateway-vs-on-chain enforcement difference (partial mixes accepted here, exact 10000 enforced on-chain), and the return shape. Annotations only say it is a non-read-only, non-destructive write, so this text carries real operational weight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with the action and the invariant, then the return value. Slightly jargon-heavy ('LicensingEngine', 'CompositionManifest') but every clause earns its place; nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param write tool with no output schema, it covers mutation semantics, the key domain invariant, enforcement divergence, and the return fields {modelIpId, manifestHash}. The one gap is failure behavior when the gateway rejects or when the sum is invalid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters, their optionality, and the weightBps range. The description reinforces the summation constraint in prose but adds no new parameter-level detail (e.g., what happens if the sum exceeds 10000). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Set (insert-or-replace) the TrainingManifest for a model IP') and explains the domain role: it is the dataset weight map the LicensingEngine walks when distributing payouts. The paired sibling pcc_training_manifest_get makes the get/set distinction explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when you'd need it (to define payout distribution for a model-author entry), but gives no explicit when-to-use framing or exclusions. It never names pcc_training_manifest_get or warns about overwriting an existing manifest, which is the main alternative/risk an agent must weigh.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_trilobio_build_configAInspect
Generate a complete KERNEL_CONFIG JSON for a Trilobio (tcode-api) fleet controller. Wraps buildTrilobioConfig() from the @pcc/trilobio npm package. Returns a TrilobioKernelConfig with sensible defaults (pollIntervalMs=3000, maxScriptTimeoutSec=3600, allowArbitraryScripts=false). The result can be passed to pcc-node start via the KERNEL_CONFIG env var, or handed to setup_generate_config / setup_register_device for direct API-driven registration. Note: this is a TypeScript package helper (no HTTP call). For programmatic use, import { buildTrilobioConfig } from "@pcc/trilobio".
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Fleet-controller URL on the LAN (host[:port], no trailing slash, no path) — e.g. http://192.168.1.50 | |
| apiKey | No | Trilobio fleet-controller API key (from the trilobot admin UI). Either apiKey OR username+password is required unless mockMode=true. | |
| deviceId | No | Logical device ID within the kernel (default: trilobio-fleet-01) | |
| kernelId | No | Kernel ID this device belongs to (auto-generated as kernel_trilobio_<timestamp> if omitted) | |
| mockMode | No | Bypass real HTTP and simulate runs. Use for CI / floor demos. Default: false. | |
| password | No | Fleet-controller account password (basic-auth mode only) | |
| username | No | Fleet-controller account username (basic-auth mode only) | |
| pollIntervalMs | No | Poll interval in ms for run status (range 500-60000). Default: 3000. | |
| tcodeApiVersion | No | Pinned tcode-api version on the fleet controller. Format: 'latest' or semver (e.g. 1.25.1). Default: latest. Surfaces in evidence bundles for reproducibility. | |
| mockRunDurationMs | No | Mock-mode simulated run duration in ms. Default: 2000. | |
| maxScriptTimeoutSec | No | Maximum allowed wall-clock seconds for a single tcode script (range 30-86400). Default: 3600. | |
| allowArbitraryScripts | No | Permit customer-supplied tcode-api Python scripts (true) or only curated protocol IDs (false). Default: false. Set true only for trusted-counterparty deployments. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=false and destructiveHint=false already set, the description adds meaningful behavioral context beyond the annotations: it is a pure TypeScript package helper that makes no HTTP call, and it discloses the default values it emits (pollIntervalMs, maxScriptTimeoutSec, allowArbitraryScripts). That goes beyond what the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose in the first sentence, followed by return shape, downstream usage, and the programmatic-import note. The import snippet is slightly gratuitous but not wasteful overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by describing the returned TrilobioKernelConfig and its defaults. It also covers the auth alternatives and mock mode via the schema. Complete enough for an agent to call it correctly, with only minor room to state when to prefer it over setup_generate_config.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter including required-vs-optional auth rules and defaults is already documented in the schema. The description restates a few defaults but adds no syntax or format detail the schema lacks. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Generate a complete KERNEL_CONFIG JSON for a Trilobio (tcode-api) fleet controller', and names the underlying function buildTrilobioConfig(). This clearly distinguishes it from siblings like pcc_trilobio_validate_options and pcc_trilobio_validate_script, which validate rather than build.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains downstream usage precisely: pass the result to `pcc-node start` via KERNEL_CONFIG, or hand it to setup_generate_config / setup_register_device. It also clarifies this is a package helper with no HTTP call. It lacks an explicit 'use this when...' vs alternative construct, but the surrounding context makes intent clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_trilobio_capability_templateARead-onlyInspect
Return the TRILOBIO_CAPABILITY constant from @pcc/trilobio — a default capability template for a Trilobio fleet controller. Pass to POST /api/capabilities to publish a baseline liquid-handling capability for a kernel hosting a trilobot. Operators can extend the materials and capabilities arrays to advertise instrument-specific features (custom labware libraries, sample types). Notable: includes tcode-script-execution as an advertised capability, which is unique to Trilobio — operators who set allowArbitraryScripts: true can accept jobs that ship a full tcode-api Python script as the protocol payload. Note: TypeScript package helper (no HTTP call); for programmatic use, import { TRILOBIO_CAPABILITY } from "@pcc/trilobio".
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 beyond that by clarifying this is a TypeScript package helper with no HTTP call, and by disclosing the notable payload content (tcode-script-execution plus the allowArbitraryScripts gate). It stops short of describing the shape of the returned constant in detail, which the absence of an output schema leaves partially unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and resource, then layers usage and caveats. Every sentence carries meaning, though the tcode-script-execution and allowArbitraryScripts detail is somewhat extended for a constant-returning helper.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter helper with no output schema, the description supplies what is needed: what is returned, how to use it, and a key caveat about the advertised tcode-script-execution capability. It is largely complete, with only the exact structure of the returned constant left to the reader.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly adds nothing about inputs because there are none, and instead spends its budget on return-value meaning, which is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Return the TRILOBIO_CAPABILITY constant from @pcc/trilobio — a default capability template for a Trilobio fleet controller.' This clearly distinguishes it from adjacent siblings like pcc_trilobio_build_config or pcc_trilobio_validate_options, which transform or validate rather than return a template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the intended downstream use ('Pass to POST /api/capabilities to publish a baseline liquid-handling capability') and the programmatic path ('import { TRILOBIO_CAPABILITY }'). It gives clear usage context but never names a sibling alternative or a condition for choosing a different tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_trilobio_validate_optionsAInspect
Sanity-check operator-supplied Trilobio options before generating a KERNEL_CONFIG. Wraps validateTrilobioOptions() from @pcc/trilobio. Catches the common mistakes (malformed URL, missing creds, out-of-range timeouts, invalid tcodeApiVersion semver) before they hit the gateway or the device. Returns { valid: boolean, errors: string[], warnings?: string[] }. Note: this is a TypeScript package helper (no HTTP call); for programmatic use, import { validateTrilobioOptions } from "@pcc/trilobio".
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Fleet-controller URL | |
| apiKey | No | Fleet-controller API key | |
| deviceId | No | ||
| kernelId | No | ||
| mockMode | No | ||
| password | No | Basic-auth password | |
| username | No | Basic-auth username | |
| pollIntervalMs | No | ||
| tcodeApiVersion | No | 'latest' or semver string | |
| mockRunDurationMs | No | ||
| maxScriptTimeoutSec | No | ||
| allowArbitraryScripts | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavior beyond the annotations: the fact it wraps a TypeScript helper with no HTTP call, the exact mistake classes it detects, and the return shape. This usefully clarifies a pure-validation tool whose readOnlyHint=false is otherwise ambiguous. It doesn't mention side effects or performance, keeping it at 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and error coverage, then adds the return shape and import note. Dense but all sentences carry information; the programmatic-import note is slightly tangential for an MCP caller but still earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-param validator with no output schema, the description supplies the return shape and the failure semantics an agent needs. The individual parameter semantics gap (58% undocumented) is the only notable shortfall.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 42% across 12 params, so the description must compensate. It partially does by naming validated categories (URL, creds, timeouts, semver) that map to url, apiKey/password, pollIntervalMs/maxScriptTimeoutSec, and tcodeApiVersion, but it never explains the remaining params (deviceId, kernelId, mockMode, allowArbitraryScripts).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource (validate Trilobio options) with clear scope and timing ('before generating a KERNEL_CONFIG'). Easily distinguished from siblings like pcc_trilobio_validate_script and pcc_trilobio_build_config.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States when to run it (pre-flight, before options hit the gateway or device), which implies its place relative to build_config. It does not explicitly name an alternative tool or state when NOT to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_trilobio_validate_scriptAInspect
Quick lint of a tcode-api Python script before submission to a Trilobio fleet controller. Wraps validateTcodeScript() from @pcc/trilobio. Surface check only — NOT a sandbox or sanitizer. Looks for: imports of tcode_api (presence required), obviously dangerous statements (subprocess, os.system, eval, exec, import, socket, urllib, requests, file writes), empty scripts, and missing top-level tcode commands. Returns { valid: boolean, errors: string[], warnings?: string[] }. Operators with allowArbitraryScripts=true should treat results as a hint — the fleet controller is the source of truth on safety. Note: TypeScript package helper (no HTTP call); for programmatic use, import { validateTcodeScript } from "@pcc/trilobio".
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Full Python source of the tcode-api script to lint |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond annotations: the exact classes of issues checked, that it makes no HTTP call, the return shape, and its authority limits versus the fleet controller. Minor tension with readOnlyHint=false given it claims to be a pure helper with no side effects, though this is likely the default annotation rather than a true contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but fully front-loaded: purpose first, then scope limits, checks performed, return shape, and caveats. Every sentence carries actionable information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description inlines the return shape ({ valid, errors, warnings? }), explains the safety authority model, and covers the lint's limitations. An agent has everything needed to call and interpret it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter with 100% schema description coverage, so the schema already documents 'source'. The description implies the input is full Python source but adds no format or syntax detail beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (lint/validate) and resource (tcode-api Python script) and its purpose (pre-submission check for a Trilobio fleet controller). It also names what it wraps and clarifies it is a TypeScript package helper, distinguishing it cleanly from pcc_trilobio_build_config, pcc_trilobio_capability_template, and pcc_trilobio_validate_options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames the use case (before submission to the fleet controller) and sets boundaries ('Surface check only — NOT a sandbox or sanitizer'; results are a hint when allowArbitraryScripts=true). It does not name sibling alternatives directly, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_update_node_statusAInspect
Update the status of a capability node within a request. Valid transitions: pending → bidding → assigned → in_progress → completed (or failed). When all nodes complete, the request automatically moves to completed.
| Name | Required | Description | Default |
|---|---|---|---|
| nodeId | Yes | Capability node ID | |
| status | Yes | New status for the node | |
| requestId | Yes | Request ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false, and the description goes beyond them: it discloses the side effect that the parent request auto-completes once all nodes complete, plus the enforced state machine. It leaves out permission requirements and error behavior on illegal transitions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the action is front-loaded, the transition rule and the cascade side effect follow with no filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter mutation with no output schema, the description covers the action, valid values, and the cascade effect on the request. It is nearly complete; only auth/error semantics for invalid transitions are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds meaning beyond the raw enum by specifying the permitted transition order, telling the agent which enum values are valid from a given current state. requestId and nodeId semantics still come only from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Update the status of a capability node within a request'), clearly distinct from sibling mutations like pcc_assign_node_operator or update_job_status. It does not name an alternative sibling explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The valid transition chain (pending → bidding → assigned → in_progress → completed/failed) implicitly tells the agent when an update is legal, which is useful. However, there is no explicit when-to-use guidance, no mention of who may perform transitions, and no routing to alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_update_requestAInspect
Update a capability request's title, description, budget, deadline, urgency, or contact info. Does not re-decompose — call pcc_decompose_request afterwards if you want a fresh DAG.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| budget | No | ||
| urgency | No | ||
| deadline | No | ||
| requestId | Yes | Request ID | |
| description | No | ||
| requesterEmail | No | ||
| requesterWallet | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-destructive mutation. The description adds one behavioral fact beyond that — it does not re-decompose the request — but omits whether the update is partial or full-replace, whether omitted fields are left untouched, and any auth/ownership requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The mutable-field list is front-loaded and the decompose caveat follows immediately as the actionable next step.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter mutation with no output schema, the description covers the field surface and the decompose relationship, but leaves patch-vs-replace semantics and permission requirements unstated — meaningful gaps for a write tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 13% (only requestId documented), so the description must compensate, and it largely does: it names title, description, budget, deadline, urgency, and 'contact info' (covering requesterEmail/requesterWallet). It still adds no format hints for deadline or the meaning of the urgency enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (update) and resource (capability request) and enumerates the mutable fields, so the agent knows exactly what the tool touches. It explicitly distinguishes itself from pcc_decompose_request ('does not re-decompose'), but does not differentiate from other request siblings like pcc_submit_request or pcc_publish_request.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one concrete routing cue: call pcc_decompose_request afterwards if a fresh DAG is wanted. That is genuinely useful sequencing guidance, but there is no statement of when to use this over alternatives or any prerequisites (e.g. ownership, request state) required to update.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pcc_verifier_healthARead-onlyInspect
Report CaptureVerifier health: which adapters are loaded (c2pa, webauthn, appattest, playintegrity), their staleness status, in-memory challenge cache size, whether CaptureClassRegistry is deployed, and the active PCC_NETWORK. Use this to diagnose why a capture class is being rejected or degraded.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds substantive behavioral context by enumerating the diagnostics returned (adapter staleness, cache size, registry deployment, active network), which is the kind of detail an agent needs and annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose followed by the payload enumeration and the diagnostic use case. The long parenthetical adapter list is dense but each item carries real information; little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description takes on the burden of describing returns and does so thoroughly across five diagnostic dimensions, plus a stated diagnostic purpose. It does not mention auth/permission prerequisites, a minor gap for a read-only health probe.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to disambiguate; baseline for a 0-param tool is 4. The description correctly implies no input is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Report CaptureVerifier health') and then enumerates exactly what is reported: loaded adapters, staleness, challenge cache size, CaptureClassRegistry deployment, and active PCC_NETWORK. This clearly distinguishes it from siblings like pcc_capture_status or pcc_capture_class_registry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives a use case: 'Use this to diagnose why a capture class is being rejected or degraded.' That is a clear triggering context, but it names no alternative diagnostic tools and gives no exclusions (e.g., when to prefer pcc_capture_status).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
propose_compositionAInspect
Propose a composition — a sequenced DAG of capability instances to satisfy a multi-step outcome under a budget + assurance tier. Accepts either a flat steps list or an outcome chain. Returns a candidate plan ranked by optimizeFor (price | speed | quality) with per-step assignments. The composition is persisted for ~30 minutes (proposed status) and can be executed once via execute_composition.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | Ordered list of capability types this composition needs (1..20). Use this OR `outcomeChain`. | |
| location | No | Geographic constraint (lat/lng + radius, or country, etc). | |
| budgetUSD | Yes | Total budget the user is willing to spend across all steps. | |
| requester | No | {agentId, did?} — the agent submitting the request. | |
| description | No | Free-form natural-language description (≤4000 chars). | |
| optimizeFor | No | Ranking objective (default `price`). | |
| outcomeType | Yes | High-level outcome label, ≤120 chars. Example: 'desk-robot-prototype'. | |
| outcomeChain | No | Alternative to `steps`: chain of named sub-outcomes. The planner expands each into capability types. | |
| minAssuranceTier | Yes | Minimum acceptable assurance tier on every step. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover readOnlyHint/destructiveHint, and the description adds critical lifecycle context beyond them: the composition persists for ~30 minutes in 'proposed' status and can be executed once. This persistence and single-use semantics are exactly what an agent needs to avoid stale or duplicate plans.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the core action and scope, then inputs, then return shape and lifecycle in descending priority. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation with nested objects and no output schema, the description covers the return shape, optimization ranking, and persistence/execution lifecycle well. It leaves secondary parameter semantics (location, requester) to the schema, which is acceptable at 100% coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all nine parameters (including the steps/outcomeChain alternative and optimizeFor enum) are already documented in the schema. The description restates optimizeFor values and the steps/outcomeChain duality without adding syntax or format detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Propose a composition') and immediately defines it as a sequenced DAG of capability instances for a multi-step outcome, distinguishing it plainly from execute_composition. An agent knows exactly what it builds and what it returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Routes the agent to the follow-up tool by naming execute_composition and the single-execution constraint, and clarifies the steps-vs-outcomeChain choice. It stops short of explicit when-not guidance (e.g. when to skip proposing and use a search/planner tool instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
protocol_create_escrowAInspect
Create a new MilestoneEscrow contract via the PCCProtocol factory on-chain. Protocol-deployed escrows have fee collection and registry tracking built in. Requires PCC_GATEWAY_PRIVATE_KEY write access.
| Name | Required | Description | Default |
|---|---|---|---|
| cwmId | Yes | Capability Work Module ID as a 32-byte hex string (0x + 64 chars) | |
| payer | Yes | Payer EVM address (0x...) | |
| token | Yes | ERC-20 token address for payment (0x...) | |
| arbiter | Yes | Arbiter EVM address (0x...) — resolves disputes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give readOnlyHint=false and destructiveHint=false, so the description usefully adds on-chain execution, built-in fee collection/registry tracking, and the PCC_GATEWAY_PRIVATE_KEY auth requirement. It does not disclose what is deployed/returned (e.g., escrow address) or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, then the value proposition, then the prerequisite. Nothing is redundant and every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with no output schema, the description covers purpose, mechanism, built-in behavior, and auth needs. It omits what a caller gets back (e.g., deployed escrow address/ID) and any link to follow-up tools like fund_escrow, leaving a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all four required parameters (payer, arbiter, token, cwmId) are documented there, so the baseline is 3. The description adds no parameter-level detail such as token/arbiter constraints or cwmId usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (create a MilestoneEscrow contract) and the mechanism (PCCProtocol factory, on-chain). It is clearly distinguishable from read-side siblings like get_escrow or list_escrows, though it does not explicitly name a competing creation path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies when to use it: 'Protocol-deployed escrows have fee collection and registry tracking built in' signals choosing this over a plain/bare escrow when those features matter, and it names the required write credential. No explicit alternative or when-not condition is given, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
protocol_escrow_feesARead-onlyInspect
Get protocol fees collected from a specific escrow contract. Also returns whether the escrow was deployed via the protocol factory. Useful for auditing fee flows.
| Name | Required | Description | Default |
|---|---|---|---|
| escrowAddress | Yes | Escrow contract address (0x...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), so the description earns credit for disclosing a return-value trait beyond the schema: that it also returns whether the escrow was deployed via the protocol factory. With no output schema, this extra disclosure is genuinely useful; it stops short of describing fee format, units, or aggregation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the primary action, then the secondary return value, then the use case. No filler, though the third sentence is more motivational than operational.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-parameter tool with no output schema, the description covers the action, a notable extra return field, and a motivation. It is nearly sufficient; minor gaps remain around fee units/format and whether values are per-escrow or cumulative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single escrowAddress parameter, so the schema already carries its meaning. The description adds nothing beyond restating that the address identifies 'a specific escrow contract', which is the baseline case for a fully documented single-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get protocol fees collected from a specific escrow contract'), clearly differentiated from the protocol-wide siblings like protocol_fee and protocol_token_fees by its escrow-scoped framing. It doesn't explicitly name those siblings, so an agent must infer the distinction rather than being told it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for auditing fee flows' implies a usage context but gives no when-to-use/when-not guidance and does not route the agent to alternatives such as protocol_fee or get_escrow. The condition that selects this tool over its siblings is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
protocol_feeARead-onlyInspect
Calculate the protocol fee for a given USDC amount (6-decimal units). Returns the fee, the net amount after fee, and formatted versions of both. Use this before building escrow contracts to understand the true cost.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount as a BigInt string in USDC 6-decimal units (e.g. '1000000000' = 1000 USDC) |
TDQS
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 covered. The description adds genuinely useful behavior beyond the annotations: it is a pure calculation with no side effects and it enumerates what comes back (fee, net amount, formatted versions), which matters since no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: what it computes first, then when to use it. Minor redundancy with the schema on units, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only calculator with no output schema, the description covers the computation, the units, the return shape, and the intended usage. It leaves open the fee rate/basis, but an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents the BigInt string and the 6-decimal example. The description restates "6-decimal units" without adding format or edge-case detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: it calculates the protocol fee for a USDC amount and states the units (6-decimal). However, it does not distinguish itself from close siblings like protocol_escrow_fees, protocol_token_fees, or pcc_protocol_fee, so an agent cannot route between fee tools from this description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this before building escrow contracts to understand the true cost" gives a clear usage context and sequencing cue. It stops short of naming alternatives or stating when another fee tool would be the right pick, so it lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
protocol_stateARead-onlyInspect
Read the PCCProtocol root contract state: current fee rate, total protocol fees collected, total escrow count, and registry addresses. Requires PCC_PROTOCOL_ADDRESS to be configured on the gateway.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuine extra context: the gateway-level configuration prerequisite and the fact that no arguments are needed because the contract address is resolved externally. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the return payload, followed by the prerequisite. No filler and nothing that could be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing return values and does so explicitly. It also states the configuration prerequisite. Only the absence of guidance on when to prefer a more targeted sibling keeps it short of a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case. The description correctly signals that no input is required and instead names the environment variable that supplies the target contract, which is useful even though it is not a schema field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and resource (PCCProtocol root contract state) and enumerates exactly what fields are returned: fee rate, total fees collected, escrow count, registry addresses. It is distinguishable from narrower siblings like protocol_fee or protocol_token_fees, though it never names an alternative it is not, which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is a read-only state inspection, and the description adds a precondition (PCC_PROTOCOL_ADDRESS must be configured). There is no explicit when-to-call-this-vs-siblings guidance, so it sits at the minimum-viable level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
protocol_token_feesARead-onlyInspect
Get total protocol fees collected for a specific ERC-20 token address across all escrows. Returns raw wei amount and human-readable formatted value.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenAddress | Yes | ERC-20 token contract address (0x...) |
TDQS
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 covered. The description adds useful return-format context by stating it returns a raw wei amount and a human-readable formatted value, which goes beyond the annotations. It does not cover auth, rate limits, or edge cases, but for a simple read tool this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no filler. The purpose and scope are front-loaded, and the return format follows immediately without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only query with annotations and no output schema, the description is nearly complete: it states what the tool returns and the scope of the aggregation. It could be stronger by clarifying how it differs from sibling fee-related tools, but no critical invocation detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single parameter is fully documented in the schema as an ERC-20 token contract address. The description reinforces the token scope but adds no new syntax or format details beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: getting total protocol fees for a specific ERC-20 token address across all escrows. It also names the return content (raw wei and formatted value). However, it does not explicitly differentiate itself from related siblings such as protocol_fee, protocol_escrow_fees, or pcc_protocol_fee.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to look up aggregate fees for one token, but it provides no explicit when-to-use guidance, prerequisites, or alternatives. It never says when to prefer this over protocol_fee or protocol_escrow_fees.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prove_registrationAInspect
Fast-track: submit evidence that your device works and get auto-approved + activated immediately. No manual review needed. Submit a photo of test output, device health snapshot, or a full evidence bundle with completion events. If evidence meets requirements, registration jumps straight to 'active'.
| Name | Required | Description | Default |
|---|---|---|---|
| evidence | Yes | Evidence proving the device works. Include at least one of: bundleHash+events, photoBase64, or deviceHealth. | |
| registrationId | Yes | Registration ID to prove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say the tool is non-read-only and non-destructive; the description adds the key behavioral fact that successful evidence bypasses manual review and transitions the registration straight to 'active'. It does not mention failure handling (what happens if evidence is rejected) or any auth/permission requirement, keeping it below 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the outcome and then the accepted evidence forms; nothing is padded. Slightly redundant in that the outcome ('auto-approved + activated') is stated twice in different words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with a fully described nested schema and no output schema, the description covers purpose, accepted inputs, and the resulting state transition. It omits only the failure path (rejection behavior) and any prerequisites on the registration's current state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents evidence, events, ipfsCid, bundleHash, photoBase64, deviceHealth, and registrationId. The description restates the accepted evidence forms ('photo of test output, device health snapshot, or a full evidence bundle with completion events') but adds no format or constraint detail beyond the schema's own 'include at least one of' note, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (submit evidence that the device works) and the concrete outcome (auto-approved and activated immediately, no manual review). This clearly separates it from the approval/verification siblings such as approve_registration and submit_for_human_verification without needing to open a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'fast-track ... no manual review needed' framing tells the agent when this path is appropriate and implicitly contrasts it with the manual/human-verification route. It does not name an alternative tool explicitly or state when NOT to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
provision_api_keyAInspect
CALL THIS FIRST. Provisions an API key for the operator. Returns a pcc_live_* key that must be included as 'Authorization: Bearer ' on all subsequent requests. Accepts either email OR walletAddress. The key is shown once — save it. Without it, all other endpoints return 401.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Operator display name (optional) | |
| No | Operator email address (use this OR walletAddress) | ||
| capability | No | What the operator does — e.g. 'FDM 3D printing', 'CNC milling', 'HPLC analysis' | |
| walletAddress | No | EVM wallet address (use this OR email) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a non-read-only, non-destructive write. The description adds critical behavior beyond annotations: it returns a pcc_live_* key, the key must be sent as 'Authorization: Bearer <key>', the key is shown only once, and all other endpoints fail with 401 without it. These are exactly the behavioral details an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly front-loaded with the most important instruction first. Every sentence adds necessary operational detail without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a provisioning tool with no output schema, the description fully covers the return value, one-time visibility, required downstream auth usage, and consequence of omission. Parameter semantics are covered by the schema, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description only restates the email-or-walletAddress choice already present in the schema, and does not explain 'capability' or 'name' 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource: 'Provisions an API key for the operator.' It clearly distinguishes this tool from siblings such as list_api_keys and revoke_api_key. 'CALL THIS FIRST' makes the intended role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use it ('CALL THIS FIRST') and why ('Without it, all other endpoints return 401'). It also clarifies accepted identity inputs ('email OR walletAddress'). This is strong, actionable usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_protocolAInspect
Publish a draft protocol template, making it visible in the protocol library for others to discover and use.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Protocol template ID to publish |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description usefully adds the state effect (draft becomes publicly discoverable), but says nothing about whether publishing is reversible, whether re-publishing is idempotent, or what permissions/validation are required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the action first and the consequence second, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter state-transition tool with annotations present and no output schema, the description covers what is needed to call it. It is thin on the surrounding workflow, however: no mention of draft/validation prerequisites, error conditions, or reversibility, which matters for a publish action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'id' parameter, so the schema carries the meaning. The description adds no format, sourcing, or lookup detail beyond what the schema's 'Protocol template ID to publish' already states, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('publish a draft protocol template') and adds the observable outcome (visible in the protocol library for discovery). It is clearly distinct from get_protocol/list_protocols/create_protocol, though it never names an alternative sibling, so it falls short of the top mark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the word 'draft' — the agent can infer this applies to an unpublished template, but there is no explicit when-to-use guidance versus update_protocol or validate_protocol, and no stated precondition (e.g. must be validated first, must currently be in draft state).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raise_ip_disputeBInspect
Raise a Story Protocol IP dispute against an asset. Provide evidence hash and reason.
| Name | Required | Description | Default |
|---|---|---|---|
| ipId | Yes | IP asset ID to dispute | |
| reason | Yes | Reason for the dispute | |
| evidenceHash | Yes | Hash of the dispute evidence |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a non-read mutation that is not destructive; the description's 'raise' wording is consistent with that. However, for an on-chain dispute it discloses nothing about costs, bonds/staking, reversibility, or what happens after the dispute is filed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the action front-loaded and no filler. The second sentence is largely redundant with the schema, keeping it shy of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-required-parameter mutation with no output schema, the description is minimally adequate: it identifies the target chain and the required inputs. It omits the dispute lifecycle, prerequisites, and consequences, which an agent needs to invoke this correctly alongside sibling evidence and dispute tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and all three parameters (ipId, evidenceHash, reason) are documented in the schema itself. The description merely echoes two of them, adding no format or constraint detail beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: raising a Story Protocol IP dispute against an asset. This clearly separates it from lookups and read tools, though it does not name the closest siblings (dispute_verification, file_escrow_dispute) to sharpen the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence is a parameter instruction ('Provide evidence hash and reason'), not usage guidance. There is no statement of when to raise a dispute versus file an escrow dispute or a verification dispute, nor any prerequisite such as evidence having been committed first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_episodeBInspect
Record a transfer episode for a node pair. Increments episode count toward VLA training threshold.
| Name | Required | Description | Default |
|---|---|---|---|
| success | No | Whether the episode succeeded | |
| toNodeId | Yes | Destination instrument node ID | |
| episodeId | No | Episode ID (optional) | |
| fromNodeId | Yes | Source instrument node ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description usefully adds the state side effect (increments an episode count toward a training threshold), but omits whether calls are idempotent, what happens once the threshold is reached, and any auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action front-loaded and the side effect second. No filler, though the second sentence could be folded in or expanded to carry more guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with no output schema, the description covers the primary effect but leaves open what the threshold triggers, what the response contains, and how errors are surfaced. Adequate but with noticeable gaps given the mutation semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters including 'success' and 'episodeId' are already documented in the schema. The description only restates the node-pair concept ('for a node pair'), adding no syntax or format meaning beyond the schema, which matches the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Record a transfer episode') plus the scoping unit ('for a node pair'), and adds the downstream effect. It is clear on its own, but it does not name or contrast with any sibling such as get_transfer_graphs or the other transfer/telemetry tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use, prerequisites, or alternatives. The mention of a 'VLA training threshold' hints at context but never says when an agent should call this versus emitting telemetry or advancing automation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redeem_inviteAInspect
One-click agent onboarding with an invite code. Provisions wallet, identity, LLM access, and PCC tools in a single call.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Display name (optional) | |
| Yes | Email address for the account | ||
| password | Yes | Password for the account | |
| inviteCode | Yes | Invite code to redeem |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false, so the description carries most of the weight; it meaningfully expands on this by disclosing that the call provisions a wallet, identity, LLM access and PCC tooling in one shot, which is far more informative than the generic write hint. It still omits whether the invite code is single-use, whether the action is reversible, and what account state is created from the email/password.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the action and its scope are front-loaded in the first sentence and the provisioning effects follow immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-parameter provisioning mutation with no output schema and no annotations beyond the write hint, the description omits what the caller gets back (account ID, wallet address, API key) and any failure modes. It covers the purpose and effects adequately but leaves the agent without return-value expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all four parameters (inviteCode, email, password, name) are documented in the schema, so the baseline is 3. The description adds no extra meaning such as invite-code format, password constraints, or whether name is required for provisioning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action and resource ('agent onboarding with an invite code') and enumerates the side effects (wallet, identity, LLM access, PCC tools), which separates it from the many registration/provisioning siblings. It does not explicitly name the nearest alternative (check_invite), so sibling differentiation is only partly achieved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'onboarding with an invite code' implies the trigger condition, but there is no explicit when-to-use statement, no mention that check_invite should be called first to validate the code, and no statement about prerequisites or what happens if the code is invalid or already redeemed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_capability_ipAInspect
Register a capability as a Story Protocol IP Asset. Returns an ipId and NFT token. The designer earns royalties whenever this capability is used.
| Name | Required | Description | Default |
|---|---|---|---|
| ipfsCid | No | IPFS CID of the capability spec document (optional) | |
| capability | Yes | Capability object | |
| designerName | Yes | Display name of the designer | |
| designerAddress | Yes | EVM address of the capability designer | |
| commercialRevShare | No | Revenue share percentage for commercial use (0-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only establish that this is a non-read, non-destructive write. The description adds real behavioral context beyond that: the call mints an on-chain NFT/IP asset and creates an ongoing royalty stream for the designer, which an agent needs to know before invoking. It omits permanence/irreversibility and any auth or gas considerations, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: what it does, what it returns, and the economic consequence. The key action is front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by naming the returned ipId and NFT token, and it explains the royalty side effect. It leaves a few gaps for a write tool with a nested object payload (preconditions, whether re-registration is rejected, any approval/auth step), but it covers what an agent most needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters including the nested capability object and commercialRevShare range. The description adds no parameter-level meaning (e.g., how commercialRevShare interacts with the royalty claim), so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Register a capability as a Story Protocol IP Asset') and even names the outputs (ipId, NFT token), so an agent knows exactly what this produces. It does not, however, distinguish itself from nearby siblings such as create_capability, register_job_evidence_ip, or get_capability_ip, leaving the agent to infer the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the royalty sentence hints that you register when you want the designer to monetize a capability, but there is no explicit when-to-use, no prerequisites (e.g., must the capability already exist?), and no named alternative tool. An agent can guess the context but gets no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_job_evidence_ipBInspect
Register job evidence as a derivative IP asset on Story Protocol, linking it to the parent capability's IP. Operators earn royalties from derivative use.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID whose evidence is being registered | |
| ipfsCid | No | IPFS CID of the evidence bundle (optional) | |
| parentIpId | Yes | IP ID of the parent capability | |
| operatorName | Yes | Display name of the operator | |
| operatorAddress | Yes | EVM address of the operator | |
| evidenceBundleHash | Yes | Hash of the evidence bundle |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a mutation (readOnlyHint=false) with destructiveHint=false, so the safety profile is partly covered. The description adds useful context that registration is on Story Protocol and creates a royalty-bearing derivative, but omits auth requirements, idempotency, gas/irreversibility, and behavior when the evidence or parent IP is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler, and the core action is front-loaded before the royalty incentive. Efficient and readable, though it could be marginally improved by naming the counterpart capability-registration tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter on-chain mutation with no output schema, the description covers purpose and the royalty incentive but leaves the agent without return-value expectations, confirmation behavior, or prerequisite (parent IP must exist) details. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters (including required parentIpId, jobId, evidenceBundleHash, operatorAddress, operatorName) are already documented in the schema. The description adds no parameter-level syntax or format detail beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('Register job evidence as a derivative IP asset') and adds the crucial linkage detail ('linking it to the parent capability's IP'). This distinguishes it from register_capability_ip, though it doesn't explicitly differentiate from the other evidence-writing siblings like commit_evidence or submit_evidence_hash.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage (operators register a job's evidence bundle under a capability to earn royalties) but gives no explicit when-to-use/when-not guidance or named alternatives. The agent must infer how this differs from the many other evidence tools in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reject_registrationAInspect
Reject a machine registration with a reason. The operator can see the rejection reason and resubmit.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Reason for rejection | |
| registrationId | Yes | Registration ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and destructiveHint=false, so the description usefully adds that the rejection is visible to the operator and can be resubmitted, i.e. a reversible state change with operator notification. It stops short of stating auth/permission requirements or what happens to the registration record itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and followed by the consequence. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with annotations covering safety and no output schema, the description covers the action and the operator-facing outcome well. It could state what the caller gets back or any status transition, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are documented, so the schema carries the load and baseline is 3. The description's phrase 'with a reason' adds mild emphasis but also slightly overstates it, since only registrationId is required in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Reject') and resource ('machine registration'), and mentions the reason input. It is clearly distinct from approve_registration/activate_registration by implication, though it never names the sibling it replaces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the description implies this is the counterpart to approving a registration and notes the operator can resubmit, but it gives no explicit when-to-use/when-not-to-use or prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_milestoneAInspect
Release a milestone payment on-chain after the challenge window has expired. Returns transaction hash.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Escrow contract address (0x...) | |
| milestoneIndex | Yes | Milestone index to release (0-based) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, and the description is consistent with those signals. It adds useful behavioral context by specifying the challenge-window prerequisite and that the call returns a transaction hash, though it does not cover gas, permissions, or finality beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and prerequisite, and no wasted words. The return value is included compactly without diluting the core instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation tool with no output schema and fully specified inputs, the description supplies the essential context: what it does, when it can be called, and what it returns. Nothing critical is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both required parameters are fully documented in the input schema. The description adds no parameter-level syntax, formatting, or constraint details beyond what the schema already provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: release a milestone payment on-chain, with the key precondition that the challenge window has expired. It clearly distinguishes this action from sibling escrow tools such as get_escrow, fund_escrow, and dispute_verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context: the tool should be called after the challenge window has expired. However, it does not explicitly name alternatives for when the window has not expired or when the caller lacks permission, so it stops short of full when/when-not routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_pcc_dashboardBRead-onlyIdempotentInspect
Compose a live PCC dashboard for a physical-capability task — pass a DashboardManifest (windows + live data bindings + actions) and it renders as an interactive MCP App.
| Name | Required | Description | Default |
|---|---|---|---|
| csd | Yes | The builtin CSD URI this manifest conforms to. | |
| theme | No | ||
| title | Yes | ||
| api_base | No | Gateway base URL. Default https://capability.network. | |
| sections | Yes | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| manifest | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds that the output is an interactive MCP App and that the manifest carries windows, live bindings, and actions, but says nothing about persistence, side effects, or whether rendering triggers any server writes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that leads with the verb and resource and then qualifies the manifest shape. Dense but free of filler, though it packs three concepts (compose, manifest parts, MCP App) into one clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description gives a workable high-level framing of a complex nested manifest. What it lacks is invocation context — when this is the right tool among the many dashboard-related siblings — leaving the definition minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 33%, below the 50% mark, so the description should compensate and instead only names the manifest's main parts (windows, live bindings, actions). The nested schema is rich in its own definitions, but the top-level fields (csd, theme, title, api_base, sections, description) get no additional meaning from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action on a specific resource: composing a live PCC dashboard and rendering it as an interactive MCP App from a DashboardManifest. It is clear what the tool does, but it never names or distinguishes itself from close siblings like get_dashboard, save_dashboard, update_dashboard, or pcc_generate_ui.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no routing against alternatives. An agent cannot tell from the description whether this persists a dashboard (as save_dashboard might) or merely renders one, nor when to reach for it versus fork_dashboard or get_dashboard.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_pcc_dashboard_irBRead-onlyIdempotentInspect
Compose a live PCC dashboard rendered through the closed, PCC-owned IR (read-only). Pass a DashboardManifest; it renders as an interactive MCP App via the audited closed-IR render path.
| Name | Required | Description | Default |
|---|---|---|---|
| csd | Yes | The builtin CSD URI this manifest conforms to. | |
| theme | No | ||
| title | Yes | ||
| api_base | No | Gateway base URL. Default https://capability.network. | |
| sections | Yes | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| manifest | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and closed-world, so the safety profile is covered. The description adds that rendering flows through an 'audited closed-IR render path' and produces an 'interactive MCP App', which is useful context, but it omits the behavioral constraints that actually bite: the 256KB manifest cap and the no-credential refine enforced only by gateway Zod.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with the core action first and the render path second. Slight redundancy in repeating the 'closed ... IR' / 'closed-IR render path' idea twice, but no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained. But for a tool whose input is a 256KB-capped, credential-refined manifest validated by an authoritative Zod schema, the description says nothing about validation failure modes, the no-API-key rule, or that Zod (not this JSON-Schema) is the final gate. Adequate but thin relative to task complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% and the description adds essentially nothing beyond 'Pass a DashboardManifest', which merely restates the schema's own type. The offsetting factor is that the schema itself is extremely rich (nested const/enum/description on csd, api_base, Binding, Action, ComposeRequest), so the heavy lifting is done there, leaving this at the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Compose a live PCC dashboard') and identifies the render path ('closed, PCC-owned IR'), which meaningfully distinguishes it from the near-identical sibling render_pcc_dashboard. However, it never names that sibling explicitly, so the agent must infer the closed-IR-vs-other-IR contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over render_pcc_dashboard, no prerequisites, and no mention of the manifest validation gate the caller must satisfy. The agent is left to infer usage entirely from the name suffix and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_support_threadAInspect
Reply to an existing support thread. Use when the operator wants to add information to a thread started earlier. Needs the threadId from check_support_replies or the original send_support_message response.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Reply message | |
| threadId | Yes | Thread ID to reply to | |
| retrievalCode | No | Optional diagnostic retrieval code to attach |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the mutation and safety profile are already known. The description adds the useful prerequisite of where to obtain threadId, but it does not disclose permissions, visibility, rate limits, or what the reply affects beyond creating a message. With annotations covering safety, this is adequate context but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action, followed by usage guidance and the key prerequisite. There is no filler; every sentence contributes directly to correct invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter mutation tool with annotations and no output schema, the description covers purpose, usage context, and how to obtain the required threadId. It omits return behavior or visibility details, but given the tool's simplicity and the annotations, it is largely complete for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema for threadId by specifying it must come from check_support_replies or the original send_support_message response, which is useful semantic guidance for a required parameter. The other parameters (message, retrievalCode) receive no extra explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Reply to an existing support thread.' It distinguishes from siblings by naming check_support_replies and send_support_message as sources for the required threadId, so an agent can tell it apart from tools that start or read threads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear condition for use: 'Use when the operator wants to add information to a thread started earlier,' and specifies that the threadId must come from check_support_replies or the original send_support_message response. However, it does not explicitly state when not to use it or route to an alternative for starting a new thread.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_anomalyBInspect
Report a detected anomaly — protocol failure, evidence mismatch, stuck job, or suspicious behavior. All agents on the network are notified.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | No | Related job ID (optional) | |
| category | Yes | Anomaly category | |
| severity | Yes | Anomaly severity | |
| description | Yes | Human-readable description of what went wrong | |
| targetAgentId | No | Agent or kernel ID being reported (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, and the description adds that all agents on the network are notified, a meaningful broadcast side effect. It does not describe permissions, rate limits, notification persistence, or whether the report can be retracted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste, front-loading the verb and resource. The example list efficiently scopes the tool without bloating the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter report tool with full schema coverage and safety annotations, the description covers the core purpose and the network-wide notification effect. It leaves sibling differentiation and detailed severity/category semantics to the schema, which is mostly adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters and both enums. The description names some anomaly types but omits several enum values and adds no additional syntax or meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Report a detected anomaly') and gives examples that clarify scope. It does not explicitly distinguish itself from the sibling report_protocol_failure, which overlaps with one listed example category.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides only implied usage from 'Report a detected anomaly.' It gives no explicit when-to-use guidance, no exclusions, and does not mention alternatives such as report_protocol_failure, get_unresolved_anomalies, or resolve_anomaly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_protocol_failureAInspect
Report a protocol failure — when a step in the evidence/escrow/verification pipeline breaks. System may auto-recover.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | No | Related job ID | |
| protocol | Yes | Which protocol failed: evidence_submission, escrow_release, verification_consensus, settlement | |
| errorCode | Yes | Error code | |
| errorMessage | Yes | Error description | |
| involvedAgents | Yes | Agent IDs involved | |
| recoveryAction | No | Suggested recovery |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so safety is partly covered. The description adds a genuinely non-obvious behavioral fact — "System may auto-recover" — telling the agent that filing a report does not guarantee human/agent intervention. It stops short of describing idempotency, required authorization, or what happens after submission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence pair with the core action front-loaded and the qualifying scope immediately after. No filler, no restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with no output schema and six fully documented parameters, the description covers the essential trigger. It is missing what happens to the report (auto-recovery path, escalation), whether calls are idempotent, and how it differs from report_anomaly — gaps that matter for a failure-reporting tool in a crowded sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all six parameters documented including the protocol enum values and the recoveryAction enum. The description adds no parameter-level meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Report a protocol failure") and scopes it to failures "when a step in the evidence/escrow/verification pipeline breaks." That is enough to separate it from generic telemetry tools, but it never distinguishes it from the close sibling report_anomaly, which an agent could easily confuse with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an implied trigger condition (a broken pipeline step), which is more than nothing, but it offers no when-not guidance and no routing between this tool and alternatives like report_anomaly, send_diagnostics, or dispute_verification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_anomalyBInspect
Mark an anomaly as resolved with a resolution note.
| Name | Required | Description | Default |
|---|---|---|---|
| anomalyId | Yes | Anomaly ID to resolve | |
| resolution | Yes | How the anomaly was resolved |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the agent already knows this is a non-destructive write. The description adds that a resolution note accompanies the state change, but says nothing about reversibility, idempotency, required permissions, or whether re-resolving an already-resolved anomaly is allowed – reasonable context gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single ten-word sentence with no filler; the mutation and its accompanying input are front-loaded. It is efficient, though it is so short that it leaves no room for the usage/behavioral context a mutation tool benefits from.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation with a fully documented schema, no output schema, and annotations covering the safety profile, the description covers what the agent needs to invoke it. Minor gaps (irreversibility, permission requirements, post-resolution effects) are not fatal at this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (anomalyId, resolution) are documented in the schema itself. The description's phrase 'resolution note' adds slight framing but no format, length, or required-ness detail beyond what the schema already provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Mark an anomaly as resolved with a resolution note.' An agent can tell this mutates a specific anomaly's state. It does not, however, explicitly distinguish itself from siblings like get_unresolved_anomalies, report_anomaly, or get_anomaly_stats, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no alternatives named. The natural pairing with get_unresolved_anomalies (fetch unresolved, then resolve) and the boundary with report_anomaly are left entirely for the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
respond_to_verificationBInspect
Submit a verifier's verdict for a verification request. Returns consensus state after this vote.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Optional notes explaining the verdict | |
| verdict | Yes | Verifier's verdict | |
| requestId | Yes | Verification request ID (hvreq_...) | |
| signature | Yes | Cryptographic signature of the verdict | |
| verifierId | Yes | Verifier node ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=false and destructiveHint=false, so the mutation profile is known. The description adds the useful behavioral fact that the call returns consensus state after the vote, but omits whether the verdict is final, whether a signature is required for authorization, and whether re-submission is possible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no filler; the action is front-loaded and the return-value note follows. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description partly compensates by naming the returned consensus state, but it does not enumerate possible consensus outcomes or describe authorization expectations for a signed write. Adequate but with clear gaps for a state-mutating verification tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with required fields requestId, verifierId, verdict (enum), and signature all documented in-schema, so baseline is 3. The description adds no parameter-level meaning beyond noting that a verdict is submitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Submit a verifier's verdict for a verification request'), which clearly distinguishes it from read-side siblings like get_verification_status and get_verification_assignments. It does not explicitly differentiate from dispute_verification or submit_for_human_verification, but the core action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives. An agent must infer from the name that this is the step following get_verification_assignments, and nothing tells it when this is inappropriate versus disputing or escalating to human verification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resume_protocol_runAInspect
Resume a paused protocol run from where it stopped.
| Name | Required | Description | Default |
|---|---|---|---|
| runId | Yes | Protocol run ID to resume |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive mutation, so the safety profile is covered externally. The description adds the meaningful behavioral detail that execution continues from the stop point rather than restarting, but says nothing about failure modes, whether the run must be paused, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with zero filler, front-loading the verb and resource and immediately qualifying the target state. Nothing could be trimmed without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required, fully described parameter, annotations covering the safety profile, and no output schema to explain, the description is nearly sufficient for correct invocation. It could be more complete by stating what happens if the run is not in a paused state, but no critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage ('Protocol run ID to resume'), and the description adds no syntax, format, or sourcing detail beyond that. Per the rubric, a fully documented single-parameter schema establishes a baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (resume) and resource (protocol run) plus the key precondition scoping (a paused run) and the point of resumption (from where it stopped). It is meaningfully distinct from pause_protocol_run/cancel_protocol_run/start_protocol_run, though it never names those siblings to disambiguate choice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'paused protocol run' implies the condition under which this tool applies, which is useful implicit guidance. However, there is no explicit when-to-use vs. when-not (e.g. what to do if the run is not paused or already completed) and no mention of alternatives like start_protocol_run.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retrieve_ipfsARead-onlyInspect
Retrieve raw data from IPFS by CID. Used to fetch archived evidence bundles from decentralized storage.
| Name | Required | Description | Default |
|---|---|---|---|
| cid | Yes | IPFS content identifier (CID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe-read profile is covered. The description adds only that the data is raw and stored decentrally; it says nothing about response size, latency/timeouts, missing-CID failure behavior, or whether retrieval is pinned/cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, the core action front-loaded, and not a word of filler. Everything present earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only retrieval tool with full schema coverage and annotations, the description is close to sufficient. The main remaining gap is ambiguity versus bundle-oriented siblings, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter (cid) is already documented as 'IPFS content identifier (CID)'. The description adds an implied 'by CID' but no format, encoding, or CIDv0/CIDv1 detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Retrieve raw data from IPFS by CID', which is unmistakably a fetch-by-identifier operation. It does not, however, differentiate itself from siblings like get_bundle_ipfs or get_evidence_bundle, which sound like overlapping retrieval paths.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Used to fetch archived evidence bundles from decentralized storage' implies the intended context, but there is no statement of when to prefer this over get_bundle_ipfs or other bundle-retrieval siblings, and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revoke_api_keyADestructiveInspect
Revoke an API key permanently. The key will immediately stop working. You must own the key. Use list_api_keys to find the key ID.
| Name | Required | Description | Default |
|---|---|---|---|
| keyId | Yes | Key ID to revoke (from list_api_keys) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructive=true, and the description adds detail beyond that: 'permanently' and 'the key will immediately stop working' quantify the blast radius and timing. It also adds an authorization constraint ('You must own the key') that annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, no filler. Effect is front-loaded ('permanently', 'immediately stop working') before the prerequisites and discovery hint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive tool with no output schema, the description covers effect, permanence, ownership requirement, and how to obtain the input. Nothing an agent needs in order to call it safely is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, and the schema already documents it (keyId, from list_api_keys) at 100% coverage. The description reinforces the provenance of the ID and the ownership requirement, adding marginal value on top of the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (revoke) plus resource (API key) plus scope qualifier ('permanently'). An agent can distinguish this from provision_api_key or list_api_keys without opening the schema. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit prerequisites ('You must own the key') and explicit discovery route ('Use list_api_keys to find the key ID'). Names the sibling that supplies the required input, which is exactly the routing an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_dashboardAInspect
Save a generated dashboard to the network so the user gets a live, shareable URL: https://capability.network/a/. Pass a manifest — a small declarative DashboardManifest (windows + live-data bindings + actions) conforming to the schema at https://capability.network/ui-kit/v1/manifest.schema.json; the shipped pcc-ui kit renders it identically everywhere (you compose the manifest, the kit renders it — never hand-rolled HTML). WHEN to call this: only when the task needs a surface to watch/approve/compare/reuse (a live job, a value chain, a settlement trail, a recurring order) — never for a one-line answer. RECALL FIRST: call search_dashboards before generating; reload or fork a match instead of duplicating. The manifest MUST NOT contain an API key (a shared artifact travels with its contents — the network rejects one that does). Returns the stored artifact incl. its slug. Defaults visibility to 'unlisted' (link-shareable, not listed).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Short human name for the dashboard, e.g. 'Watch my pizza + courier'. Used to mint the slug. | |
| manifest | Yes | The DashboardManifest (2-6KB JSON) conforming to https://capability.network/ui-kit/v1/manifest.schema.json. Required top-level keys: `csd` (must be 'pcc://artifacts/dashboard/v1'), `title`, and `sections[]` (each section has `windows[]`). Window kinds: note, metric, capability, list, form, run, approval, receipt, chain, actions. Bindings point at live routes you already use (/api/jobs/:id, /api/escrow/:id, /sse/stream/job/:id). No API key anywhere in the manifest. | |
| visibility | No | Who can load it. Default 'unlisted' (anyone with the link; not in listings). 'public' appears in search_dashboards; 'private' is owner-only. | |
| composeRefs | No | Optional pinned, re-plannable ComposeRequest objects (value chains). Pin the request, never a compositionId (those expire in 30 min). | |
| description | No | One-line description of what the dashboard shows. | |
| renderedCid | No | Optional CID of a rendered-HTML export saved via /api/storage. | |
| capabilityTypes | No | Capability types this dashboard is about, e.g. ['pizza.order','courier.dispatch']. This is the discovery join — it's how search_dashboards finds this artifact later. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| slug | No | |
| manifest | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a non-destructive write; the description adds real behavior beyond that: the network rejects manifests containing an API key, visibility defaults to 'unlisted', and the response includes the stored artifact with its slug. It does not cover rate limits or what happens on name collisions when minting the slug.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and URL format are front-loaded, then WHEN, then RECALL FIRST, then constraints and defaults. Dense but every clause carries guidance; only minor overlap with the schema descriptions on the manifest.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a 7-parameter creation tool: an output schema exists so return-value detail is unnecessary, yet the description still notes the artifact/slug return, plus default visibility, key-handling constraint, and workflow ordering. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; however the description adds meaning beyond the schema by stating the manifest is composed by the agent and rendered by the pcc-ui kit ('never hand-rolled HTML') and that the manifest must never contain an API key. The remaining parameters are largely left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (save) and resource (dashboard) plus outcome: a live shareable URL of form https://capability.network/a/<slug>. It distinguishes itself from siblings by naming search_dashboards for recall and fork_dashboard implicitly via 'reload or fork a match instead of duplicating'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit WHEN to call (tasks needing a surface to watch/approve/compare/reuse) with an explicit exclusion ('never for a one-line answer'). Also mandates a recall-first workflow and names the alternative tool (search_dashboards) plus fork/reload as substitutes for duplication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_capabilitiesARead-onlyInspect
Search capability templates by type or keyword. Returns templates with pricing, assurance tiers, and availability.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (type name, material, process, etc.) |
TDQS
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 covered by structured data. The description goes beyond that by disclosing what comes back (pricing, assurance tiers, availability), which helps the agent judge result usefulness. It still omits pagination or result-count behavior, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler. The action is front-loaded and the return-payload note follows logically. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only search with no output schema, the description covers both what to send and what comes back, which is most of what an agent needs. Minor gaps remain around result volume/pagination and whether the search domain is global or scoped.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage on a single 'query' parameter, the schema already documents the argument. The description adds only the loose hint that queries may be a type name, material, or process, which overlaps almost entirely with the schema's own text. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search capability templates') and narrows the scope with 'by type or keyword'. It does not explicitly differentiate itself from near-neighbors like list_capability_types or pcc_orchestrator_match_capabilities, so an agent must infer the boundary, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the phrasing ('search ... by type or keyword'), which tells the agent the acceptable lookup modes. There is no explicit when-to-use vs. when-not, no mention of list_capability_types as the alternative for enumeration, and no prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_dashboardsARead-onlyInspect
Discover existing public dashboards before you generate a new one (recall-first — the library accrues; adopt > extend > build for UIs too). Filter by capabilityType (e.g. 'pizza.order'), free-text q over name/description/types, and sort by popularity or recency. Returns { entries, total, offset, limit }. Only public artifacts are listed; unlisted ones load by slug via get_dashboard but never appear here.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search over name, description, and capability types. | |
| sort | No | Ranking: 'popular' (by use+load+fork counts) or 'recent' (default). | |
| limit | No | Max results (1..100, default 20). | |
| offset | No | Pagination offset (default 0). | |
| capabilityType | No | Filter to dashboards tagged with this capability type, e.g. 'pizza.order'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | No | |
| entries | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely new behavior: only public artifacts are listed, and unlisted ones never appear here but load via get_dashboard — a scoping constraint the agent needs. It also discloses the return envelope, though pagination defaults are left to the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and the recall-first rationale, then the filters and return shape. Dense but nearly all of it earns its place; the parenthetical marketing-ish phrasing ('adopt > extend > build for UIs too') is slightly self-indulgent but still conveys usage intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and the description's brief '{ entries, total, offset, limit }' note is a bonus. The public-only scope and get_dashboard fallback round out what an agent needs; only pagination behavior is left entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and every parameter is already documented in the schema, including the capabilityType example and sort enum. The description restates the same filters and adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search/discover) and resource (existing public dashboards), and clearly differentiates from siblings: it points to get_dashboard for unlisted artifacts and contrasts with the generate/save/fork flow. An agent can distinguish it from get_dashboard or save_dashboard without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames when to use it ('before you generate a new one', recall-first, 'adopt > extend > build') and names the alternative path for the unlisted case (load by slug via get_dashboard). Both the when and the when-not are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_spacesBRead-onlyInspect
Search for lab/workshop hosting spaces. Filter by size, access schedule, and other requirements.
| Name | Required | Description | Default |
|---|---|---|---|
| access | No | Access schedule (24/7, business-hours, all) | |
| maxSqft | No | Maximum square footage |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe-read profile is covered. The description adds only the domain (lab/workshop hosting) and that filtering is possible; it discloses nothing about result limits, pagination, or empty-result behavior, so it adds minimal value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler, and the core purpose is front-loaded. It is efficient, though it spends half its length restating filter facets already implied by the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-param read-only search with full schema coverage and clear annotations, the definition is adequate. It is incomplete only in omitting any note about result count, sorting, or pagination behavior, which for a search tool would be the one piece of context an agent could not derive elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already fully documented, and the description's mention of 'size' and 'access schedule' only loosely maps to maxSqft and access. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Search for lab/workshop hosting spaces') and identifies the filterable facets. It is clear on its own, but it never distinguishes itself from the sibling match_spaces or get_space, so an agent must infer the routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this over match_spaces or get_space, nor any prerequisites. The reader must guess that this is a broad listing/filter operation while match_spaces is a pairing operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_diagnosticsAInspect
Upload an encrypted diagnostic bundle when the operator's node has problems. The bundle is encrypted client-side with a retrieval code the operator must share with support before logs can be read. Use this when the operator reports errors, crashes, or misbehavior. The pcc-node CLI runs pcc-node logs --send locally to collect+encrypt; prefer that path when available. This tool is for agent-driven uploads when the bundle is already prepared.
| Name | Required | Description | Default |
|---|---|---|---|
| kernelId | Yes | Kernel ID the diagnostics came from | |
| encrypted | Yes | Encrypted bundle payload | |
| bundleHash | No | sha256 of plaintext bundle | |
| bundleSize | No | Size of encrypted payload in bytes | |
| collectedAt | No | ISO timestamp when bundle was collected | |
| logLineCount | No | How many log lines are in the bundle | |
| systemPlatform | No | e.g. Linux-5.15, Darwin-23, Windows-10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and destructiveHint=false, so the description earns real credit by disclosing that encryption is client-side, that the operator must share a retrieval code before logs are readable, and that this tool expects an already-prepared bundle. It does not mention size limits, upload failure behavior, or what the call returns, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each load-bearing: purpose first, encryption constraint second, trigger condition third, preferred CLI path and scope restriction last. No filler and the most decision-relevant information leads.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, trigger, encryption semantics, and routing guidance for a 7-parameter nested-object tool with no output schema. The only omission is what happens after upload (bundle ID, confirmation, or subsequent retrieval step), which an agent-driven flow would benefit from knowing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter (kernelId, encrypted plus its nested ciphertext/iv/tag/salt fields, bundleHash, bundleSize, collectedAt, etc.) is already documented in the schema. The description references the node and encryption concept but adds no format, unit, or syntax detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Upload an encrypted diagnostic bundle') plus the triggering condition ('when the operator's node has problems'). This distinguishes it from near-neighbors like archive_encrypted_bundle and pcc_capture_upload without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use ('operator reports errors, crashes, or misbehavior'), an explicit preferred alternative ('the pcc-node CLI runs `pcc-node logs --send` locally... prefer that path when available'), and an explicit when-not ('agent-driven uploads when the bundle is already prepared'). This is the full when/when-not/alternative triad.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_support_messageAInspect
Send an operator support message to the PCC team. Creates a new support thread or appends to the operator's existing open thread. Can optionally attach a diagnostic retrieval code (from send_diagnostics) so support staff can decrypt logs. Discord webhook fires on every new message, so expect fast response. Use this whenever the operator says something is broken, confusing, or not behaving as expected.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The support message text — describe the problem concretely | |
| subject | No | Optional thread subject (auto-generated from message if omitted) | |
| kernelId | Yes | Operator's kernel ID | |
| kernelName | No | Human-readable kernel name | |
| systemInfo | No | Optional system context (platform, nodeVersion, daemonRunning, gatewayReachable) | |
| retrievalCode | No | Optional diagnostic retrieval code to attach (from send_diagnostics) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, non-destructive write operation. The description adds useful behavioral context: new-thread vs. append semantics, an external Discord webhook notification on every message, and the fact that an attached retrieval code lets support decrypt logs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and remains reasonably concise across five sentences. Each sentence contributes some context, though the fast-response note is less essential than the thread and retrieval-code details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a support-messaging tool with no output schema, the description covers purpose, thread behavior, optional diagnostic attachment, and expected response speed. It could mention follow-up mechanisms such as check_support_replies, but it is otherwise complete enough to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all six parameters, including the retrievalCode source and message purpose. The description adds marginal value for retrievalCode by explaining that support staff can use it to decrypt logs, but it does not add meaningful semantics for the other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: sending an operator support message to the PCC team. It also clarifies the thread behavior (creates a new thread or appends to an existing open thread), which distinguishes it from sibling tools like reply_to_support_thread and check_support_replies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear triggering guidance: use whenever the operator says something is broken, confusing, or not behaving as expected. It also names send_diagnostics as the source of an optional retrieval code, but it does not explicitly mention alternatives such as check_support_replies for reading replies or reply_to_support_thread for responding in-thread.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_detectARead-onlyInspect
Auto-detect current setup state: env vars, database, adapters, chain connectivity, storage, identity. Use this to see what's configured and what's missing before onboarding.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the non-mutating safety profile is covered. The description adds value by specifying the six things it inspects, but says nothing about permissions/auth needs, whether detection triggers network calls to the chain, or side effects. Adequate with annotations, but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences, front-loaded with the primary action and a compact enumeration of the detected domains, followed by a single usage cue. No filler, no repetition of the name. Efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description carries the burden of describing what a caller gets back. "See what's configured and what's missing" gestures at the result but does not characterize the return shape (e.g., per-domain status object, boolean flags). Sufficient to call it correctly, but thin on result expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate beyond what the empty schema conveys. Baseline of 4 applies; there is no param-level meaning the description could usefully add.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (auto-detect) and resource (current setup state), then enumerates the exact domains checked: env vars, database, adapters, chain connectivity, storage, identity. An agent immediately understands the scope. It does not explicitly distinguish itself from adjacent siblings like setup_status or setup_validate, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this to see what's configured and what's missing before onboarding" gives clear timing/context for when to reach for it. However, it names no alternatives (e.g., setup_status for a read-only summary vs setup_validate for verifying correctness) and provides no when-not guidance, so routing between the setup_* siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_generate_configBInspect
Generate a KERNEL_CONFIG JSON from device descriptions. Tell it what machines you have and it produces the config ready to paste into your environment.
| Name | Required | Description | Default |
|---|---|---|---|
| devices | Yes | Array of device descriptions with type, model, and connection info |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the safety profile is known. The description adds that the output is a paste-ready config, but doesn't clarify whether anything is persisted server-side or what happens on malformed device input. Partial context beyond the annotations, hence a middling score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, purpose front-loaded with the artifact named first. Slight conversational filler ('Tell it what machines you have') but nothing wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter generation tool with full schema coverage and no output schema, the description covers the input intent and the produced artifact. Minor gap: no mention of the config's expected shape or whether invalid device entries fail the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'devices' parameter, and the schema already documents it as an array of device descriptions with type, model, and connection info. The description adds only a colloquial restatement ('what machines you have'), so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (generate) and a concrete artifact (KERNEL_CONFIG JSON) from device descriptions. An agent can tell what it produces, though it doesn't explicitly distinguish itself from nearby setup siblings like setup_register_device or create_kernel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence implies usage ('Tell it what machines you have'), but there is no when-to-use guidance relative to the many setup_* and kernel_* siblings, and no stated prerequisites or ordering constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_register_deviceAInspect
Register a device in the database with adapter config and capabilities. Part of Step 3 in the onboarding flow. Required: kernelId, deviceId, type and adapterType (400 missing_required_fields otherwise).
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Device role: machine, sensor or camera (the values setup_generate_config and setup_validate accept) | |
| model | No | Device model identifier (optional; stored as "unknown" if absent) | |
| deviceId | Yes | Your ID for this device, unique within the kernel | |
| kernelId | Yes | Kernel ID to register the device under | |
| adapterType | Yes | One of octoprint, modbus, opcua, sila, ipp, generic-http or mock; the route refuses anything else (including opentrons) | |
| capabilities | No | Capability types this device serves | |
| adapterConfig | No | Adapter-specific configuration (host, port, auth, etc.) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation/safety profile is known. The description adds error behavior for missing required fields ("400 missing_required_fields"), but does not cover auth requirements, duplicate deviceId handling, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with purpose, then onboarding context, then required fields. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter nested registration tool with annotations and no output schema, the description supplies purpose, onboarding step, and required-field error behavior. It could mention downstream activation/approval or duplicate handling, but it is largely complete for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each property documented, including allowed adapterType values. The description only repeats required parameter names and the missing-fields error, adding no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb and resource ("Register a device in the database") plus scope (adapter config and capabilities). It does not explicitly distinguish itself from setup_validate, setup_generate_config, or other registration siblings, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear onboarding context ("Part of Step 3 in the onboarding flow"), but no explicit when-not guidance or alternatives among the setup_* and registration tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_statusARead-onlyInspect
Comprehensive setup status across 6 categories: gateway, database, adapters, chain, storage, identity. Use to confirm everything is green before going live.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds the six category scope and go-live intent, but does not describe return structure, freshness, or failure modes; thus it provides some but not rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences: the first specifies the tool's output scope, the second its use case. No redundant or filler content; structure is optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema) and annotations covering safety, the description supplies sufficient context: which categories are checked and when to use it. It stops short of describing the return format (e.g., per-category pass/fail) or freshness, but that is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to clarify. The description appropriately does not discuss parameters, but neither does it need to; a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it provides comprehensive setup status across six named categories and its purpose (pre-launch confirmation). However, it does not differentiate itself from sibling setup_validate or setup_detect, leaving ambiguity about when to choose this over those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear usage context: confirming all systems are green before launch. No explicit exclusions or comparisons to sibling setup tools like setup_validate, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_test_jobAInspect
Submit a test job to verify the full pipeline works end-to-end (Step 4 of onboarding). Returns job ID and result.
| Name | Required | Description | Default |
|---|---|---|---|
| deviceId | No | Specific device ID to test (optional) | |
| kernelId | Yes | Kernel ID to test |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the write-but-safe profile is covered. The description adds the return content (job ID and result) but does not disclose whether the test job consumes quota/cost or has side effects on the pipeline state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and goal, and the second sentence usefully covers the return value. Nothing extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, non-destructive mutation tool with full schema coverage and no output schema, the description gives the essential action, onboarding position, and a return summary. It is nearly complete, missing only side-effect/cost context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (kernelId, deviceId) are already documented in the schema, including the optionality of deviceId. The description adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Submit) and resource (test job) plus the pipeline-verification goal, and anchors it as 'Step 4 of onboarding', which distinguishes it from get_job/list_jobs. It does not explicitly contrast with the other setup_* siblings, but the purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The '(Step 4 of onboarding)' note implies when in the sequence this is called, giving usable context. However, it never states prerequisites or when NOT to use it versus setup_validate/setup_detect/setup_status, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setup_validateBInspect
Validate a kernel config (20+ checks: JSON structure, device connectivity, adapter compatibility). Returns validation errors and warnings.
| Name | Required | Description | Default |
|---|---|---|---|
| config | Yes | Kernel config JSON to validate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so safety is covered, and the description adds that the call returns errors and warnings plus the breadth of checks (20+). Notably it does not explain why a validation tool is flagged non-read-only (e.g., live device connectivity probing), leaving a small behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the action and check scope front-loaded. Nothing is wasted, though it is thin rather than deliberately minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-object input with no output schema, the description helpfully states the return shape (errors and warnings), which compensates for the missing output schema. It still omits any linkage to how the config is produced or what a passing result means before registration, so an agent must infer the workflow position.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single nested config parameter, so the schema already carries the semantics; the description adds no format or shape detail beyond calling it a 'kernel config JSON'. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (Validate) and resource (kernel config) and enumerates the check categories covered (JSON structure, device connectivity, adapter compatibility). It does not, however, distinguish itself from setup_detect, setup_test_job, or setup_status, which sit in the same setup_* family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus siblings such as setup_generate_config, setup_test_job, or setup_register_device. Usage is only inferable from the tool name, which is the bare minimum an agent could guess without a description at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stake_in_poolCInspect
Stake USDC or credits into a capability investment pool.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to stake | |
| poolId | Yes | Investment pool ID | |
| staker | Yes | Address or DID of the staker |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and destructiveHint=false. The description adds the accepted asset types but says nothing about whether the stake is locked, whether it is reversible, whether a token allowance/approval is required first (a get_token_allowance sibling exists), or what the caller gets back. For a fund-moving mutation this leaves important behavior undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though its brevity comes at the cost of the behavioral and usage detail noted elsewhere rather than being a deliberate compression of richer content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A mutation tool that moves funds with no output schema and thin annotations should do more work in the description. It omits lockup/unstake semantics, approval requirements, and any note about the resulting position, leaving the agent under-informed for a value-transferring call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so poolId, staker, and amount are already documented, giving a baseline of 3. The description's 'USDC or credits' marginally clarifies the unit/asset of the amount parameter, but adds no format, bound, or approval details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Stake) and resource (capability investment pool) and names the accepted asset types (USDC or credits). It does not, however, distinguish itself from adjacent money-movement siblings such as deposit_bond, fund_escrow, or claim_pool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as funding an escrow or depositing a bond instead. An agent must infer from the name alone when staking is the right call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_protocol_runAInspect
Start execution of a protocol run that is in 'ready' or 'binding' state.
| Name | Required | Description | Default |
|---|---|---|---|
| runId | Yes | Protocol run ID to start |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds the important precondition that the run must be in a specific state, which is useful behavioral context, but it does not disclose side effects, idempotency, or what happens after start.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates the action and its precondition with zero waste. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter mutation tool with annotations covering safety, the description covers the action and critical precondition. It lacks details about asynchronous behavior or return format, but no output schema exists and the essential invocation criteria are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with runId documented as 'Protocol run ID to start'. The description adds no further meaning beyond what the schema provides. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Start execution') and resource ('protocol run'), and adds a state constraint ('ready' or 'binding'). It does not explicitly name or distinguish itself from siblings like resume_protocol_run or cancel_protocol_run, but the action is clear enough for an agent to identify the tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit precondition for use: the run must be in 'ready' or 'binding' state. This is clear usage context, though it does not name alternatives or state when not to use the tool (e.g., paused or running runs), so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_attestationAInspect
Submit a verifier attestation for a milestone on-chain. Used by third-party verifiers (Bittensor subnet) to confirm evidence quality. Returns transaction hash.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Escrow contract address (0x...) | |
| milestoneIndex | Yes | Milestone index (0-based) | |
| attestationHash | Yes | Attestation hash as 0x-prefixed hex bytes32 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the write-but-not-destructive profile is covered. The description adds that the submission is on-chain and returns a transaction hash, but omits prerequisites such as verifier assignment/authorization and whether an attestation can be replaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each front-loading a distinct fact: the action, the authorized actor, and the return value. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers action, actor, scope and return value, which is most of what an agent needs for a 3-param on-chain write, and no output schema exists to carry return details. It could still be stronger on authorization prerequisites for verifiers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters are individually documented (escrow address, 0-based milestone index, bytes32 attestation hash). The description adds no parameter meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (submit a verifier attestation for a milestone), scopes it on-chain, and names the actor (third-party Bittensor-subnet verifiers). It is distinguishable from sibling writes like submit_evidence_hash or respond_to_verification, though it doesn't explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context is given: it is used by third-party verifiers to confirm evidence quality, which tells an agent whether it is the right caller. No explicit when-not or named alternative is provided, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_demandAInspect
Signal that you want a capability that doesn't exist on the network yet. Creates a demand signal and may auto-create a bounty if enough demand accumulates.
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | Description of what you need | |
| requesterId | Yes | ID of the requester | |
| assuranceTier | No | Required assurance tier (0-3) | |
| capabilityType | Yes | Type of capability wanted (e.g. electron-beam-welding, cryo-em) | |
| estimatedJobValue | No | Estimated payment per job in USD | |
| estimatedFrequency | No | How often you would use this capability |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare this is a non-read-only, non-destructive write. The description adds a valuable behavioral side-effect: it 'may auto-create a bounty if enough demand accumulates,' which the agent cannot infer from annotations alone. It omits auth/permission requirements and rate behavior, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the purpose before the side-effect caveat. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers purpose and the auto-bounty side-effect but says nothing about what the caller receives (e.g. confirmation, demand ID, or threshold status). Adequate but with a clear gap around outcomes and the accumulation threshold.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with 6 well-described parameters, so the schema already carries the parameter burden. The description adds no parameter-level detail (e.g. how assuranceTier or estimatedFrequency influence auto-bounty creation), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (signal/submit) and resource (a demand for a capability that doesn't exist), which is a distinct concept from create_capability or search_capabilities. It does not explicitly name a sibling to differentiate against, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'a capability that doesn't exist on the network yet' gives a clear condition for when this tool applies, implicitly distinguishing it from searching existing capabilities. It does not name explicit alternatives or exclusions, so a 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_evidence_hashAInspect
Submit an evidence bundle hash for a milestone on-chain. Links the physical evidence to the on-chain settlement record. Returns transaction hash.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Escrow contract address (0x...) | |
| milestoneIndex | Yes | Milestone index (0-based) | |
| evidenceBundleHash | Yes | Evidence bundle hash as 0x-prefixed hex bytes32 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a non-read, non-destructive write. The description adds real context beyond that: the operation is on-chain, it links physical evidence to the settlement record, and it returns a transaction hash. It still omits reversibility and permission requirements, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, then the effect, then the return. No filler; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-required-param write tool with annotations and no output schema, it covers the action, effect, and return value, which is most of what is needed. It omits prerequisites and failure conditions (already-submitted milestone, invalid hash), leaving a gap for a settlement-critical mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so address, milestoneIndex, and evidenceBundleHash are fully documented in the schema. The description adds no syntax or format detail beyond it, which is the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: submits an evidence bundle hash tied to a milestone on-chain. The 'on-chain settlement record' linkage makes the effect concrete. It does not explicitly distinguish itself from near-neighbors such as commit_evidence or register_job_evidence_ip, so it stops short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the purpose (attach an evidence hash to a milestone's settlement) but there is no explicit when-to-use, prerequisite (e.g., milestone must be active/unfunded), or named alternative among the many evidence-related siblings. Minimum viable guidance only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_feedbackCInspect
Submit a bug report, suggestion, or general feedback about the PCC network.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page or feature the feedback relates to | |
| type | No | Feedback type | |
| message | Yes | Feedback message (max 5000 chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the write-but-non-destructive profile is covered. The description adds nothing beyond that - no mention of authentication needs, rate limits, whether submissions are public, or what happens after submission. For a mutation tool it should disclose more.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the purpose is stated immediately. It is efficient, though minimal relative to what the tool could usefully explain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with a required message, full schema coverage, and annotations covering the safety profile, the description is minimally sufficient. It is missing any routing guidance against sibling reporting tools, which is the main contextual gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents page, type, and message including the enum values and the 5000-char cap. The description loosely mirrors the type enum ('bug report, suggestion, general feedback') but adds no syntax, format, or constraint detail beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Submit) and resource (feedback about the PCC network) and enumerates the kinds of feedback accepted (bug report, suggestion, general feedback). It is clear what the tool does, but it does not differentiate itself from nearby siblings such as pcc_report or send_support_message that could also carry user-submitted reports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over alternatives like pcc_report, send_support_message, or report_anomaly, and no stated preconditions. The agent must infer usage purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_for_human_verificationAInspect
Submit an evidence bundle for human verification. Selects a panel of verifiers from the network and returns assigned verifier IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| photoRef | Yes | Reference to the photo evidence (CID or URL) | |
| bundleHash | Yes | SHA-256 hash of the evidence bundle | |
| referenceRef | Yes | Reference to the reference/spec document | |
| verifierCount | No | Number of verifiers to assign (default 5) | |
| comparisonScore | No | Pre-computed comparison score 0-1 (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark it as non-read-only and non-destructive, and the description adds substantive behavior beyond that: submission triggers selection of a real verifier panel from the network and returns assigned verifier IDs. It stops short of disclosing cost, whether the submission is final/irreversible, or timing expectations for verification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, zero filler, and the action plus its consequence are front-loaded. Nothing is repeated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully states the return value (assigned verifier IDs), and it covers the side effect of network-side panel selection for a mutation tool. Missing prerequisites, cost, and finality keep it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with five well-documented parameters, so the schema already carries the parameter burden. The description adds no format, constraint, or interpretation detail beyond what the schema states, which is the expected baseline when coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Submit an evidence bundle') and goes further with the second sentence describing the panel-selection effect, which distinguishes it from evidence-storage siblings like submit_evidence_hash. It never names a sibling tool explicitly, so differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when this tool should be used versus respond_to_verification, dispute_verification, verify_evidence_zk, or commit_evidence. No prerequisites are stated either (e.g. whether the bundle must already be committed or the photo already uploaded), leaving the agent to infer the workflow position.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_csd_templatesARead-onlyInspect
Bidirectional onboarding: the registry talks back. Describe in plain English what you are trying to set up — 'wood-fired pizza shop in SF', 'Opentrons OT-2 liquid handler', 'same-day SF courier' — and the registry returns N candidate Capability StructureDefinition (CSD) templates ranked by keyword-overlap relevance (name×3, tags×2, description×1; tie-break on usage). Empty query falls back to popularity-ordered top picks. After picking one, pass the chosen type to pcc-author-integration. Score-zero results are dropped.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Plain-English description of the capability the user is trying to set up. Optional — empty falls back to popularity. | |
| kind | No | Filter by CSD kind. | |
| limit | No | Max results (1..20, default 5). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly true, non-destructive), so the description can spend its budget on behavior — and it does: ranking weights, tie-break rule, score-zero dropping, and popularity fallback for empty input. It stops short of return-shape/pagination detail, but the added ranking semantics are genuinely non-obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded, but the opener 'Bidirectional onboarding: the registry talks back' is tonal filler rather than specification, and the description is long for three optional parameters. The ranking-weight parenthetical is the one dense detail that earns its place; the rest could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return burden and does disclose the ranked candidate list, tie-break, and dropped zero-score results, which is adequate for a search tool. Missing only item-level field detail or result-count/limit interaction, a minor gap for a read-only discoverer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description earns an extra point by explaining that q is matched against name (×3), tags (×2), and description (×1) — meaning the agent knows what kind of text will actually match. It also clarifies that empty q falls back to popularity, which the schema hints at but doesn't fully explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — suggest candidate CSD templates from a plain-English query — and gives concrete example queries. An agent can distinguish it from sibling lookups like get_popular_csd_templates or search_capabilities without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the intended context (onboarding, describe what you're trying to set up) and the fallback for an empty query, and routes the agent forward ('pass the chosen type to pcc-author-integration'). It does not explicitly contrast itself with the sibling get_popular_csd_templates, which is implied only via the empty-query fallback.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_telemetryBRead-onlyInspect
Raw system state dump — actual DB rows for kernels, devices, jobs, evidence, registrations, capabilities, agent conversations, audit log. No fake numbers, no summaries.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 covered. The description adds useful context that the output is raw, unsummarized DB rows rather than aggregates, but says nothing about the volume of a full-system dump, pagination, filtering, permissions, or cost — meaningful gaps for a tool that returns broad system state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with what the dump contains and ending with the 'no fake numbers' qualifier. Efficient, though the second sentence leans slightly promotional rather than informational.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description bears some burden for describing return content; it enumerates the entity types returned, which is helpful. However, it omits return format, size/volume expectations, and whether the dump is paginated or bounded, which matters for a whole-system read.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and schema description coverage is 100%, so there are no parameter semantics to explain. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope ('raw system state dump — actual DB rows for kernels, devices, jobs, evidence, registrations, capabilities, agent conversations, audit log'), which tells an agent precisely what data this returns. It does not, however, name or differentiate itself from the many sibling readers (get_telemetry_logs, get_active_telemetry, get_telemetry_stats, emit_telemetry), so an agent cannot infer routing from the text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to choose this tool over the sibling telemetry/stats readers, nor any prerequisites or exclusions. The phrase 'No fake numbers, no summaries' only vaguely implies a preference for raw data over summarized tools without naming any alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_operator_channelsAInspect
Fire a synthetic job at every enabled channel for an operator so the onboarding agent (and the human watching) can confirm the integration end-to-end before a real job lands. Returns per-channel dispatch results (delivered, ref, warnings).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Operator slug. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false (it writes/dispatches) and destructiveHint=false (non-destructive). The description adds valuable behavioral context: it fires synthetic jobs at *every enabled channel* and returns per-channel dispatch results (delivered, ref, warnings). However, it doesn't disclose side effects on external systems, rate limits, or whether synthetic jobs appear in production logs — details an agent might need. With annotations covering the safety profile, a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action. The second sentence efficiently lists return values. No redundancy or filler. Could arguably be slightly more concise, but it earns its length by conveying purpose, timing, and output shape.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with annotations and no output schema, the description covers purpose, usage context, and return structure (delivered, ref, warnings). This is close to complete. A minor gap is the lack of detail on what 'delivered' vs 'warnings' means or whether failures are per-channel or global, but overall the definition is sufficient for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (slug), and the schema already documents it completely ('Operator slug.') at 100% coverage. The description reinforces that the tool operates on a single operator's channels, which implicitly scopes the slug. No syntax or format details are added beyond what the schema provides, but with a single fully-documented parameter, the baseline is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Fire a synthetic job at every enabled channel for an operator'. The purpose — end-to-end integration testing before a real job — is unambiguous and clearly distinguishable from sibling tools like setup_test_job or list_operator_channels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: 'so the onboarding agent (and the human watching) can confirm the integration end-to-end before a real job lands'. This establishes when to use it ('before a real job lands', during onboarding). It does not name explicit alternatives or when-not-to-use conditions, but the timing constraint is strong guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_dashboardAInspect
Modify a dashboard you own (owner-only). Replace the manifest or any metadata field; the version increments. Use this to edit a saved surface meaningfully — 'raise budgetUSD to 40', 'add a receipt window', 'make it public'. A replaced manifest must still conform to the schema and must not contain an API key. Only send the fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id (ua_...) of the artifact to update. | |
| name | No | New name. | |
| manifest | No | Replacement DashboardManifest (must conform to the schema; no API key). Omit to leave the manifest unchanged. | |
| visibility | No | New visibility (e.g. flip 'unlisted' -> 'public' to list it). | |
| composeRefs | No | Replacement pinned ComposeRequest objects. | |
| description | No | New description. | |
| renderedCid | No | New rendered-HTML export CID. | |
| capabilityTypes | No | Replacement capability-type tags. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| slug | No | |
| manifest | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds owner-only authorization, the version-increment side effect, manifest schema conformance plus the no-API-key constraint, and partial-update semantics ('Only send the fields you want to change'). This is exactly the behavioral context structured fields don't carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core scope and constraint, and the examples efficiently convey intent. Slight redundancy with the manifest constraint restated in the schema keeps it from a 5, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-param mutation tool with nested objects and an output schema, the description covers ownership, side effects, constraints and the partial-update contract. Return values are covered by the output schema, so the remaining gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter. The description's manifest-conformance and API-key notes largely duplicate the schema text, and it adds no new syntax or format detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Modify a dashboard you own' gives a specific verb+resource plus an ownership scope, and the follow-up sentence specifies that it replaces the manifest or any metadata field and bumps the version. An agent can distinguish this from save_dashboard/fork_dashboard without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this to edit a saved surface meaningfully' with three concrete examples ('raise budgetUSD to 40', 'add a receipt window', 'make it public') clearly signals the intended context. It lacks an explicit when-not or a named sibling alternative, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_job_statusAInspect
Update a job's status and optional progress percentage. Used by kernels to report job progress.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID | |
| status | Yes | New status (pending, queued, in_progress, paused, completed, failed, cancelled). 'running' is accepted as a legacy alias for in_progress. | |
| progress | No | Progress percentage 0-100 (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive mutation, so the safety profile is covered. The description adds useful actor context ('kernels'), but does not disclose state-transition rules, permissions, side effects, or return behavior beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the operation and scope, with no filler. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter mutation with full schema coverage and annotations covering safety, the description gives enough purpose and usage context to invoke it correctly. Minor gaps remain around state transitions and permissions, but they are not critical for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents jobId, status values (including the legacy alias), and progress range. The description only repeats status and progress without adding format or constraint details beyond the schema, matching the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Update a job's status and optional progress percentage') and adds who uses it ('Used by kernels'), which helps separate it from operator-facing siblings. However, it does not explicitly name or contrast with the close sibling operator_update_job_status, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Used by kernels to report job progress' gives a clear context for when this tool is appropriate. It does not include exclusions or named alternatives, but that is consistent with a 4 under the rubric.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_operator_channelAInspect
Update an existing channel — toggle enabled, rewrite the describe contract, change the endpoint payload, etc. Merges into the existing record. The operator slug, id, and createdAt are immutable.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Channel id (returned from attach_operator_channel). | |
| label | No | ||
| enabled | No | ||
| describe | No | ||
| endpoint | No | ||
| direction | No | ||
| credentialRef | No | ||
| replyContract | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnly=false, destructive=false). The description adds genuinely useful behavior: it is a merge/partial update, and operator slug, id, and createdAt are immutable. It omits auth requirements and error behavior, but the merge + immutability disclosure goes meaningfully 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action, then the merge semantics and immutability constraint. No filler; each clause carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-param mutation tool with no output schema and 13% schema coverage, the description covers the mutation model and immutable fields but leaves half the parameters, return behavior, and auth context unaddressed. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 13% (just the id param documented), so the description must compensate. It does partially by naming enabled, describe, and endpoint as updatable and flagging slug/id/createdAt as immutable, but leaves label, direction, credentialRef, and replyContract undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Update an existing channel') and enumerates concrete editable fields (enabled, describe contract, endpoint payload), so the agent knows exactly what the tool mutates. It does not explicitly name its siblings (attach_/delete_/list_operator_channels) for differentiation, so it lands just below the top.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'existing channel' and the schema note that id comes from attach_operator_channel imply the precondition of a pre-existing channel, but the description never states when to use this vs attach/delete/test_operator_channels. Usage is inferable rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_protocolAInspect
Update an existing protocol template (must be in draft status). Returns updated name and version.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Protocol template ID | |
| name | No | Updated name | |
| steps | No | Updated steps array | |
| version | No | New version string (semver) | |
| parameters | No | Updated parameters array | |
| description | No | Updated description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the mutation/non-destructive profile is covered structurally. The description adds meaningful context beyond that: the draft-status precondition and the fact that the response returns the updated name and version, which helps the agent understand the operation's effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the precondition front-loaded and the return value appended. No redundant or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the key precondition and summarizes the return values, and the schema fully documents parameters. It is nearly complete, with only minor gaps such as whether updates are partial or full-replacement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters (id, name, steps, version, parameters, description) are already documented in the schema itself. The description adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Update an existing protocol template') with the added precondition of draft status. It is clear what the tool does, though it does not explicitly differentiate itself from siblings like create_protocol, fork_protocol, or validate_protocol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(must be in draft status)' gives a real precondition for use, which is valuable guidance. However, it offers no explicit when-not guidance or routing to alternatives such as publish_protocol or create_protocol for non-draft cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_protocolBInspect
Validate a protocol template against a specific kernel — checks capability availability, transfer compatibility, and automation level feasibility.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Protocol template ID | |
| kernelId | No | Kernel ID to validate against (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, which is unusual for a 'validate' operation and suggests the server may record state. The description describes what is inspected but not whether the call mutates anything, what permissions are required, or what the result contains. With annotations covering the safety profile, a 3 is fair, but the odd readOnlyHint=false deserves explanation the description does not give.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with a compact dash list of the three checks; no filler. It could be marginally tighter, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description would ideally indicate what a validation result looks like (pass/fail per dimension, diagnostics). It covers the input intent well but leaves the return contract unaddressed for a tool whose whole value is a verdict.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are documented there, so the schema does the heavy lifting. The description says validation happens 'against a specific kernel,' yet the schema marks kernelId optional, which slightly muddies whether the kernel argument is required and adds no syntax detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (validate) and a precise resource (protocol template against a kernel), then enumerates the three dimensions checked: capability availability, transfer compatibility, and automation level feasibility. This is enough to distinguish it from nearby siblings like pcc_trilobio_validate_script or setup_validate, which validate other artifacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to call this versus alternatives, and no prerequisites (e.g., whether a kernelId must come from a prior list_kernels or create_kernel call). The only usage cue is implied by the subject matter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_bountyCInspect
Verify bounty completion by scoring the delivered capability against requirements.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID that fulfilled the bounty | |
| score | Yes | Verification score (0-1) | |
| bountyId | Yes | Bounty ID to verify |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, telling the agent this is a non-destructive write. The description adds nothing beyond that: it doesn't say what the score triggers downstream (payout release, certificate mint, milestone release) or whether verification is final and irrevocable, which are the things an agent most needs for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb-and-resource framing arrives immediately. It is efficiently sized, though the brevity leaves the guideline and behavioral gaps noted elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool that records a verification outcome, with no output schema and no annotation detail about side effects, the description should explain what verification actually does. It omits consequences, authorization, and the relationship to dispute or human-verification paths, leaving the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so bountyId, jobId, and score are already documented in the schema. The description restates the scoring concept but adds no format, range, or interpretation detail beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('verify'), resource ('bounty completion'), and mechanism ('scoring the delivered capability against requirements'), so the operation is unambiguous. It does not, however, contrast itself with adjacent siblings like dispute_verification, respond_to_verification, or submit_for_human_verification, so an agent cannot tell from the text alone which verification path applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when this tool should be invoked versus the many other verification-related siblings (dispute_verification, submit_for_human_verification, get_verification_status), nor any prerequisites such as who is authorized to verify or whether a job must first be in a completed state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_evidence_zkBInspect
Verify a ZK proof by its proof ID. Checks the proof against its verification key and public inputs.
| Name | Required | Description | Default |
|---|---|---|---|
| proofId | Yes | ID of the ZK proof to verify |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the bar is lower. The description adds that it checks the proof against its verification key and public inputs, which is useful context beyond the name. However, it does not disclose what side effects occur despite not being read-only (e.g., whether verification records state, consumes the proof, or requires specific permissions), leaving a transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The purpose is front-loaded in the first sentence, and the second sentence adds precise mechanical detail. Every sentence earns its place without redundancy or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description covers the core action and what is verified. However, because annotations indicate the operation is not read-only, the description should at least hint at potential side effects or what a successful verification does (e.g., records a result). This gap keeps it from being fully complete, though the simple shape of the tool limits the severity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is only one parameter, whose schema description already states it is the ID of the ZK proof to verify. The description adds no additional syntax, format, or constraint details beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Verify) and resource (ZK proof) with the key identifier (proof ID), and the second sentence clarifies the verification mechanism (verification key and public inputs). It does not explicitly differentiate from siblings like verify_bounty or pcc_oracle_verify, but the ZK-proof resource is distinct enough that an agent can identify the tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, prerequisites, or alternatives are provided. The description only states what the tool does, leaving the agent to infer when to select this tool over other verification-related siblings. There is no mention of when not to use it or what conditions make it appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- Changed
onboard_machine1 field changed- added
Input schema / properties / operatorAdded value: +{ + "description": "Who owns this machine. prove and activate match the caller against operator.walletAddress (or operator.email).", + "properties": { + "displayName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "walletAddress": { + "description": "0x… address", + "type": "string" + } + }, + "type": "object" +}
- Removed
pcc_generate_ui - Added
pcc_report_attempt - Added
render_pcc_dashboard_ir - Changed
setup_register_device6 fields changed- changed
Input schema / properties / adapterType / descriptionPrevious value: -"Adapter type: octoprint, modbus, opcua, sila, opentrons, generic-http"New value: +"One of octoprint, modbus, opcua, sila, ipp, generic-http or mock; the route refuses anything else (including opentrons)" - added
Input schema / properties / capabilitiesAdded value: +{ + "description": "Capability types this device serves", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / deviceIdAdded value: +{ + "description": "Your ID for this device, unique within the kernel", + "type": "string" +} - changed
Input schema / properties / model / descriptionPrevious value: -"Device model identifier"New value: +"Device model identifier (optional; stored as \"unknown\" if absent)" - changed
Input schema / properties / type / descriptionPrevious value: -"Device type (e.g. fdm-printer, cnc-mill, hplc)"New value: +"Device role: machine, sensor or camera (the values setup_generate_config and setup_validate accept)" - changed
Input schema / requiredPrevious value: -[ - "kernelId", - "type", - "model" -]New value: +[ + "kernelId", + "deviceId", + "type", + "adapterType" +]
9 tool updates
- Removed
approve_token - Changed
fork_dashboard1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "manifest": { + "type": "object" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "required": [ + "manifest" + ], + "type": "object" +}
- Changed
get_dashboard1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "manifest": { + "type": "object" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "required": [ + "manifest" + ], + "type": "object" +}
- Changed
pcc_report18 fields changed- added
Input schema / properties / agentIdAdded value: +{ + "description": "Which model/agent you are. Example: 'claude', 'gpt-4o', 'gemini'. Optional.", + "type": "string" +} - removed
Input schema / properties / agent_kindRemoved value: -{ - "description": "Which model / agent you are. Example: 'claude', 'gpt-4o', 'gemini', 'canary'.", - "maxLength": 200, - "type": "string" -} - removed
Input schema / properties / confused_aboutRemoved value: -{ - "description": "Free-form category — which onboarding stage tripped you up. Example: 'auth', 'discovery', 'build', 'fund', 'submit', 'settle'.", - "maxLength": 200, - "type": "string" -} - changed
Input schema / properties / detail / descriptionPrevious value: -"Multi-line context: full error code, what you tried, what you expected. Optional but recommended."New value: +"Multi-line context: the full error body, what you tried, what you expected. Optional but recommended." - changed
Input schema / properties / detail / maxLengthPrevious value: -4000New value: +20000 - added
Input schema / properties / endpointAdded value: +{ + "description": "The route you were on when you got stuck. From a 5xx `report_hint.send.endpoint`. Example: '/api/build/contract'.", + "type": "string" +} - added
Input schema / properties / errorCodeAdded value: +{ + "description": "The machine error code from the response body, if any. From `report_hint.send.errorCode`.", + "type": "string" +} - removed
Input schema / properties / last_endpointRemoved value: -{ - "description": "The route you were on when you got stuck. Example: '/api/build/contract'.", - "maxLength": 200, - "type": "string" -} - removed
Input schema / properties / last_error_codeRemoved value: -{ - "description": "The error code from the Result<T> envelope you received, if any. Example: 'BAD_REQUEST', 'CAPABILITY_NOT_FOUND'.", - "maxLength": 200, - "type": "string" -} - added
Input schema / properties / logsAdded value: +{ + "description": "Optional but valuable: your last few steps as SUMMARIES (never full request/response bodies) — the sequence that led to the failure. Secrets are never allowed in a note.", + "items": { + "properties": { + "method": { + "description": "HTTP method, e.g. POST.", + "type": "string" + }, + "note": { + "description": "One line on what happened at this step.", + "maxLength": 500, + "type": "string" + }, + "path": { + "description": "Route, e.g. /api/build/price.", + "type": "string" + }, + "status": { + "description": "HTTP status you got.", + "type": "integer" + }, + "step": { + "description": "1-based step index.", + "type": "integer" + } + }, + "type": "object" + }, + "maxItems": 20, + "type": "array" +} - added
Input schema / properties / methodAdded value: +{ + "description": "The HTTP method you used. From `report_hint.send.method`. Example: 'POST'.", + "type": "string" +} - added
Input schema / properties / severityAdded value: +{ + "description": "How badly this blocked you. Optional.", + "enum": [ + "low", + "medium", + "high", + "critical" + ], + "type": "string" +} - added
Input schema / properties / statusAdded value: +{ + "description": "The HTTP status you got. From `report_hint.send.status`. Example: 500.", + "type": "integer" +} - changed
Input schema / properties / summary / descriptionPrevious value: -"1-line description of what went wrong. Example: 'Build options endpoint returned 500 with no hint about what was missing.'"New value: +"1-line description of what you were doing and what went wrong. Example: 'POST /api/build/contract returned 500 with no hint about the missing field.'" - changed
Input schema / properties / summary / maxLengthPrevious value: -280New value: +5000 - added
Input schema / properties / traceIdAdded value: +{ + "description": "Your journey ID — returned by provision_api_key and on every response as `x-pcc-trace-id` (also in a 5xx `report_hint.traceId`). Lets PCC replay your full run.", + "type": "string" +} - removed
Input schema / properties / trace_idRemoved value: -{ - "description": "Your onboarding journey ID. Returned by provision_api_key (body field) and present on every response as the `x-pcc-trace-id` header.", - "pattern": "^tr_[0-9a-f]{16,32}$", - "type": "string" -} - added
Input schema / properties / typeAdded value: +{ + "description": "bug = something is broken/wrong; friction = it works but was confusing/harder than it should be; idea = a suggestion or missing capability. Defaults to bug.", + "enum": [ + "bug", + "friction", + "idea" + ], + "type": "string" +}
- Added
pcc.op.capability.request_quote - Changed
render_pcc_dashboard12 fields changed- added
Input schema / definitions / Action / properties / argumentsAdded value: +{ + "description": "Bounded arguments for the typed operation (host mode only).", + "type": "object" +} - added
Input schema / definitions / Action / properties / operation_idAdded value: +{ + "description": "R4 PR2 — typed host-mediated operation id. In an MCP-App host view the click routes to the registered pcc.op.<operation_id> tool via tools/call (server-authorized); the raw kind/path is inert in host mode. Standalone rendering ignores this.", + "minLength": 1, + "type": "string" +} - changed
Input schema / definitions / Binding / properties / pollMs / descriptionPrevious value: -"Poll cadence in ms (default ~30000)."New value: +"Poll cadence in ms (default ~30000; Zod floors at MIN_POLL_MS=2000 so a shared dashboard can't fast-poll authenticated endpoints)." - removed
Input schema / definitions / Binding / properties / pollMs / exclusiveMinimumRemoved value: -0 - added
Input schema / definitions / Binding / properties / pollMs / minimumAdded value: +2000 - changed
Input schema / definitions / ListItem / properties / meta / descriptionPrevious value: -"Dot-path fields for the row's meta line."New value: +"Dot-path fields for the row's meta line (capped at 12 — meta selectors loop per rendered row)." - added
Input schema / definitions / ListItem / properties / meta / maxItemsAdded value: +12 - added
Input schema / definitions / Section / properties / windows / maxItemsAdded value: +24 - changed
Input schema / definitions / Window / oneOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "note" - }, - "text": { - "type": "string" - } - }, - "required": [ - "kind", - "text" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "binding": { - "$ref": "#/definitions/Binding" - }, - "format": { - "enum": [ - "usd", - "int", - "pct", - "ts" - ] - }, - "kind": { - "const": "metric" - }, - "label": { - "minLength": 1, - "type": "string" - }, - "select": { - "type": "string" - } - }, - "required": [ - "kind", - "label", - "binding" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "binding": { - "$ref": "#/definitions/Binding" - }, - "kind": { - "const": "capability" - } - }, - "required": [ - "kind", - "binding" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "binding": { - "$ref": "#/definitions/Binding" - }, - "item": { - "$ref": "#/definitions/ListItem" - }, - "kind": { - "const": "list" - }, - "limit": { - "exclusiveMinimum": 0, - "type": "integer" - } - }, - "required": [ - "kind", - "binding", - "item" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "kind": { - "const": "form" - }, - "schema": { - "description": "A JSON Schema whose properties become form fields.", - "type": "object" - }, - "submit": { - "$ref": "#/definitions/Action" - } - }, - "required": [ - "kind", - "schema", - "submit" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "binding": { - "$ref": "#/definitions/Binding" - }, - "kind": { - "const": "run" - }, - "latestFrom": { - "type": "string" - }, - "statusFrom": { - "type": "string" - } - }, - "required": [ - "kind", - "binding", - "statusFrom", - "latestFrom" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "approve": { - "$ref": "#/definitions/Action" - }, - "binding": { - "$ref": "#/definitions/Binding" - }, - "deny": { - "$ref": "#/definitions/Action" - }, - "kind": { - "const": "approval" - } - }, - "required": [ - "kind", - "binding", - "approve" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "binding": { - "$ref": "#/definitions/Binding" - }, - "kind": { - "const": "receipt" - } - }, - "required": [ - "kind", - "binding" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "composeRef": { - "$ref": "#/definitions/ComposeRequest" - }, - "execute": { - "$ref": "#/definitions/Action" - }, - "kind": { - "const": "chain" - } - }, - "required": [ - "kind", - "composeRef" - ], - "type": "object" - }, - { - "additionalProperties": false, - "properties": { - "actions": { - "items": { - "$ref": "#/definitions/Action" - }, - "minItems": 1, - "type": "array" - }, - "kind": { - "const": "actions" - } - }, - "required": [ - "kind", - "actions" - ], - "type": "object" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "note" + }, + "text": { + "type": "string" + } + }, + "required": [ + "kind", + "text" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "binding": { + "$ref": "#/definitions/Binding" + }, + "format": { + "enum": [ + "usd", + "int", + "pct", + "ts" + ] + }, + "kind": { + "const": "metric" + }, + "label": { + "minLength": 1, + "type": "string" + }, + "select": { + "type": "string" + } + }, + "required": [ + "kind", + "label", + "binding" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "binding": { + "$ref": "#/definitions/Binding" + }, + "kind": { + "const": "capability" + } + }, + "required": [ + "kind", + "binding" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "binding": { + "$ref": "#/definitions/Binding" + }, + "item": { + "$ref": "#/definitions/ListItem" + }, + "kind": { + "const": "list" + }, + "limit": { + "exclusiveMinimum": 0, + "maximum": 200, + "type": "integer" + } + }, + "required": [ + "kind", + "binding", + "item" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "kind": { + "const": "form" + }, + "schema": { + "description": "A JSON Schema whose properties become form fields.", + "type": "object" + }, + "submit": { + "$ref": "#/definitions/Action" + } + }, + "required": [ + "kind", + "schema", + "submit" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "binding": { + "$ref": "#/definitions/Binding" + }, + "kind": { + "const": "run" + }, + "latestFrom": { + "type": "string" + }, + "statusFrom": { + "type": "string" + } + }, + "required": [ + "kind", + "binding", + "statusFrom", + "latestFrom" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "approve": { + "$ref": "#/definitions/Action" + }, + "binding": { + "$ref": "#/definitions/Binding" + }, + "deny": { + "$ref": "#/definitions/Action" + }, + "kind": { + "const": "approval" + } + }, + "required": [ + "kind", + "binding", + "approve" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "binding": { + "$ref": "#/definitions/Binding" + }, + "kind": { + "const": "receipt" + } + }, + "required": [ + "kind", + "binding" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "composeRef": { + "$ref": "#/definitions/ComposeRequest" + }, + "execute": { + "$ref": "#/definitions/Action" + }, + "kind": { + "const": "chain" + } + }, + "required": [ + "kind", + "composeRef" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "actions": { + "items": { + "$ref": "#/definitions/Action" + }, + "maxItems": 24, + "minItems": 1, + "type": "array" + }, + "kind": { + "const": "actions" + } + }, + "required": [ + "kind", + "actions" + ], + "type": "object" + } +] - changed
Input schema / descriptionPrevious value: -"JSON-Schema mirror of @pcc/spec DashboardManifestSchema (packages/spec/src/types/ui-artifact.ts). The small declarative dashboard a person's LLM emits; the pcc-ui kit renders it. Windows are a closed set rendered textContent-only. Actions never carry confirm:\"none\" (a human click is the confirm step). A manifest must NOT contain an API key (pcc_live_/pcc_test_) anywhere — a shared artifact travels with its contents."New value: +"JSON-Schema mirror of @pcc/spec DashboardManifestSchema (packages/spec/src/types/ui-artifact.ts). The small declarative dashboard a person's LLM emits; the pcc-ui kit renders it. Windows are a closed set rendered textContent-only. Actions never carry confirm:\"none\" (a human click is the confirm step). A manifest must NOT contain an API key (pcc_live_/pcc_test_) anywhere — a shared artifact travels with its contents. This mirror now carries the Zod RESOURCE CAPS (sections/windows/actions maxItems 24, list.limit max 200, meta maxItems 12, pollMs minimum 2000) so a generator validating only against this schema does not emit manifests the gateway then rejects. TWO Zod guards are not expressible as JSON-Schema validation and are enforced only by the gateway's Zod (the authoritative gate): the 256KB byte cap (MAX_MANIFEST_BYTES) and the recursive no-credential refine (containsApiKey — rejects a baked pcc key / Bearer / JWT, raw, percent-encoded, or base64). Validate against the Zod DashboardManifestSchema for the full gate." - added
Input schema / properties / sections / maxItemsAdded value: +24 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "manifest": { + "type": "object" + } + }, + "required": [ + "manifest" + ], + "type": "object" +}
- Changed
save_dashboard1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "manifest": { + "type": "object" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "required": [ + "manifest" + ], + "type": "object" +}
- Changed
search_dashboards1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "entries": { + "items": { + "additionalProperties": false, + "properties": { + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "total": { + "type": "number" + } + }, + "required": [ + "entries" + ], + "type": "object" +}
- Changed
update_dashboard1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "manifest": { + "type": "object" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + } + }, + "required": [ + "manifest" + ], + "type": "object" +}
255 tool updates
- First observed
activate_registration - First observed
advance_automation - First observed
analyze_machine_docs - First observed
approve_registration - First observed
approve_token - First observed
archive_encrypted_bundle - First observed
archive_evidence - First observed
attach_operator_channel - First observed
build_contract - First observed
calculate_price - First observed
calculate_roi - First observed
cancel_protocol_run - First observed
check_invite - First observed
check_support_replies - First observed
claim_bounty - First observed
claim_ip_revenue - First observed
claim_pool - First observed
close_pool - First observed
commit_evidence - First observed
convert_bounty_to_pool - First observed
create_capability - First observed
create_investment_pool - First observed
create_kernel - First observed
create_protocol - First observed
create_protocol_run - First observed
create_shipment - First observed
delete_operator_channel - First observed
deposit_bond - First observed
dispute_verification - First observed
distribute_royalties - First observed
emit_telemetry - First observed
execute_composition - First observed
file_escrow_dispute - First observed
fork_dashboard - First observed
fork_protocol - First observed
fund_escrow - First observed
get_active_telemetry - First observed
get_agent_anomalies - First observed
get_anomaly_stats - First observed
get_automation_status - First observed
get_bounty_leaderboard - First observed
get_build_options - First observed
get_bundle_ipfs - First observed
get_capability_ip - First observed
get_composition - First observed
get_dashboard - First observed
get_demand_supply - First observed
get_depin_stats - First observed
get_equipment_classes - First observed
get_escrow - First observed
get_escrow_chain_state - First observed
get_escrow_dispute - First observed
get_escrow_events - First observed
get_evidence_bundle - First observed
get_installations - First observed
get_ip_lineage - First observed
get_ip_revenue - First observed
get_job - First observed
get_job_telemetry - First observed
get_kernel - First observed
get_kernel_devices - First observed
get_kernel_jobs - First observed
get_kernel_sensors - First observed
get_lit_conditions - First observed
get_logistics_overview - First observed
get_marketplace_overview - First observed
get_operator_certs - First observed
get_operator_dashboard - First observed
get_operator_earnings - First observed
get_operator_machines - First observed
get_operator_status - First observed
get_pool - First observed
get_pool_earnings - First observed
get_popular_csd_templates - First observed
get_protocol - First observed
get_protocol_forks - First observed
get_protocol_run - First observed
get_registration - First observed
get_sensor_channels - First observed
get_settlement_epochs - First observed
get_settlement_status - First observed
get_shipment_quote - First observed
get_shipments - First observed
get_space - First observed
get_space_bookings - First observed
get_subnet_miners - First observed
get_subnet_status - First observed
get_telemetry_logs - First observed
get_telemetry_stats - First observed
get_token_allowance - First observed
get_token_balance - First observed
get_top_demand - First observed
get_transfer_graphs - First observed
get_unresolved_anomalies - First observed
get_verification_assignments - First observed
get_verification_status - First observed
get_workflow - First observed
get_workflows - First observed
get_write_status - First observed
grant_evidence_access - First observed
kernel_announce_capabilities - First observed
kernel_heartbeat - First observed
list_api_keys - First observed
list_automation_status - First observed
list_batches - First observed
list_bounties - First observed
list_capability_types - First observed
list_conversations - First observed
list_escrows - First observed
list_evidence - First observed
list_evidence_grants - First observed
list_jobs - First observed
list_kernels - First observed
list_operator_channels - First observed
list_pools - First observed
list_protocol_runs - First observed
list_protocols - First observed
list_registrations - First observed
list_transfer_agents - First observed
lit_decrypt - First observed
marketplace_categories - First observed
marketplace_create_listing - First observed
marketplace_delete_listing - First observed
marketplace_get_listing - First observed
marketplace_get_order - First observed
marketplace_list_listings - First observed
marketplace_list_orders - First observed
marketplace_place_order - First observed
marketplace_update_listing - First observed
match_spaces - First observed
mint_certificate - First observed
near_intent - First observed
near_intent_status - First observed
near_quote - First observed
near_status - First observed
onboard_machine - First observed
operator_heartbeat - First observed
operator_poll_jobs - First observed
operator_push_evidence - First observed
operator_update_job_status - First observed
pause_protocol_run - First observed
pay_ip_royalty - First observed
pcc_assign_node_operator - First observed
pcc_camera_latest - First observed
pcc_cancel_request - First observed
pcc_capture_anchor - First observed
pcc_capture_challenge - First observed
pcc_capture_class_registry - First observed
pcc_capture_status - First observed
pcc_capture_upload - First observed
pcc_chat_history - First observed
pcc_chat_send - First observed
pcc_contributor_list - First observed
pcc_contributor_register - First observed
pcc_create_scope - First observed
pcc_decompose_request - First observed
pcc_dht_announce - First observed
pcc_dht_metrics - First observed
pcc_dht_peers - First observed
pcc_dht_query - First observed
pcc_generate_ui - First observed
pcc_get_request - First observed
pcc_get_request_critical_path - First observed
pcc_get_request_dag - First observed
pcc_get_tool_manifest - First observed
pcc_get_tool_result - First observed
pcc_job_complete - First observed
pcc_job_settlement - First observed
pcc_list_requests - First observed
pcc_list_verdicts - First observed
pcc_onboard_session_build_agent - First observed
pcc_onboard_session_ingest_docs - First observed
pcc_onboard_session_live_data - First observed
pcc_onboard_session_scrape - First observed
pcc_onboard_session_start - First observed
pcc_onboard_session_status - First observed
pcc_oracle_status - First observed
pcc_oracle_verify - First observed
pcc_orchestrator_list_templates - First observed
pcc_orchestrator_match_capabilities - First observed
pcc_protocol_fee - First observed
pcc_publish_request - First observed
pcc_relay_generic_tool_call - First observed
pcc_relay_tool_call - First observed
pcc_report - First observed
pcc_revoke_scope - First observed
pcc_schedule_evaluate - First observed
pcc_schedule_get - First observed
pcc_schedule_publish - First observed
pcc_scope_audit - First observed
pcc_submit_paid_job - First observed
pcc_submit_request - First observed
pcc_training_manifest_get - First observed
pcc_training_manifest_set - First observed
pcc_trilobio_build_config - First observed
pcc_trilobio_capability_template - First observed
pcc_trilobio_validate_options - First observed
pcc_trilobio_validate_script - First observed
pcc_update_node_status - First observed
pcc_update_request - First observed
pcc_verifier_health - First observed
propose_composition - First observed
protocol_create_escrow - First observed
protocol_escrow_fees - First observed
protocol_fee - First observed
protocol_state - First observed
protocol_token_fees - First observed
prove_registration - First observed
provision_api_key - First observed
publish_protocol - First observed
raise_ip_dispute - First observed
record_episode - First observed
redeem_invite - First observed
register_capability_ip - First observed
register_job_evidence_ip - First observed
reject_registration - First observed
release_milestone - First observed
render_pcc_dashboard - First observed
reply_to_support_thread - First observed
report_anomaly - First observed
report_protocol_failure - First observed
resolve_anomaly - First observed
respond_to_verification - First observed
resume_protocol_run - First observed
retrieve_ipfs - First observed
revoke_api_key - First observed
save_dashboard - First observed
search_capabilities - First observed
search_dashboards - First observed
search_spaces - First observed
send_diagnostics - First observed
send_support_message - First observed
setup_detect - First observed
setup_generate_config - First observed
setup_register_device - First observed
setup_status - First observed
setup_test_job - First observed
setup_validate - First observed
stake_in_pool - First observed
start_protocol_run - First observed
submit_attestation - First observed
submit_demand - First observed
submit_evidence_hash - First observed
submit_feedback - First observed
submit_for_human_verification - First observed
suggest_csd_templates - First observed
system_telemetry - First observed
test_operator_channels - First observed
update_dashboard - First observed
update_job_status - First observed
update_operator_channel - First observed
update_protocol - First observed
validate_protocol - First observed
verify_bounty - First observed
verify_evidence_zk
Related MCP Connectors
Hire specialists by the hour — search, schedule, and pay via MCP protocol.
Agent-first task marketplace MCP — discover, claim, and deliver paid workspace tasks.
Public MCP for agent verification, work discovery and governed interoperability.
Find and call the right MCP server for any task - pay per use, no install.
Related MCP Servers
- AlicenseBqualityBmaintenanceHire specialists by the hour — search, schedule, and pay via MCP protocol.352MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that lets AI agents dispatch physical tasks to robot executors and track the task -> proof -> verify -> settle workflow, enabling task creation, executor discovery, proof submission, and verification status checks.MIT
- AlicenseAqualityAmaintenanceYour AI finds the right people for you. Agent-to-agent networking via MCP. Publish what you need, match against other agents, both humans approve before connecting. Ed25519 signed, hosted API.7115 npm7Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables MCP-capable agents to join Guildbook, search for members by capability, connect, message, post, and consult a free house C-suite and professional challengers.61 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.