agreement_get
Read a locked agreement you are part of: the exact terms both sides approved, when, the signature, and everything that happened after it, such as payments.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| agreement_id | Yes |
Read a locked agreement you are part of: the exact terms both sides approved, when, the signature, and everything that happened after it, such as payments.
| Name | Required | Description | Default |
|---|---|---|---|
| agreement_id | Yes |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It conveys that the operation is read-only, requires the agreement to be locked, and restricts access to participants ('you are part of'). It also previews the returned history. It does not detail failure modes or exact permission checks, but it is substantially transparent for a getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one dense, front-loaded sentence with no filler. It names the action, the target, the eligibility condition, and the expected returned data without restating the tool name or 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 tool with one required parameter and no output schema, the description adequately explains both the input context and the return contents. It could add error behavior or explicitly route to siblings for non-locked agreements, but those are minor gaps for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines agreement_id as a string with 0% description coverage, and the description does not explicitly state that agreement_id identifies the agreement to read. However, the single parameter is self-explanatory, and the phrase 'a locked agreement' clarifies what kind of object the ID refers to. This is minimally acceptable but does not fully compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Read a locked agreement you are part of.' It also enumerates the returned content (terms, approval time, signature, post-agreement events like payments), making the tool's purpose unmistakable and distinguishing it from negotiation_get (pre-lock agreements) and agreement_verify (which implies validation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'locked agreement you are part of' provides clear context for when to use the tool: only for finalized agreements where the caller is a participant. It does not explicitly name alternatives or state when not to use it, but the implied selection context is strong enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.