Skip to main content
Glama

@payretailers/mcp

Offizieller Model Context Protocol (MCP)-Server für die PayRetailers Payments API.

Verwandeln Sie jeden MCP-kompatiblen KI-Assistenten in einen PayRetailers-Integrationsexperten. Dieser Server stellt die offiziellen Guides, taktischen Skills, die Endpunkt-Referenz und Integrationstools (Suche, länderspezifische Validierung, Webhook-Playbook) als erstklassige MCP-Ressourcen, -Tools und -Prompts bereit.

Funktioniert mit Cursor, Claude Desktop, Claude Code, Windsurf, Antigravity, Zed, VS Code + Copilot, JetBrains IDEs, Continue.dev, Cline und jedem anderen Client, der MCP über stdio spricht.


Warum es verwenden?

Wenn Sie diesen Server installieren, hört Ihr KI-Assistent auf, über PayRetailers zu raten, und konsultiert bei jedem Schritt die Quelle der Wahrheit.

  • Korrekter Code auf Anhieb. Der Assistent liest die echte OpenAPI-Struktur für jeden Endpunkt (get_endpoint_spec), sodass generierter Code die tatsächlichen Feldnamen, Typen und erforderlichen Kombinationen verwendet – nicht etwas, das von einem anderen PSP übernommen wurde.

  • Von Anfang an länderspezifisch. Fragen Sie nach einem PIX-Payin und der Assistent weiß, dass PIX nur in Brasilien gilt, BRL erwartet, eine gültige 11-stellige CPF benötigt und dass das QR schnell abläuft. Fragen Sie nach SPEI und er weiß, dass Mexiko eine CURP oder RFC, MXN und dass CLABE asynchron bereitgestellt wird. Alles unterstützt durch get_country_rules.

  • Payloads werden validiert, bevor sie die Sandbox erreichen. validate_payload führt eine echte Prüfsummenvalidierung für CPF, CNPJ, RUT, DNI, RUC, CC, NIT, CURP, RFC, CLABE durch – plus übergreifende Regeln (ganzzahlige Nebenwährungen, HTTPS-Benachrichtigungs-URLs, Währungs-/Länderabgleich, Methoden-/Länderkompatibilität, Idempotenzschlüssel, Matrix der erforderlichen Kundendaten, Form von Abonnement-AmountModel, PIX Automático-Wiederholungsvertrag). Sie finden Fehler in Ihrem Editor, nicht in einer 400 INVALID_MODEL_SCHEMA-Antwort.

  • Webhook-Empfänger korrekt entworfen. get_webhook_playbook liefert das kanonische Ereignisvokabular, Wiederholungsrichtlinien und den Signatur-/Replay-Vertrag. validate_webhook_handler erkennt die sechs schädlichsten Anti-Patterns (Ack-nach-Verarbeitung, fehlende eventId-Deduplizierung, Geschäftsfehler-als-500, deaktivierte Signatur in Produktion, Annahmen über die Wanduhr-Reihenfolge, fehlendes HTTPS) bevor Sie eine einzige Zeile Empfängercode schreiben.

  • Slash-Command-Prompts für die schwierigen Abläufe. Geben Sie /integrate-pix-payin, /integrate-subscriptions, /implement-webhook-handler, /integrate-payout-fx, /build-checkout, /debug-401-auth oder /reconcile-with-graphql ein und erhalten Sie eine produktionsreife Implementierung in dem Stack Ihrer Wahl.

  • Null-Konfiguration, null-Netzwerk, offline-freundlich. Alles ist im Release-Zip gebündelt. Kein Konto, kein API-Schlüssel, keine ausgehenden Aufrufe, nur um eine Frage zu den Dokumenten zu beantworten. Anmeldedaten werden nur für das (geplante) simulate_transaction-Tool benötigt.

Unter der Haube haben Sie 7 Tools, 7 Prompts, 158 Dokumentationsressourcen (Guides + Skills + Reference + Recipes + Konzeptdokumente), alle wortwörtlich aus dem payretailers-ai-docs-Repository gespiegelt.


Related MCP server: Payments Developer Portal MCP Server

Was es bereitstellt

Ressourcen

Strukturierter, LLM-freundlicher Zugriff auf die PayRetailers-Dokumentation.

URI pattern

Was zurückgegeben wird

payretailers://guide/{slug}

Ein End-to-End-Integrationsleitfaden mit Architektur, Sequenzdiagrammen, Implementierungsschritten und Produktionscheckliste.

payretailers://skill/{slug}

Ein aufgabenorientierter Workflow, der mehrere Endpunkte kombiniert (z. B. brazil-pix-payin, payout-fx-quote-flow).

payretailers://reference/{slug}

Eine einzelne API-Referenzseite (Parameter, Antwort, Fehlercodes).

payretailers://recipe/{slug}

Ein kurzes Code-Rezept für eine häufige Operation.

payretailers://doc/{slug}

Eine Konzept-/Dokumentationsseite (subscription-concepts, webhooks-and-notifications, retry-policies, automatic-scheduling, clabe-per-customer, ...).

Die vollständige Liste wird zur Verbindungszeit dynamisch bekannt gegeben – Clients können sie über ihren Ressourcen-Picker durchsuchen.

Tools

Tool

Was es tut

Phase

search_docs

Volltextsuche über Guides, Skills, Reference, Recipes und Konzeptdokumente mit Fuzzy-Matching und gewichteten Titel-/Slug-Feldern.

✅ 0.1

get_country_rules

Gibt die Kundendaten, das personalId-Format (CPF, DNI, CURP, CC, RUT, ...), Währungen und Zahlungsmethoden-Einschränkungen für ein Land + Methode zurück.

✅ 0.2

get_test_data

Gibt Sandbox-Testdaten (Kunden, Karten, PIX-Schlüssel, Bre-B-Schlüssel) für ein bestimmtes Land zurück.

✅ 0.2

