get_opportunity
Fetch one escrowed paid trial by its numeric ID, including its escrow status, milestone progress, and the credential hash it is bound to.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Fetch one escrowed paid trial by its numeric ID, including its escrow status, milestone progress, and the credential hash it is bound to.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the kind of data returned (escrow status, milestone progress, credential hash), which adds value. However, it does not explicitly state that the operation is read-only (though 'fetch' implies), nor does it mention what happens on invalid or missing IDs, error handling, or any prerequisites or side effects. The description gives some behavioral context but not full 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?
The description is a single, tight sentence that front-loads the main action (fetch) and immediately enumerates the key return fields. No filler words, no redundant information. It is highly efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one integer parameter and no output schema, the description covers the essential details: what it does and what it returns. It is missing potential error scenarios (e.g., ID not found) and any prerequisite conditions, but for a basic fetch operation it is reasonably complete. Given no annotations and no output schema, it could be slightly richer, but it does not leave the agent guessing about the core use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds context by calling the ID 'numeric' and specifying it refers to an 'escrowed paid trial', which gives semantic meaning beyond the bare integer type. However, it does not explain the ID's source, format, or any constraints beyond the schema's min/max. It provides some added meaning but not comprehensive compensation for the lack of 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 uses a specific verb ('Fetch'), identifies the exact resource ('one escrowed paid trial'), and lists the specific data returned (escrow status, milestone progress, credential hash). It clearly distinguishes from siblings like list_opportunities (which lists) and get_contract_info (which is about contracts). The purpose is unambiguous and precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use this tool to fetch a single escrowed paid trial by its numeric ID. It implies that you need an ID and that this is the tool for detailed view of a specific opportunity. While it does not explicitly mention alternatives or exclusions, the sibling list and the wording make the usage pattern obvious. Lacks explicit 'when not to use' guidance but is not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Each tool targets a distinct concern: contract metadata, issuer lookup, individual opportunity by ID, opportunity listing, event feed, and credential verification. There is no overlap or ambiguity between them, and get_opportunity vs list_opportunities is clearly differentiated by purpose.
Most tools follow a consistent verb_noun pattern (get_contract_info, get_issuer, get_opportunity, verify_credential), and list_opportunities also conforms. However, recent_events deviates from that pattern by using an adjective+noun structure instead of a verb, which is a minor inconsistency.
With 6 tools, the server is well-scoped for its purpose of querying the Stellaroid Earn contract. Each tool serves a distinct read-only function, and the count fits comfortably within the ideal range without being too sparse or excessive.
For a read-only query server, the tool surface covers all major entity types: contract info, issuers, opportunities (single and list), events, and credential verification. A minor gap is the lack of a list-issuers tool, but this does not critically hinder agent workflows given the existing lookup by address.