Zum Inhalt springen
Sprache
Trace-Viewer

Debugge, wie dein Agent jedes Tool liest

Mockd erfasst die komplette Konversation zwischen deinem Agenten und seinen Tools. Sieh dir jeden Call an und spiele die Session ab, um herauszufinden, wo das Modell ein Tool missversteht, bevor es live geht.

sessionses_h7Qf…3a1
  • crm.contacts.searchquery: "acme"200142ms
    crm.contacts.search
    ok · 200
    start 12:04:01.221 · dauer 142 ms · 3 Felder

    Durchsucht die CRM-Kontakte per Volltext und gibt passende Datensätze zurück.

    Beschreibung aus dem Tool-Katalog: das, was der Agent gelesen hat.

    Agent-EingabePflichtfelder 1/1 · 0 unbekannt
    Ich rufe crm.contacts.search mit 3 Werten auf:
    querystringPflicht

    Suchbegriff – z. B. Firmenname oder E-Mail-Adresse.

    "acme"
    propertiesarrayoptional

    Welche Kontaktfelder im Ergebnis enthalten sein sollen.

    emailcompanylifecyclestage
    limitnumberoptional

    Maximale Anzahl an Treffern.

    10
    Genau diese Daten hat der Agent gesendet (JSON)
    {
      "query": "acme",
      "properties": ["email", "company", "lifecyclestage"],
      "limit": 10
    }
    Server-Antwort
    was das Tool zurückgab
    200 ok
    {
      "total": 2,
      "results": [
        { "id": "5512", "company": "Acme Inc.", "email": "ops@acme.io" },
        { "id": "5513", "company": "Acme Labs", "email": "hi@acmelabs.dev" }
      ]
    }
  • crm.contacts.getid: 551220088ms
    crm.contacts.get
    ok · 200
    start 12:04:01.402 · dauer 88 ms · 2 Felder

    Lädt einen einzelnen Kontakt anhand seiner eindeutigen ID.

    Beschreibung aus dem Tool-Katalog: das, was der Agent gelesen hat.

    Agent-EingabePflichtfelder 1/1 · 0 unbekannt
    Ich rufe crm.contacts.get mit 2 Werten auf:
    contactIdstringPflicht

    Eindeutige ID des Kontakts.

    "5512"
    propertiesarrayoptional

    Welche Felder geladen werden sollen.

    emailcompanyownerlifecyclestage
    Genau diese Daten hat der Agent gesendet (JSON)
    {
      "contactId": "5512",
      "properties": ["email", "company", "owner", "lifecyclestage"]
    }
    Server-Antwort
    was das Tool zurückgab
    200 ok
    {
      "id": "5512",
      "company": "Acme Inc.",
      "email": "ops@acme.io",
      "owner": "rep_42",
      "lifecyclestage": "opportunity"
    }
  • crm.deals.createname: "Acme – Q3 Expansion"201196ms
    crm.deals.create
    ok · 201
    start 12:04:01.690 · dauer 196 ms · 4 Felder

    Legt einen neuen Deal in der CRM-Pipeline an.

    Beschreibung aus dem Tool-Katalog: das, was der Agent gelesen hat.

    Agent-EingabePflichtfelder 1/1 · 0 unbekannt
    Ich rufe crm.deals.create mit 4 Werten auf:
    dealnamestringPflicht

    Anzeigename des Deals.

    "Acme – Q3 Expansion"
    amountnumberoptional

    Deal-Wert in der Währung des Accounts.

    48000
    pipelinestringoptional

    ID der Pipeline, in der der Deal liegt.

    "default"
    dealstagestringoptional

    Aktuelle Phase im Verkaufsprozess.

    "qualifiedtobuy"
    Genau diese Daten hat der Agent gesendet (JSON)
    {
      "dealname": "Acme – Q3 Expansion",
      "amount": 48000,
      "pipeline": "default",
      "dealstage": "qualifiedtobuy"
    }
    Server-Antwort
    was das Tool zurückgab
    201 ok
    {
      "id": "deal_9981",
      "dealname": "Acme – Q3 Expansion",
      "amount": 48000,
      "createdAt": "2026-06-19T12:04:01Z"
    }
6 Calls1 injiziertgesamt 641ms
Anatomie eines Calls

Alles erfasst, für jeden Call