get_endpoint_spec

Gibt die vollständige Referenzseite (Parameter, Antwort, Fehlercodes) für einen bestimmten Endpunkt per Slug zurück.

✅ 0.2

validate_payload

Validiert eine Payload gegen länderspezifische Regeln mit echter Prüfsummenvalidierung für CPF, CNPJ, RUT, DNI, RUC, CC, NIT, CURP, RFC, CLABE. Validiert auch Abonnementprodukte, Abonnements und Abonnementzahlungen (Abrechnungszyklus, PIX_SPECIFIC-Wiederholungsrichtlinie, Unveränderlichkeit). Erkennt nicht-ganzzahlige Nebenwährungen, falsche Währung für das Land, Nicht-HTTPS-Webhooks, Methoden-/Länderkonflikte, fehlende Idempotenzschlüssel und mehr.

✅ 0.3 / 0.4

get_webhook_playbook

Kanonischer PayRetailers-Webhook-Vertrag: Envelope-Schema, vollständiges Ereignisvokabular (Transaktionen, Auszahlungen, Abonnements, Abonnementzahlungen), Wiederholungsrichtlinien, Signatur-/Replay-Anleitung, die 6 häufigsten Fehler.

✅ 0.4

validate_webhook_handler

Analysiert eine deklarative Beschreibung eines Webhook-Empfänger-Designs und gibt maschinenlesbares {errors, warnings, info} zurück. Erkennt Ack-nach-Verarbeitung, fehlende Idempotenz, Geschäftsfehler-als-500, Annahmen über die Wanduhr-Reihenfolge, deaktivierte Signatur in Produktion.

✅ 0.4

simulate_transaction

Führt eine echte Anfrage gegen die PayRetailers-Sandbox mit den Umgebungsanmeldedaten des Entwicklers aus.

🚧 planned

Prompts

Prompt

Was es auslöst

Phase

integrate-pix-payin

Generiert eine vollständige Brasilien-PIX-Payin-Integration in der Sprache Ihrer Wahl.

✅ 0.1

integrate-payout-fx

Cross-Currency-Auszahlung mit 5-Minuten-FX-Quote-TTL-Handling.

✅ 0.2

build-checkout

Länderspezifischer Checkout: Frontend-Auswahl + Backend-Endpunkt + Webhook-Empfänger.

✅ 0.2

debug-401-auth

Diagnose von HTTP 401/403 (Abonnementschlüssel, Basic Auth, IP-Whitelist, Umgebungsverwechslung).

✅ 0.2

reconcile-with-graphql

Erstellt eine Abgleich-Pipeline mit der Merchant Data GraphQL API.

✅ 0.2

implement-webhook-handler

Generiert einen produktionsreifen Webhook-Empfänger für den gewünschten Stack, Umfang und Queue-Backend. Erzwingt die vier nicht verhandelbaren Punkte (schnelles 200, Deduplizierung per eventId, strikte Signatur, niemals vor Endstatus bestätigen).

✅ 0.4

integrate-subscriptions

Generiert eine vollständige Abonnement-Integration für das angegebene Land + Kanal (Produkt + Aktivierung + Abonnement + Belastung + Wiederholung + Stornierung).

✅ 0.4


Installation

Zwei unterstützte Wege. Wählen Sie einen:

  • Option A — Vorgefertigtes ZIP von GitHub Releases (derzeit empfohlen): kein npm-Konto, keine Kompilierung, funktioniert nach dem Download vollständig offline. Dies ist die offiziell unterstützte Distribution, solange @payretailers/mcp noch nicht auf npm verfügbar ist.

  • Option B — Aus dem Quellcode bauen: für Mitwirkende und sicherheitsbewusste Bereitstellungen, die den Code vor der Ausführung prüfen möchten.

Option C — Installation von npm als @payretailers/mcp — ist geplant, aber noch nicht verfügbar. Sobald das Paket veröffentlicht ist, funktionieren die npx -y @payretailers/mcp-Ausschnitte im Abschnitt Konfiguration nach Client sofort.

Option A — Installation von GitHub Releases

Voraussetzungen: Node.js 20 oder neuer (node --version). Sonst nichts — das Release-ZIP ist in sich geschlossen.

  1. Öffnen Sie die Releases-Seite und laden Sie das neueste payretailers-mcp-vX.Y.Z.zip aus dem Abschnitt „Assets" des obersten Releases herunter.

  2. Entpacken Sie es an einen beliebigen Ort. Übliche Speicherorte:

    • Windows: C:\Tools\payretailers-mcp

    • macOS / Linux: ~/tools/payretailers-mcp

  3. Fügen Sie den Server zu Ihrem MCP-Client hinzu (siehe Konfiguration nach Client unten oder die dort verlinkten Schritt-für-Schritt-Anleitungen). Verweisen Sie auf den absoluten Pfad von dist/index.js im entpackten Ordner.

  4. Laden Sie Ihren MCP-Client neu / starten Sie ihn neu. Der Server erscheint neben Ihren anderen Tools.

Schritt-für-Schritt-Einrichtungsanleitungen mit Screenshots und Verifizierungsaufforderungen:

Optionaler Smoke-Test vor oder nach der Einbindung — beweist, dass das Bundle durchgängig funktionsfähig ist:

cd /path/to/payretailers-mcp-X.Y.Z
node scripts/smoke-test.mjs

Erwartet: PASS ✅ am Ende, mit 7 Tools, 158 Ressourcen, 7 Prompts, 5 Ressourcenvorlagen angekündigt.

Option B — Aus dem Quellcode bauen

Für Mitwirkende oder wenn Ihre Sicherheitsrichtlinie verlangt, den Code vor der Ausführung zu prüfen. Voraussetzungen: Node.js 20 oder neuer, git.

git clone https://github.com/payretailers-dev/payretailers-mcp.git
cd payretailers-mcp
npm install
npm run build          # generates dist/index.js (bundle + runtime deps)
npm start              # optional: run over stdio manually (Ctrl+C to stop)

