Skip to main content
Glama

Server Details

MCP server for EasyPost — rate shipments, buy & refund labels, track packages, verify addresses.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4/5 across 11 of 11 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a distinct purpose: address operations, shipment lifecycle (create, buy, refund, get, list), and tracking. No overlap or ambiguity.

Naming Consistency5/5

All tools follow a consistent `easypost_<verb>_<resource>` pattern using snake_case, with clear verbs like create, get, list, buy, refund, verify.

Tool Count5/5

11 tools cover the essential operations for address management, shipment lifecycle, and tracking without being too many or too few.

Completeness4/5

Core workflows (rate, buy, refund, track, address verification) are complete. Minor gaps like missing delete for addresses or update for shipments are acceptable for the domain.

Available Tools

11 tools
easypost_buy_shipmentBuy a shipping labelA
Destructive
Inspect

PURCHASE a shipping label for a shipment at a chosen rate. WARNING: this CHARGES the EasyPost account balance and is irreversible except by requesting a refund (easypost_refund_shipment). Pick a rate_id from the rates returned by easypost_create_shipment or easypost_get_shipment. API: POST /shipments/{id}/buy (body { rate: { id }, insurance? }).

ParametersJSON Schema
NameRequiredDescriptionDefault
rate_idYesRate id to purchase (from create_shipment / get_shipment rates).
insuranceNoDollar amount to insure the shipment for, e.g. "249.99".
shipment_idYesShipment id to buy, e.g. shp_...
Behavior4/5

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

Annotations already indicate destructiveHint=true. Description adds that it charges account balance and is irreversible except via refund. This goes beyond annotations by specifying financial impact.

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

Conciseness5/5

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

Three efficient sentences. Front-loaded with purpose and warning, followed by usage instruction and API detail. No wasted words.

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

Completeness3/5

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

No output schema, but description doesn't mention return value. For a purchase tool, a typical response (e.g., label object) is not described. Adequate but could be improved.

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

Parameters3/5

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

Schema has 100% coverage with descriptions for each parameter. Description adds context for rate_id (source) and insurance (example format), but adds limited value beyond schema.

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

Purpose5/5

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

Clearly states it purchases a shipping label using a chosen rate. Verb 'PURCHASE' and resource 'shipping label' are specific. Differentiates from sibling tools like easypost_create_shipment (creates shipment without purchase) and easypost_refund_shipment (refund).

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

Usage Guidelines4/5

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

Explicitly tells when to use: after getting rates from easypost_create_shipment or easypost_get_shipment. Mentions alternative for refunds. Does not explicitly state when not to use, but context is clear.

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

easypost_create_shipmentCreate a shipment (get rates)AInspect

Create a shipment from a to_address, from_address, and parcel, returning the available RATES from all enabled carriers. This only RATES the shipment — it does NOT purchase a label and does NOT charge the account; buying is a separate step (easypost_buy_shipment). API: POST /shipments (body { shipment }).

ParametersJSON Schema
NameRequiredDescriptionDefault
parcelYesPackage dimensions and weight.
referenceNoYour internal reference string for the shipment.
to_addressYesDestination address.
from_addressYesOrigin/return address.
carrier_accountsNoRestrict rating to these carrier_account ids.
Behavior4/5

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

Annotations already indicate non-destructive (readOnlyHint=false, destructiveHint=false). Description adds confirmation by stating no purchase/charge, and mentions the API endpoint. No contradictions.

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

Conciseness5/5

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

Two sentences, no filler. Front-loaded with purpose, followed by critical usage constraint. Each sentence adds value.

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

Completeness5/5

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

Tool has 5 params fully documented in schema; no output schema but description says returns rates. Includes API endpoint for reference. Complete for this complexity level.

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

Parameters3/5

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

Schema coverage is 100%, so the schema documents all parameters. The description adds little beyond listing the three main objects; baseline 3 is appropriate.

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

Purpose5/5

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

The description states 'Create a shipment... returning the available RATES from all enabled carriers' and emphasizes it only rates, not purchases, clearly distinguishing from easypost_buy_shipment.

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

Usage Guidelines5/5

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

Explicitly says 'This only RATES the shipment — it does NOT purchase a label... buying is a separate step (easypost_buy_shipment)', providing clear when and when-not to use.

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

