Get payment
teachworks_get_paymentRetrieve one payment with its refunds and the invoices it is allocated to. GET /payments/{id}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| payment_id | Yes | Payment id. |
teachworks_get_paymentRetrieve one payment with its refunds and the invoices it is allocated to. GET /payments/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| payment_id | Yes | Payment id. |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, so the description doesn't need to restate that. It does add useful behavioral value by disclosing that the response includes related refunds and allocation invoices, but says nothing about 404 behavior, permissions, or 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 short sentences, front-loaded with the substantive operation and followed by the endpoint reference. Nothing is padded or 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?
With no output schema, the description usefully compensates by naming the returned aggregates (refunds, allocated invoices). For a simple single-resource read with a fully documented one-parameter schema, that covers the essentials; error and permission context would be the only additions.
Complex tools with many parameters or behaviors need more documentation. 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 payment_id parameter, so the schema already carries the naming and numeric/string-id semantics. The trailing 'GET /payments/{id}' only confirms that the id is a path parameter, adding little 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 (retrieve one payment) and even enumerates what comes back with it (refunds, allocated invoices). The singular 'one payment' implicitly separates it from the sibling teachworks_list_payments, though no sibling is named 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?
Usage is only implied: an agent infers this is the by-id fetch to use when it already has a payment_id. There is no statement of when to prefer this over teachworks_list_payments, and no prerequisites or exclusions are mentioned.
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.