data/ (Guides, Skills, Reference, Recipes, Konzeptdokumente, kuratiertes JSON) ist eingecheckt — Sie benötigen npm run sync:docs nicht, es sei denn, Sie spiegeln ein aktualisiertes payretailers-ai-docs-Checkout auf derselben Maschine.

Binden Sie dann dist/index.js auf dieselbe Weise wie bei Option A in Ihren MCP-Client ein.


Konfiguration nach Client

Bevorzugen Sie eine vollständige Anleitung mit Verifizierungsaufforderungen und Fehlerbehebung? Siehe die Schritt-für-Schritt-Anleitungen in docs/setup/ für Cursor, Claude Code, Claude Desktop und VS Code + Copilot. Die folgenden Ausschnitte sind das minimale JSON, das Sie benötigen, wenn Sie sich in Ihrem Client bereits auskennen.

Jeder Client benötigt dieselben drei Informationen: einen Befehl (node), ein args-Array, das auf den absoluten Pfad von dist/index.js verweist, und einen optionalen env-Block für das zukünftige simulate_transaction-Tool.

Ersetzen Sie C:/Tools/payretailers-mcp/dist/index.js unten durch den absoluten Pfad, an dem Sie das Release entpackt haben. Verwenden Sie unter Windows Schrägstriche in JSON — Rückwärtsschrägstriche müssen maskiert werden und verursachen verwirrende Fehler.

Cursor

Fügen Sie zu ~/.cursor/mcp.json (global) oder .cursor/mcp.json (pro Projekt) hinzu:

{
  "mcpServers": {
    "payretailers": {
      "command": "node",
      "args": ["C:/Tools/payretailers-mcp/dist/index.js"],
      "env": {
        "PAYRETAILERS_ENV": "sandbox",
        "PAYRETAILERS_SHOP_ID": "your_sandbox_shop_id",
        "PAYRETAILERS_SECRET_KEY": "your_sandbox_secret_key",
        "PAYRETAILERS_SUBSCRIPTION_KEY": "your_sandbox_subscription_key"
      }
    }
  }
}

Der env-Block ist optional — Ressourcen, search_docs und alle Validatoren funktionieren ohne Anmeldedaten.

Claude Desktop

Fügen Sie zu Ihrer claude_desktop_config.json hinzu:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "payretailers": {
      "command": "node",
      "args": ["C:/Tools/payretailers-mcp/dist/index.js"]
    }
  }
}

Windsurf

Fügen Sie zu ~/.codeium/windsurf/mcp_config.json hinzu:

{
  "mcpServers": {
    "payretailers": {
      "command": "node",
      "args": ["C:/Tools/payretailers-mcp/dist/index.js"]
    }
  }
}

VS Code + Copilot

Fügen Sie zu .vscode/mcp.json (Arbeitsbereich) hinzu oder öffnen Sie die benutzerbezogene Datei über die Befehlspalette → MCP: Open User Configuration:

{
  "servers": {
    "payretailers": {
      "type": "stdio",
      "command": "node",
      "args": ["C:/Tools/payretailers-mcp/dist/index.js"]
    }
  }
}

Hinweis: VS Code ist der Sonderfall — der Wurzelschlüssel ist "servers" (nicht "mcpServers"). MCP-Tools laufen nur im Agent-Modus von Copilot Chat.

Zed

Fügen Sie zu ~/.config/zed/settings.json hinzu:

{
  "context_servers": {
    "payretailers": {
      "command": {
        "path": "node",
        "args": ["C:/Tools/payretailers-mcp/dist/index.js"]
      }
    }
  }
}

Continue.dev

Fügen Sie zu ~/.continue/config.json hinzu:

{
  "mcpServers": [
    {
      "name": "payretailers",
      "command": "node",
      "args": ["C:/Tools/payretailers-mcp/dist/index.js"]
    }
  ]
}

JetBrains AI Assistant

Öffnen Sie Einstellungen → AI Assistant → MCP Servers → Hinzufügen und geben Sie ein:

  • Name: payretailers

  • Befehl: node

  • Argumente: C:/Tools/payretailers-mcp/dist/index.js (absoluter Pfad)

Andere Clients

Jeder Client, der MCP über stdio unterstützt, kann diesen Server verwenden. Verweisen Sie auf node <absoluter-pfad-zu>/dist/index.js und Sie sind fertig.

Sobald npm verfügbar ist

Wenn @payretailers/mcp auf npm veröffentlicht ist, funktionieren dieselben Konfigurationen mit der kürzeren Form:

{ "command": "npx", "args": ["-y", "@payretailers/mcp"] }

Keine Änderungen an env, kein entpackter Ordner erforderlich.


Verifizieren, dass es funktioniert

Nach dem Neuladen Ihres MCP-Clients sollten Sie im Status des Servers etwa Folgendes sehen:

7 Tools · 158 Ressourcen · 7 Prompts · 5 Ressourcenvorlagen

  • Cursor: Ctrl+Shift+P → Customize → Registerkarte MCPs. Suchen Sie nach payretailers mit einem grünen Punkt und erweitern Sie es.

  • Claude Desktop: Prüfen Sie die Tool-Schublade in einem neuen Chat; die PayRetailers-Tools sollten neben Ihren anderen MCPs erscheinen.

  • VS Code / Zed / Continue.dev / Windsurf: Konsultieren Sie die Dokumentation des jeweiligen Clients für dessen MCP-Statusbereich.

Wenn Ihr Assistent die Tools nicht aufzurufen scheint, erzwingen Sie es einmal, indem Sie eine Aufforderung mit „Verwenden Sie das PayRetailers-MCP, um..." beginnen. Sobald er ein Tool einmal in einer Unterhaltung aufgerufen hat, neigt er dazu, dies weiterhin zu tun.


Fehlerbehebung