easypost_create_trackerCreate a trackerAInspect

Start tracking a package by its carrier tracking code. Returns the tracker with current status. No charge. API: POST /trackers (body { tracker }).

ParametersJSON Schema
NameRequiredDescriptionDefault
carrierNoCarrier name, e.g. USPS, UPS, FedEx (helps disambiguate).
tracking_codeYesThe carrier tracking code to track.
Behavior4/5

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

Beyond annotations (readOnlyHint=false, destructiveHint=false), description adds 'No charge', 'Returns the tracker with current status', and the API endpoint. It does not disclose behavior when tracking code already exists, but overall adds meaningful context.

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

Conciseness5/5

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

Three sentences, zero waste. Front-loaded with the most important action and result. Efficient and clear.

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

Completeness4/5

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

For a simple creation tool with 2 parameters and no output schema, the description covers purpose, behavior, API, no charge, and return value. It lacks error handling details, but is largely complete given the complexity level.

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

Parameters3/5

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

Schema coverage is 100%, so the description does not need to add much. It mentions 'by its carrier tracking code' but adds no new semantics beyond the schema's descriptions.

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

Purpose5/5

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

The description clearly states the verb 'Start tracking' and resource 'a package by its carrier tracking code'. It also explicitly mentions the return value and distinguishes from sibling tools like easypost_get_tracker and easypost_list_trackers.

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

Usage Guidelines4/5

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

The description implies when to use (to start tracking) but does not explicitly state when not to use, such as if the tracker already exists (use get_tracker instead). Sibling tool names provide context but no direct exclusion guidance.

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

easypost_get_addressGet an addressA
Read-only
Inspect

Retrieve a single address by id, including verification details. API: GET /addresses/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAddress id, e.g. adr_...
Behavior3/5

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

The description adds context beyond the readOnlyHint annotation by stating 'including verification details', which is a behavioral trait. However, it does not disclose potential errors, rate limits, or authentication requirements. The annotation already declares read-only, so the description's additional detail is adequate but not extensive.

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

Conciseness5/5

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

The description is extremely concise with one sentence plus an API endpoint reference. Every word serves a purpose, and there is no fluff. It is front-loaded with the key action.

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

Completeness4/5

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

Given the simplicity (one parameter, no output schema, readOnlyHint annotation), the description covers the essential information: what it does, input parameter, and API endpoint. It could mention the return format (single address object) but that is implicit. Overall complete for this context.

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

Parameters3/5

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

Schema coverage is 100% with one parameter 'id' described as 'Address id, e.g. adr_...'. The description adds minimal value by saying 'by id', which is already implied. The baseline is 3 due to high schema coverage, and the description does not significantly enhance parameter understanding.

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

Purpose5/5

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

The description clearly states the action ('retrieve a single address by id'), the specific resource (address), and adds that it includes verification details. This distinguishes it from sibling tools like 'easypost_list_addresses' (multiple addresses) and 'easypost_verify_address' (verification only).

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

Usage Guidelines3/5

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

The description implies usage for retrieving a single address by ID, but does not explicitly state when to use this tool versus alternatives (e.g., for verification, use 'verify_address'; for listing, use 'list_addresses'). No exclusions or prerequisites are mentioned.

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

easypost_get_shipmentGet a shipmentA
Read-only
Inspect

Retrieve a single shipment by id, including its available rates, tracking_code, and postage_label (if purchased). API: GET /shipments/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesShipment id, e.g. shp_...
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description adds value by specifying returned fields (rates, tracking_code, postage_label) and the API endpoint. It offers additional context beyond the annotation without contradiction.

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

Conciseness5/5

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

The description is two sentences: one functional sentence listing what is returned, and one API reference. No wasted words; front-loaded with the core action.

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

Completeness4/5

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

For a simple one-parameter get operation without output schema, the description covers return fields adequately. Missing details like error handling or pagination are not critical here.

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

Parameters3/5

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

Schema coverage is 100% and already describes the 'id' parameter. The description adds no new meaning beyond stating 'by id', which matches the schema. Baseline 3 applies.

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

Purpose5/5

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

The description clearly states it retrieves a single shipment by id and lists specific included fields (rates, tracking_code, postage_label). This verb+resource combination distinguishes it from sibling tools like create, buy, list, etc.

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

Usage Guidelines3/5

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

