MCP server for the negotiate.v1 protocol — gives AI agents native tools to negotiate at any negotiate.v1-compliant storefront.
Server exposes 5 tools with complete input schemas and descriptions. All tools follow verb_noun naming (discover_store, list_products, start_negotiation, send_message, read_history). Descriptions are present and actionable (avg ~60 chars), exceeding the 20-char minimum. However, output schemas are not documented in the source code, LLMs cannot infer what fields to expect from responses. Parameter descriptions are minimal (domain, product_id, next_url, message, history_url lack detail about format, constraints, or dependencies). No error handling guidance visible. No pagination support despite tools that could return large lists (list_products). Risk annotations (READ_ONLY, WRITE) are present but not mapped to tool annotations in the MCP schema.
probe and validate a store's protocol descriptor
enumerate negotiable products at a store
read the running history of a session
send one shopper turn
open a chat session with the merchant
Output schemas not documented. LLMs cannot infer response structure (fields, types, nesting). Forces agents to guess what data is available for downstream tool calls.
Parameter descriptions lack format/constraint details. 'domain' does not specify format (FQDN? IP?). 'product_id' lacks type hint. 'message' has no length limit or encoding guidance. Minimal descriptions (10-20 chars) force LLMs to infer intent.
No pagination support for list_products despite potential for large result sets. No limit, offset, or cursor parameters. No guidance on result count limits. Risks context window exhaustion.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Risk annotations (READ_ONLY, WRITE) present in metadata but not mapped to MCP tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot determine which tools are safe to retry.
No error handling guidance visible in tool descriptions. No recovery hints (e.g., 'If store not found, try discover_store first'). Agents cannot self-correct on failures.