Der Server startet nicht. Führen Sie das Bundle manuell über ein Terminal aus:

node /path/to/payretailers-mcp/dist/index.js

Wenn es still auf Eingaben wartet, ist das Bundle in Ordnung — das Problem liegt auf Client-Seite (Tippfehler im Pfad in der Konfiguration, Schrägstriche vs. Rückwärtsschrägstriche unter Windows, falscher Prozess wird neu gestartet). Wenn ein Fehler ausgegeben wird, sind die häufigsten Ursachen Node < 20 (Node aktualisieren) oder ein abgeschnittener Download (ZIP erneut herunterladen).

Der Client zeigt alte Zähler (z. B. 5 Tools, 89 Ressourcen). Einige Clients speichern die MCP-Tool-/Ressourcenaufzählung zwischen. Schalten Sie den Server im MCP-Bereich des Clients AUS → EIN, oder fügen Sie einen ungenutzten env-Eintrag zur Konfiguration hinzu (z. B. "MCP_VERSION": "0.4.1"), um einen Neustart zu erzwingen.

Das Modell scheint kein MCP-Tool aufzurufen. Stellen Sie sicher, dass der Chat im Agent-Modus ist (nicht im Ask-/Nur-Lese-Modus). Einige leichte Modelle rufen weniger bereitwillig Tools auf — wechseln Sie für die ersten Aufrufe zu einem Top-Modell, und der Assistent merkt sich, dass die Tools für den Rest der Unterhaltung verfügbar sind.

Wo sind die Protokolle? Jeder MCP-Client hat einen MCP-Protokollbereich, der den JSON-RPC-Handshake, Parse-Fehler und Server-stderr erfasst. In Cursor: Ctrl+Shift+U → Dropdown → MCP Logs.


Umgebungsvariablen

Optional — nur für das zukünftige simulate_transaction-Tool (Phase 4) erforderlich. Alles andere (Ressourcen, search_docs, Prompts) funktioniert ohne Anmeldedaten.

Variable

Beschreibung

Standard

PAYRETAILERS_ENV

sandbox oder production.

sandbox

PAYRETAILERS_SHOP_ID

Ihre Shop-ID aus dem Händlerportal.

(nicht gesetzt)

PAYRETAILERS_SECRET_KEY

Ihr geheimer Schlüssel für HTTP Basic Auth.

(nicht gesetzt)

PAYRETAILERS_SUBSCRIPTION_KEY

Wert des Ocp-Apim-Subscription-Key-Headers.

(nicht gesetzt)

Sicherheit: Der Server protokolliert niemals Anmeldedaten und speichert sie niemals dauerhaft. Sie verbleiben für die Dauer der Sitzung im Speicher und werden nur an api-sandbox.payretailers.com oder api.payretailers.com gesendet, wenn Sie simulate_transaction aufrufen.


Beispielverwendung

Nach der Konfiguration fragen Sie Ihren KI-Assistenten in einfacher Sprache:

„Erstellen Sie meine erste PIX-Zahlung in der Sandbox für R$50 in Brasilien. Verwenden Sie Node.js."

Im Hintergrund wird der Assistent:

  1. search_docs({ query: "pix payin brazil" }) aufrufen → die brazil-pix-payin-Skill finden.

  2. payretailers://skill/brazil-pix-payin für die genauen Schritte lesen.

  3. Ausführbaren Code mit dem richtigen Endpunkt, Headern, Nebenwährungseinheiten und CPF-Format generieren.

Oder verwenden Sie direkt den /integrate-pix-payin-Prompt für eine vollständig strukturierte Antwort.

Validieren einer Nutzlast vor der Übermittlung

Sobald der Assistent eine Nutzlast entworfen hat, kann er sie vor dem Aufruf der API validieren:

// tools/call → validate_payload
{
  "operation": "create-transaction",
  "country": "BR",
  "method": "PIX",
  "payload": {
    "trackingId": "abc-12345678",
    "amount": 100.50,              // will be flagged: use 10050 (minor units)
    "currency": "USD",             // will be flagged: BR expects BRL
    "notificationUrl": "http://example.com/wh", // will be flagged: must be HTTPS
    "customer": {
      "firstName": "Ana",
      "lastName": "Santos",
      "email": "ana@example.com",
      "personalId": "12345678900"  // will be flagged: invalid CPF checksum
    }
  }
}

Die Antwort listet jedes Problem mit einem code, severity, path, message und oft einem hint und suggestion auf — das LLM kann die Nutzlast korrigieren, bevor eine Netzwerk-Roundtrip verschwendet wird.


Entwicklung

git clone https://github.com/payretailers-dev/payretailers-mcp.git
cd payretailers-mcp
npm install
npm run build          # generates dist/index.js
npm test               # 93 unit tests
node scripts/smoke-test.mjs   # end-to-end stdio handshake + tool calls
npm start              # optional: run the server manually on stdio

data/ (Guides, Skills, Reference, Recipes, Konzeptdokumente, kuratiertes JSON) ist im Repository eingecheckt. Führen Sie npm run sync:docs nur aus, wenn Sie ../payretailers-ai-docs ausgecheckt haben und den Spiegel aktualisieren möchten.

Der Server kann mit dem offiziellen MCP Inspector untersucht werden:

npx @modelcontextprotocol/inspector node dist/index.js

Veröffentlichung (Maintainer)

Releases werden über GitHub Actions bei Tag-Push (v*.*.*) automatisiert. Der Workflow:

  1. Führt Lint, Typprüfung, Unit-Tests, Build und Smoke-Test aus.

  2. Führt npm run pack:release aus, um release/payretailers-mcp-vX.Y.Z.zip zu erzeugen (gebündeltes dist/index.js + data/-Spiegel + README + LICENSE + CHANGELOG + Smoke-Test).

  3. Erstellt ein GitHub Release und hängt das ZIP an.

  4. Veröffentlicht auf npm als @payretailers/mcp nur wenn das Repository-Geheimnis NPM_TOKEN konfiguriert ist — andernfalls ist das Release nur auf GitHub verfügbar.