Jeder Tool-Call deines Agenten wird vollständig aufgezeichnet, damit du siehst, was passiert ist und warum.

crm.deals.create
dealname: "Acme – Q3"
amount: 48000
pipeline: "default"
01

Tool & Argumente

Das genaue Tool, das das Modell gewählt hat, und die Argumente, die es gefüllt hat.

response
id: "deal_9981"
amount: 48000
createdAt: "…01Z"
02

Antwort

Das synthetische Payload, das Mockd zurückgab, geformt wie das Original.

201 created196ms
0msbudget 300ms
03

Latenz & Status

Wie lange der Call dauerte, und ob er erfolgreich war, fehlschlug oder gedrosselt wurde.

forcedscenario: burst
429RATE_LIMITED
04

Injiziertes Szenario

Ob die Antwort durch ein Szenario erzwungen wurde: ein 429, ein Timeout, ein leeres Ergebnis.

So funktioniert's

Von der Config zum ersten Trace in unter fünf Minuten

Kein SDK zu installieren, kein Code zu ändern. Für deinen Agenten sieht Mockd aus wie ein echter MCP-Server. Es antwortet nur mit synthetischen Daten und zeichnet alles auf.

011 / 4

Mock wählen

Wähle einen Server aus dem Katalog (starte mit HubSpot) oder bring deinen eigenen MCP mit. Du bekommst eine fertige Connection-Config zum Einfügen.

mock catalog8 servers
  • HubSpot24 tools
  • Salesforce31 toolssoon
  • Slack18 toolssoon
  • Stripe27 toolssoon
  • Notion15 toolssoon
022 / 4

In den Agenten einfügen

Füge die Config in Claude, Cursor, das OpenAI Agents SDK oder einen beliebigen MCP-Client ein. Kein Code-Umbau, kein SDK nötig.

mcp.json
{
  "mcpServers": {
    "mockd": {
      "url": "https://mock-d.com/hubspot/mcp"
    }
  }
}
033 / 4

Agent laufen lassen

Lass ihn arbeiten. Jeder Tool-Call wird an den Mockd-Endpoint geleitet und mit realistischen, deterministischen Daten beantwortet.

agentmockd /mcpstreaming
  • crm.contacts.search200142ms
  • crm.contacts.get20088ms
  • crm.deals.create201196ms
  • crm.associations.create20074ms
044 / 4

Beobachten, dann justieren

Sieh dir jeden Call im Live-Trace-Viewer an, um zu finden, wo das Modell ein Tool missversteht, und feile dann am System-Prompt, bis es passt.

crm.deals.createmisread
model filled "name" — tool expects "dealname"
system prompt
− be a helpful CRM agent
+ use dealname (not name) when creating deals
re-run · 201 created
Unter der Haube

Ein Kontrollraum für die Tools deines Agenten

Die Bausteine, die aus 'lief irgendwie' einen engen, beobachtbaren Feedback-Loop machen.

Trace-Viewer mit voller Detailtiefe

Jeder Tool-Call mit Argumenten, Antwort, Latenz und Status: eine LangSmith-artige Timeline für MCP.

crm.contacts.search142ms
crm.deals.create196ms
crm.notes.create429

Fehler- & Latenz-Injektion

Ein Schalter genügt für 429er, leere Ergebnisse oder langsame Antworten und beweist, dass dein Agent sich fängt.

inject errors
429timeoutempty

Latenz, die du steuerst

Simuliere reale Antwortzeiten und sieh, wie dein Agent sein Tempo findet.

latency+250ms
Bald

Prompt-Diffing

Vergleiche zwei System-Prompts über dieselben Tool-Calls hinweg, Seite an Seite.

be helpful
+prefer contactId over name

Bleibt in deiner Sandbox

Nichts geht an Dritte. Gemockte Daten sind synthetisch by design.

synthetic data
no egress
Bald

Bring your own MCP

Richte Mockd auf jeden eigenen MCP-Server. Wir zeigen seine Tool-Beschreibungen, erfassen jeden Call und lassen dich Prompts an deinen Tools optimieren.

your-server.com/mcpconnected
tickets.listorders.getusers.search· 12 tools

Sieh den ersten Trace deines Agenten

Richte deinen Agenten auf einen Mockd-Endpoint und beobachte jeden Tool-Call in Echtzeit.

Kostenlos testen