GunBroker MCP Pack — wraps the GunBroker firearms-marketplace API.
Three tools with complete input schemas and descriptions. Naming follows verb_noun pattern (search_, get_, list_). Descriptions are adequate (100-200 chars) but lack actionable context for LLM selection. Critical issue: credentials (username, password) exposed as tool parameters in gunbroker_seller_orders, violating secret-injection pattern. Output schemas undocumented. No error recovery guidance. Parameters lack enums, ranges, and format constraints.
Get full details for a single GunBroker listing by item ID — title, description, prices, seller, shipping, condition, category, and time remaining. Public — needs only a GunBroker developer key (_apiKey).
Search active GunBroker firearms-marketplace listings by keyword (e.g. "Glock 19", "AR-15 lower", "Henri 22 rifle"). Returns matching live listings with item IDs, titles, current/buy-now prices, bid counts, and time left. Public — needs only a GunBroker developer key (_apiKey). Supports pagination and sort.
List the authenticated seller's sold orders (GunBroker /OrdersSold) — order IDs, buyers, item titles, totals, payment and shipping status. Seller tool: needs a GunBroker developer key (_apiKey) PLUS the seller's GunBroker username and password, which are exchanged for a short-lived access token on each call.
Credentials exposed as parameters: username and password in gunbroker_seller_orders are passed as tool parameters, violating secret-injection pattern. Agent traces will log plaintext credentials.
Output schemas undocumented. Tool descriptions do not specify what fields are returned (e.g., gunbroker_search_items returns 'item IDs, titles, prices, bid counts, time left' but no structured schema definition for LLM planning).
No error recovery guidance. Error handling throws generic messages ('GunBroker: 401 ...') without actionable next steps. LLM cannot determine if error is retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Parameters lack constraints. PageSize, PageIndex, Sort, TimeFrame have no enums, ranges, or format descriptions. LLM may pass invalid values (e.g., PageSize=999999, Sort=99).
Descriptions lack dependency hints and selection context. 'Search active GunBroker listings' does not explain when to use this vs get_item, or that Keywords is required for meaningful results.