Um ein Release lokal zu erstellen und dann den Tag zu pushen:

# 1. Bump version in package.json, config.ts, CHANGELOG.md
# 2. Verify locally
npm run clean && npm ci && npm test && npm run build
node scripts/smoke-test.mjs
npm run pack:release        # writes release/payretailers-mcp-vX.Y.Z.zip

# 3. Commit + tag + push
git add -A
git commit -m "chore: release vX.Y.Z"
git tag vX.Y.Z
git push origin main
git push origin vX.Y.Z      # this triggers .github/workflows/release.yml

Semver wird streng durchgesetzt: Patch-Releases beheben Fehler, Minor-Releases fügen Tools/Prompts/Ressourcen hinzu, ohne bestehende zu brechen, Major-Releases nur für Umbenennungen/Entfernungen.


Roadmap

  • 0.1 ✅ Ressourcen (Guides, Skills), search_docs, integrate-pix-payin-Prompt.

  • 0.2 ✅ Ressourcen (Reference, Recipes), get_country_rules, get_test_data, get_endpoint_spec, Prompts integrate-payout-fx, build-checkout, debug-401-auth, reconcile-with-graphql.

  • 0.3 ✅ validate_payload mit echter Prüfsummenvalidierung für CPF, CNPJ, RUT, DNI, RUC, CC, NIT, CURP, RFC, CLABE + übergreifende Regeln (Nebenwährungseinheiten, Währung/Land, HTTPS-Webhooks, Methode/Land, Idempotenz).

  • 0.4 ✅ Konzeptdokument-Ressourcenkategorie, get_webhook_playbook, validate_webhook_handler, erweitertes validate_payload für Abonnementoperationen, Prompts implement-webhook-handler, integrate-subscriptions.

  • 0.4.1 ✅ Abonnementschema-Angleichung (AmountModel, frequency-Enum, authorizationType) — CHANGELOG.md.

  • 0.5 — simulate_transaction (Trockenlauf gegen Sandbox), get_error_code, erweiterte Länderabdeckung.

  • 1.0 — Stabile öffentliche Veröffentlichung + Auflistung im offiziellen MCP-Registry + npm-Veröffentlichung.

Siehe CHANGELOG.md für Details.


Verwandtes


Lizenz

Quellcode: MIT. Siehe LICENSE.

Dokumentationsinhalte, die in data/ gebündelt sind (Guides, Skills, Reference, Recipes), sind unter CC BY-ND 4.0 lizenziert, übernommen aus dem payretailers-ai-docs-Repository. Die kuratierten Datendateien (data/country-rules.json, data/test-data.json) werden ebenfalls unter CC BY-ND 4.0 veröffentlicht.


Mitwirken

Fehlerberichte und Funktionsanfragen sind über GitHub Issues willkommen. Pull Requests aus der Community werden geprüft, aber nach Ermessen des PayRetailers-Teams zusammengeführt — siehe CONTRIBUTING.md, sobald verfügbar.

Available Tools

7 tools
get_country_rulesA

Return the country-specific rules for a PayRetailers integration: accepted currencies, personalId format (CPF, DNI, CLABE, RUT, ...), payment method constraints, and regulatory notes. Call this before emitting any country-specific payload.

NameRequiredDescriptionDefault
methodNoOptional payment method filter (e.g. 'PIX', 'ALIAS_CVU', 'SPEI', 'CARD', 'BRE_B'). If omitted, returns full country rules.
countryYesISO 3166-1 alpha-2 country code. Supported: BR, AR, MX, CO, CL, PE. Use uppercase.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and it does well: 'Return' signals a safe read, and the description discloses exactly what the response contains (currencies, personalId, constraints, notes). It adds the workflow context of calling before payload emission. It doesn't cover failure behavior for unsupported countries, but the core behavior is transparent.

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 of densely packed information: the purpose plus content enumeration, followed by a single directive. No filler, and the most important constraint (when to call) is placed clearly at the end.

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?

For a simple lookup with 2 fully-documented parameters and no output schema, the description compensates well by detailing what the return value contains. The only minor omission is error handling for unsupported country codes, but the schema already lists the supported countries, so the description is complete for correct invocation.

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 description coverage is 100%, so both 'country' and 'method' are already well documented in the schema, including the supported values and formatting rules (uppercase, ISO code). The description adds no parameter detail beyond what the schema provides, so the baseline of 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 uses a specific verb ('Return') and resource ('country-specific rules') and enumerates the exact content: accepted currencies, personalId formats, payment method constraints, and regulatory notes. This clearly distinguishes it from siblings like search_docs and get_endpoint_spec, which serve different lookup purposes.

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 provides an explicit when-to-call directive: 'Call this before emitting any country-specific payload.' This frames the tool as a prerequisite step in the integration flow. It lacks explicit exclusions or named alternatives, but the precondition is clear and actionable.

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

get_endpoint_specA

Return the full reference page (parameters, response, error codes) for a specific PayRetailers endpoint. Use this to ground your generated code against the exact request/response schema before emitting it.

NameRequiredDescriptionDefault
sectionNo'full' returns the entire reference page. 'summary' returns just the top of the page. Default 'full'.
endpointYesEndpoint slug or logical name. Examples: 'create-transaction', 'create-payout', 'createpayoutquote', 'get-payment-methods', 'post_v1-subscriptions'. Case-insensitive.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses what the tool returns (parameters, response, error codes), which is the core behavior. However, it doesn't mention any potential error handling, rate limits, or any side effects. As a read-only retrieval, this is acceptable but not exceptionally transparent.

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. The first sentence states the core function, and the second provides usage context. No filler words, and the most critical information is front-loaded.

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?

