MCP Server for agent commerce — how AI agents create, compare, and track purchases
Server has 5 tools with basic schemas and descriptions, but significant gaps prevent production use. All tools have descriptions (positive), but most are in German and lack LLM-optimized structure. Schemas are present but incomplete: parameters lack type constraints (enums, ranges), output schemas are undocumented, and error handling is absent. Tool naming follows verb_noun convention (good), but parameter descriptions are sparse. No security controls visible (credentials, permissions, audit trails). Composition is reasonable (single responsibility per tool), but chaining support is weak, tools don't consistently return IDs needed by downstream calls.
Angebote für eine Kaufabsicht vergleichen. Nimmt eine Liste von Angeboten entgegen, speichert sie und gibt eine Vergleichsübersicht zurück.
Strukturierte Kaufabsicht erstellen. Erstellt einen neuen Kaufvorgang, der dann mit Angeboten verglichen und weiterverfolgt werden kann.
Kaufhistorie auflisten.
Status eines Kaufvorgangs abrufen oder aktualisieren. Mögliche Status: intent, comparing, ordered, shipped, delivered, cancelled.
Händler-Zuverlässigkeit prüfen oder Erfahrung melden. Ohne successful_order: Zeigt aktuellen Score. Mit successful_order: Aktualisiert den Score basierend auf einer neuen Erfahrung.
Output schemas completely undocumented. No tool declares what fields it returns, forcing LLMs to guess structure and plan downstream calls blindly.
Parameter descriptions lack actionable constraints. 'status' in track_purchase lists valid values in description text, not as enum. 'budget_max' has no range guidance. LLMs cannot validate inputs without formal constraints.
No error handling or recovery guidance. Tools return success/failure with no actionable next steps. If compare_offers fails, LLM has no guidance on retry, user input, or alternatives.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Tool descriptions in German without English fallback. LLMs trained primarily on English may misinterpret intent. Descriptions also lack WHEN/WHY context, e.g., compare_offers doesn't explain when to call it vs track_purchase.
No security controls visible. No permission gates, audit logging, or secret injection pattern. Database credentials and API keys (if any) may be exposed in environment or code.