The description implies using this tool when you need details of a specific shipment, but it does not explicitly state when to avoid it or mention alternatives like easypost_list_shipments for multiple shipments.

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

easypost_get_trackerGet a trackerA
Read-only
Inspect

Retrieve a single tracker by id, including current status and tracking_details history. API: GET /trackers/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTracker id, e.g. trk_...
Behavior3/5

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

Annotations declare readOnlyHint=true, confirming read-only operation. Description adds API endpoint but no additional behavioral traits (e.g., error handling, authentication, rate limits). With annotations, bar is lowered; description adds minimal context.

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

Conciseness5/5

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

Two concise sentences, each with clear purpose: first states action and output, second provides API reference. No redundant words.

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

Completeness3/5

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

Tool has one parameter and annotations, but no output schema. Description does not elaborate on response structure, error cases, or pagination. Adequate for a simple retrieval but could include typical failure modes.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'id', already described with example format. Description only reiterates 'by id', adding no new meaning beyond schema.

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

Purpose5/5

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

Description specifies verb 'Retrieve', resource 'tracker by id', and includes output details ('current status and tracking_details history'). Clearly distinguishes from listing or creating trackers.

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

Usage Guidelines3/5

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

Description implies use when a specific tracker id is known, but does not mention when to prefer this over list_trackers or create_tracker, nor any exclusions or alternatives.

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

easypost_list_addressesList addressesA
Read-only
Inspect

List saved addresses on the account, with pagination. API: GET /addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
after_idNoReturn records created after this address id.
before_idNoReturn records created before this address id.
page_sizeNoResults per page (max 100).
Behavior3/5

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

The annotations already declare readOnlyHint=true, so the agent knows it's a safe read. The description adds that the tool supports pagination and references the underlying API, which provides some behavioral context but does not disclose other traits like rate limits 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.

Conciseness5/5

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

The description is a single sentence that conveys the core functionality and API reference, with no extraneous words. It is front-loaded and efficiently provides all necessary information.

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

Completeness4/5

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

For a simple read-only listing tool with good annotations and schema, the description is complete enough. It covers the key aspects: what the tool lists, pagination support, and the API method. The lack of output schema is not the description's responsibility.

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

Parameters3/5

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

Schema coverage is 100%, with each parameter (after_id, before_id, page_size) fully described in the input schema. The description does not add any additional meaning or constraints beyond what the schema already provides, so baseline score 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: listing saved addresses on the account, which is specific and distinguishable from sibling tools like easypost_get_address or easypost_verify_address. The inclusion of 'with pagination' adds further clarity on the operation's scope.

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

Usage Guidelines4/5

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

The description implies usage for retrieving all saved addresses, which contrasts with other address tools (e.g., get_address for a single address). However, it does not explicitly state when not to use it or provide alternatives, but for a simple list operation, the context is sufficiently clear.

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

easypost_list_shipmentsList shipmentsA
Read-only
Inspect

List shipments on the account, most recent first, with pagination and optional filters. API: GET /shipments.

ParametersJSON Schema
NameRequiredDescriptionDefault
after_idNoReturn records created after this shipment id.
before_idNoReturn records created before this shipment id.
page_sizeNoResults per page (max 100).
purchasedNoFilter to only purchased (true) or unpurchased (false) shipments.
end_datetimeNoISO 8601 upper bound on created_at.
start_datetimeNoISO 8601 lower bound on created_at.
Behavior3/5

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

Annotations already declare readOnlyHint=true indicating safe read operation. Description adds ordering ('most recent first') and mentions API endpoint, but does not disclose other behavioral details like rate limits or response format.

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

Conciseness5/5

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

Two short sentences that front-load the main action and key features. Every word is meaningful with no redundancy.

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

Completeness3/5

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

No output schema, and description does not explain what the response contains (e.g., list of shipment objects). While simple, it could be more complete by mentioning return structure or pagination mechanics.

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

Parameters3/5

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

All 6 parameters have descriptions in the input schema (100% coverage). The description does not add any additional meaning or context beyond what the schema already provides, so baseline score applies.

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

Purpose5/5

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

Description clearly states 'List shipments' with specific ordering 'most recent first' and features like pagination and filters. It distinguishes from sibling tools like easypost_buy_shipment or easypost_get_shipment by focusing on listing with pagination.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like easypost_get_shipment for individual retrieval or easypost_create_shipment for creation. Does not mention any prerequisites or exclusions.

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