Since there is no output schema, the description correctly explains what the response contains ('parameters, response, error codes'). It covers the essential information for a retrieval tool. The 'section' parameter is described in the schema, so no need to repeat. Slightly more could be said about expected size or format, but it is adequate.

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 description coverage is 100%, so the baseline is 3. The description does not add any extra meaning beyond what the schema already documents for 'section' and 'endpoint' – it simply restates the purpose.

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 a specific verb ('Return'), a clear resource ('full reference page'), and the specific content ('parameters, response, error codes'). It clearly distinguishes itself from siblings like search_docs by being the tool that retrieves a specific endpoint's spec.

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?

It provides a clear use case: 'to ground your generated code against the exact request/response schema before emitting it.' This tells the agent when to use it. It doesn't explicitly mention alternatives, but the sibling list includes search_docs, which is likely for broader searching, so the context is clear.

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

get_test_dataA

Return official-shaped sandbox test data for a country: sample customers (name, email, personalId in correct format, address), test cards (approved/declined), and PIX/Bre-B keys where applicable. Use this to populate sandbox requests with realistic values instead of inventing them.

NameRequiredDescriptionDefault
countryYesISO 3166-1 alpha-2 country code. Supported: BR, AR, MX, CO, CL, PE.
sectionNoWhich section of test data to return. 'all' returns everything. Defaults to 'all'.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. The description implies a read-only data fetch (returning data) but does not explicitly state that it makes no changes or that it is safe to call. It also does not mention error cases, rate limits, or the exact structure of the returned data. Adequate for a simple retrieval, but lacks depth given the absence of annotations.

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 with zero filler. The primary action and scope are front-loaded, followed by a concise usage recommendation. Every word earns its place; no redundancy.

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 tool with only 2 parameters, no output schema, and no nested objects, the description covers the essential information: what is returned, its purpose, and how to invoke it. It could optionally describe the response structure more explicitly, but the types of data are listed, which is sufficient for an agent to call it correctly.

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 description coverage is 100% — both 'country' and 'section' have descriptions, including supported values and defaults. The description adds context about why these parameters matter (to populate realistic sandbox requests) but does not add syntax or format details beyond what the schema already covers. Baseline of 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 verb 'Return' and the resource 'official-shaped sandbox test data for a country', enumerating the exact contents (customers, test cards, PIX/Bre-B keys). This is specific and distinct from sibling tools like get_country_rules or get_endpoint_spec, making it easy for an agent to identify this as the correct tool for generating test data.

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 explicitly says 'Use this to populate sandbox requests with realistic values instead of inventing them', which gives clear context on when to use it. It does not explicitly state when not to use it or compare to alternatives, but the purpose is clear enough that an agent would not confuse it with the sibling tools.

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

get_webhook_playbookA

REQUIRED before implementing any webhook receiver or reconciliation flow. Returns the canonical PayRetailers webhook contract: envelope schema, complete event vocabulary (transaction lifecycle: PENDING/IN_PROGRESS/APPROVED/REJECTED/CANCELLED/EXPIRED/REFUNDED/CHARGEBACK; payout lifecycle; subscription and subscription_payment events with retry semantics), HTTP response contract (200 fast / 400 no-retry / 500 retried), idempotency by eventId, replay protection, signature verification, retry policies (PIX_SPECIFIC / FIXED_RETRY / NOT_ALLOWED), and the top 6 wrong-way patterns integrators hit. Filter by category or eventType for a focused answer. Do not attempt to design a webhook handler from memory — call this tool first.

NameRequiredDescriptionDefault
categoryNoFilter events by lifecycle. 'transaction' = payin events; 'payout' = payout events; 'subscription' = subscription entity events (activation/cancellation); 'subscription_payment' = recurring charge events; 'all' (default) returns the complete catalog.
eventTypeNoFilter by a specific eventType string (e.g. 'subscription.payment', 'transaction'). Case-sensitive as declared by the API.
includeDeliveryNoInclude the delivery / retry / signature section. Defaults to true. Set to false if you only need the event vocabulary.

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries full disclosure burden. It states the tool is a read-only retrieval operation ('Returns') and details all delivered content: event vocabulary, retry policies, signature verification, etc. It does not claim any side effects or mutations. The emphasis that integrators should not rely on memory signals the tool's authoritative nature. This is sufficient behavioral transparency for a query tool.

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

Conciseness4/5

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

The description is long but densely packed with essential information, organized as a list of contract aspects and retry policies. The mandatory-use warning is front-loaded, and every sentence contributes value. While verbose, the complexity of webhook contracts justifies the detail; there is no redundant filler.

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?

There is no output schema, so the description must explain the return value, and it does so extensively: it lists envelope schema, event categories, HTTP response codes, idempotency, replay protection, signature verification, retry policies, and common mistakes. It also explains parameter usage for scoping results. For a reference tool covering a complex integration surface, this is complete.

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 description coverage is 100% and the three parameters (category, eventType, includeDelivery) are fully documented in the schema with enums and examples. The description only adds a generic suggestion to filter by category or eventType, but does not introduce new semantic meaning beyond the schema. Per the rubric, baseline 3 is appropriate when the schema handles parameter documentation.

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 a specific verb ('Returns') and resource ('canonical PayRetailers webhook contract') and enumerates the exact contents: envelope schema, event vocabulary, HTTP response contract, idempotency, replay protection, signature verification, retry policies, and common pitfalls. This clearly differentiates it from siblings like search_docs or get_endpoint_spec, which are generic or endpoint-specific rather than webhook-contract-specific.

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?

The description explicitly mandates when to use the tool: 'REQUIRED before implementing any webhook receiver or reconciliation flow' and 'Do not attempt to design a webhook handler from memory — call this tool first.' It also advises filtering by category or eventType for focused answers, giving clear guidance on how to invoke it effectively. No alternatives are mentioned, but the tool is positioned as the definitive prerequisite, so exclusion guidance is unnecessary.

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

search_docsA

Search across PayRetailers Guides and Skills. Returns top matches with a short snippet. Use this before answering any integration question to ground your response in the official documentation.

NameRequiredDescriptionDefault
limitNoMaximum number of results to return. Default 10.
queryYesFree-text query. Examples: 'pix payout', 'validate cpf', 'fx quote'.
categoryNoOptional category filter. 'guide' = end-to-end tutorial. 'skill' = task-focused workflow.

TDQS

A4/5.0
Behavior3/5

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

Annotations are absent, so the description carries the full burden. It discloses the search-and-return behavior (returning matches with snippets) but does not mention permissions, rate limits, or side effects. It's adequate for a search tool but leaves notable gaps in behavioral disclosure.

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 tightly written sentences: the first states the purpose and output, the second gives the usage directive. Every word earns its place, and the key information is front-loaded.

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 straightforward 3-parameter tool with full schema coverage and no output schema, the description supplies enough context for correct usage, including a strong usage hint. It omits details like pagination or error handling, but these are minor for a search tool.

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?

The schema already provides 100% coverage with rich descriptions (e.g., query examples, category enum explanations, limit bounds). The description adds little beyond restating the scope, so it meets the baseline for high schema coverage.

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 a specific verb ('Search'), a distinct resource ('PayRetailers Guides and Skills'), and the output format ('top matches with a short snippet'). This effectively differentiates it from sibling tools that fetch specific data (e.g., get_endpoint_spec, get_country_rules).

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 an explicit 'when to use' directive: 'Use this before answering any integration question to ground your response in the official documentation.' This clearly signals the primary use case, but it lacks explicit mention of alternatives or when not to use the tool, so it doesn't reach a 5.

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

validate_payloadA

REQUIRED whenever the user shows or you are about to emit a JSON body for POST /transactions, POST /payouts, POST /customers, POST /v1/subscription-products, POST /v1/subscriptions, or POST /v1/subscription-payments — even if the payload looks correct. Runs the same checks a senior PayRetailers integrator would run in code review: country-specific document checksum (CPF, CNPJ, RUT, DNI, RUC, CC, NIT, CURP, RFC, CLABE), minor-units-as-string amount format, currency/country match, HTTPS notificationUrl, method/country compatibility (PIX only BR, BRE_B only CO, SPEI only MX, etc.), idempotency key length, trackingId ≤ 50 chars, customer required fields matrix (customer.ip / customer.country always; city+address in CO or card in EC/MX; zip on cards in EC/MX; phone on Boleto/Efecty/PagoEfectivo/Yape/Plin/WesternUnion-PA/African methods). For subscriptions: enforces billingCycle shape, Bacen PIX_SPECIFIC contract (maxRetries=3 / retryIntervalDays=7 fixed for BR PIX Automático), FIXED_RETRY config completeness, and authorisationJourney vocabulary (BACKGROUND / USER_INTERACTION). Returns machine-readable {errors, warnings, info} with code, path, severity, hint and often a suggestion — pipe those back into the corrected payload before you show any curl / SDK call to the user. Do not skip: a payload that 'looks fine' but hits the API returns generic 4xx errors that are far harder to interpret than the codes this tool emits.

NameRequiredDescriptionDefault
methodNoPayment method (e.g. 'PIX', 'CARD', 'SPEI', 'BRE_B', 'ALIAS_CVU'). Enables method-specific rules.
countryNoISO 3166-1 alpha-2 country code. If omitted, taken from payload.country. Determines the personalId format to validate.
payloadYesThe JSON body you're about to POST to the PayRetailers API. Pass it verbatim (no headers, just the body).
operationYesWhich PayRetailers operation the payload targets. Each operation has its own required fields.
environmentNo'sandbox' allows local/private notificationUrls (with a hint). 'production' rejects them. Default: 'sandbox'.
personalIdTypeNoExplicit personalId type. If omitted, inferred from country + value shape (e.g. BR + 11 digits → CPF).

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses the return format ({errors, warnings, info} with code, path, severity, hint, suggestion) and warns that 'looks fine' payloads still need validation—setting expectations that the tool may catch issues even when the user thinks they're correct. It does not explicitly state non-behavior like 'does not make API calls' or 'no side effects', but the description implies a read-only validation function. It adds substantial context beyond the schema, justifying a 4.

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

Conciseness3/5

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

The description is very long, though it front-loads the critical usage note ('REQUIRED whenever') and structures the validations as a list. Every sentence adds useful detail, but it could be more concise by grouping related checks. For a tool with high complexity, the length is defensible, but it is not tightly packed—several clauses could be trimmed without loss of meaning.

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?

Given the tool's complexity (6 parameters, nested objects, many validation rules) and the absence of an output schema, the description is remarkably complete. It covers all the inputs' roles, the full set of validations, the output structure, and why skipping is risky. An agent would have everything needed to decide whether and how to call it correctly.

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 description coverage is stated as 100%, so the baseline is 3. The description reinforces parameter roles (e.g., 'operation' selects the rule set, 'environment' affects notificationUrl checks, 'personalIdType' inference) but adds no new parameter info beyond what the schema already describes. It does contextualize why parameters matter, but not enough to exceed baseline.

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 a specific, actionable purpose: validating JSON payloads for a defined set of PayRetailers POST endpoints. It enumerates the exact operations and lists the specific validation checks (CPF/CNPJ checksums, amount format, currency/country match, etc.), making the tool's function unambiguous and distinct from sibling tools like search_docs or get_endpoint_spec.

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 states when the tool is REQUIRED ('REQUIRED whenever... even if the payload looks correct') and explains why (generic 4xx errors are hard to interpret). It also directs the user to pipe the returned errors/warnings back into the payload, effectively telling them the expected workflow. No exclusions or alternatives are mentioned, but the tool is clearly the primary validator for these operations.

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

validate_webhook_handlerA