easypost_list_trackersList trackersA
Read-only
Inspect

List package trackers, optionally filtered by tracking_code or carrier. API: GET /trackers.

ParametersJSON Schema
NameRequiredDescriptionDefault
carrierNoFilter by carrier name, e.g. USPS, UPS, FedEx.
page_sizeNoResults per page (max 100).
tracking_codeNoFilter by carrier tracking code.
Behavior3/5

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

Annotations already indicate readOnlyHint=true; description adds the API endpoint (GET /trackers) for context but lacks details on pagination, rate limits, or auth.

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

Conciseness5/5

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

One concise sentence with an API reference; no unnecessary words.

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

Completeness3/5

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

Describes the primary function and filter options but omits pagination behavior (despite page_size parameter) and expected response format.

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

Parameters3/5

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

Schema coverage is 100% with parameter descriptions; the description only reiterates the filtering capability without adding new meaning.

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

Purpose5/5

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

The description clearly states 'List package trackers' with optional filters, distinguishing it from sibling tools like get_tracker or create_tracker.

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

Usage Guidelines3/5

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

Mentions optional filters but does not explicitly guide when to use this tool versus alternatives (e.g., single tracker retrieval). Sibling context is available but not leveraged.

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

easypost_refund_shipmentRefund / void a labelA
Destructive
Inspect

Request a refund (void) of a purchased shipping label. WARNING: reverses a purchase; approval depends on the carrier and label age. API: POST /shipments/{id}/refund.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesShipment id to refund, e.g. shp_...
Behavior4/5

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

Annotations already indicate destructiveHint=true. The description adds behavioral context beyond annotations by specifying that approval depends on carrier and label age, which is crucial for usage.

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

Conciseness5/5

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

Two concise sentences: first states purpose, second adds warning and API reference. No unnecessary words.

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

Completeness4/5

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

Given simple tool with one parameter and no output schema, the description covers purpose, key behavioral caveats. However, missing information about return value or response format would be beneficial.

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

Parameters3/5

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

Only one parameter 'id' with schema description 'Shipment id to refund, e.g. shp_...'. Schema coverage is 100%, so baseline 3. Description does not add extra parameter information beyond what schema provides.

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

Purpose5/5

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

Explicitly states 'Request a refund (void) of a purchased shipping label.' The verb 'request' and resource 'purchased shipping label' are specific and distinct from siblings like buy or create.

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

Usage Guidelines4/5

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

Provides context: warning about reversing a purchase, carrier approval, and label age dependency. Does not explicitly list when not to use, but the warning implies conditions for success.

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

easypost_verify_addressVerify an addressAInspect

Create and verify a US or international address, returning deliverability and normalized/corrected fields. No charge. API: POST /addresses (body { address, verify: ["delivery"] }).

ParametersJSON Schema
NameRequiredDescriptionDefault
zipYesPostal/ZIP code
cityNo
nameNo
emailNo
phoneNo
stateNo2-letter state/province code
companyNo
countryNo2-letter ISO country code, default US
street1YesStreet address line 1
street2No
Behavior4/5

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

The description adds value beyond annotations by stating it creates and verifies (write operation), returns deliverability info, and specifies the API path. It does not contradict annotations and provides useful 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.

Conciseness5/5

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

Three sentences, each serving a purpose: what it does, cost, API details. Front-loaded with key information, no unnecessary words.

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

Completeness4/5

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

Given no output schema, the description provides essential return fields (deliverability, normalized). It covers the main use case but omits error handling or edge cases. Sufficient for a relatively simple tool.

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

Parameters2/5

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

Schema description coverage is low (40%), and the description does not elaborate on individual parameters beyond the schema. The mention of the API body structure is helpful but insufficient to compensate for the lack of parameter-level details.

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

Purpose5/5

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

The description clearly states the tool creates and verifies an address, specifies the target (US or international), and mentions the return of deliverability and normalized fields. It effectively distinguishes from siblings like get_address or create_shipment.

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

Usage Guidelines3/5

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

While it notes 'No charge', it lacks explicit guidance on when to use this tool versus alternatives (e.g., when to use get_address for existing addresses). No exclusions or prerequisites are provided.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.