REQUIRED whenever the user is designing, describing, or about to code a webhook receiver for PayRetailers — even if the design looks fine. Analyses a declarative description of the handler (URL, processing mode, ack strategy, idempotency, signature verification, replay protection, error mapping, ordering assumptions) against the PayRetailers contract and returns {errors, warnings, info} with actionable codes. Catches the top failure modes: acknowledging AFTER processing (times out and gets retried), returning 500 on business errors (infinite retries), missing eventId de-duplication (double-fulfilment), assuming wall-clock order (state corruption), HTTPS missing, signature disabled in production, replay window absent. Pair with get_webhook_playbook when designing from scratch.

NameRequiredDescriptionDefault
urlYesThe public URL that will receive PayRetailers webhook POSTs.
orderingNoWhether the handler relies on wall-clock order of events for the same entityId. Real deliveries can arrive out-of-order; a handler that assumes order will corrupt state.
ackStrategyYesWhen the handler returns 200: 'before-processing' (recommended), 'after-processing' (blocks retries but risks timeouts), 'conditional-on-outcome' (dangerous: business errors trigger retries).
environmentNoDeployment target for this handler. Defaults to 'sandbox'.
ipAllowlistNoOptional IP allowlist. NOT sufficient by itself — always combine with signature verification.
errorHandlingNoHow the handler maps internal exceptions to HTTP status. Business errors ('order not found') should NOT return 500 — that triggers infinite retries.
processingModeYesHow the handler processes the event: 'sync-in-request' = all business logic runs before returning 200; 'async-queue' = enqueue and return 200 immediately (recommended); 'async-thread' = fire-and-forget in-process background thread.
languageOrStackNoOptional stack hint (e.g. 'C# ASP.NET 8', 'Node.js Express', 'Python FastAPI'). Only used to sharpen suggestions.
replayProtectionNoOptional replay protection based on eventDate. Recommended: enabled=true with maxAgeMinutes=5.
idempotencyStrategyYesHow duplicate deliveries are de-duplicated. 'by-eventId' is the required strategy.
signatureVerificationYesHow the handler treats the PayRetailers webhook signature. 'strict' = reject on mismatch (recommended); 'log-only' = log and continue; 'disabled' = no verification (only acceptable for sandbox).
idempotencyStoreTtlDaysNoHow long processed eventIds are retained. Recommended >= 30 days to survive replay attempts and backlogs.
responseTargetLatencyMsNoExpected p95 latency of your endpoint in milliseconds. PayRetailers targets < 3000 ms for the 200 ack.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the return structure ({errors, warnings, info} with actionable codes) and the specific failure modes it catches (acknowledging after processing, returning 500 on business errors, missing idempotency, etc.), giving an agent a concrete mental model of what the tool will do. It does not go into output detail beyond that, but for a static-analysis/validation tool this is adequate; a 4 is warranted because it is explicit and actionable without being exhaustive.

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

Conciseness4/5

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

The description is longer than typical but every sentence earns its place: the usage directive is front-loaded, the evaluation scope is itemized, and the failure-mode list is concrete and useful. The only slight inefficiency is the duplication of some schema-derived concepts (like the retry risks), but overall it's tightly packed with high-signal guidance rather than filler.

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 tool's complexity (13 parameters, 6 enums, nested objects, no output schema), the description is remarkably complete. It states the contract (payload fields), the output format, the key failure modes, and even mentions pairing with a related tool. It could include an example of the 'actionable codes', but the description's coverage of usage, scope, and behavior is sufficient for an agent to decide whether to call it and roughly what to provide.

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 description coverage is 100% — every parameter has a substantive description (e.g., ackStrategy explains the three options and warns about 'conditional-on-outcome', idempotencyStrategy says 'by-eventId' is required). The tool description itself adds only a few high-level hints (like the list of failure modes that map to parameters) but does not go beyond what the schema already explains. Since the schema does the heavy lifting, the baseline 3 is appropriate; the description reinforces but does not add new parameter-specific 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 names a specific verb ('Analyses') and a precise resource ('a declarative description of the handler... against the PayRetailers contract') and enumerates the exact inputs (URL, processing mode, ack strategy, etc.) and the output shape ({errors, warnings, info}). It also distinguishes itself from the sibling get_webhook_playbook by naming it explicitly, leaving no ambiguity about which tool fits a design-from-scratch task.

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?

The opening word 'REQUIRED' plus the explicit trigger condition ('whenever the user is designing, describing, or about to code a webhook receiver') makes the when-to-use unmistakable. It also states an alternative ('Pair with get_webhook_playbook when designing from scratch') and even cautions that the tool is needed 'even if the design looks fine', closing off the common excuse of skipping validation.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv0.4.1
    • First observedget_country_rules
    • First observedget_endpoint_spec
    • First observedget_test_data
    • First observedget_webhook_playbook
    • First observedsearch_docs
    • First observedvalidate_payload
    • First observedvalidate_webhook_handler

TDQS

A4.4/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinctly different aspect of the integration workflow: searching docs, retrieving country-specific rules, fetching test data, getting endpoint schemas, validating payloads, validating webhook handlers, and retrieving webhook playbook. There is no overlap in purpose, and descriptions make boundaries crystal clear.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (search_docs, get_country_rules, validate_payload, etc.). No mixed conventions or ambiguous verbs appear, making the set predictable and easy to navigate.

Tool Count5/5

With 7 tools, the server is well-scoped for its purpose as a PayRetailers integration assistant. Each tool earns its place—offering documentation search, country rules, test data, endpoint specs, payload validation, webhook validation, and webhook playbook—without unnecessary bloat.

Completeness5/5

The tool surface comprehensively covers the core integration lifecycle: grounding in docs, country-specific rules, sandbox test data, endpoint schemas, payload validation, and webhook design/validation. It addresses the primary pain points integrators face, leaving no obvious gaps for common tasks.

Maintenance

ActivityStale
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers