Dein Agent ruft echte Tools auf.Siehst du, was er tut?
Jeder Tool-Call deines Agenten, erfasst in dem Moment, in dem er passiert.
Das Problem
Blindflug am offenen System
Das Problem
Blindflug am offenen System
Sobald dein Agent an echten Tools hängt, fliegst du blind. Du siehst nicht, was er tut, und nachsehen kannst du nur im echten System, mit echten Daten.
Der erste Test ist Produktion
Willst du sehen, ob dein Agent HubSpot richtig bedient, brauchst du einen echten Account und echte Keys. Rät er ein Argument falsch, ändert sich ein echter Datensatz.
Wenn es schiefgeht, gibt es keine Spur
Der Agent hat Mist gebaut. Aber was genau? Welches Tool, welche Argumente, welche Antwort? Zwischen Prompt und Seiteneffekt liegt nichts, was du aufklappen könntest. Debugging wird zum Raten.
Fehlerfälle kann man nicht bestellen
Wie reagiert dein Agent auf ein Rate-Limit, einen Timeout, eine 500? Das merkst du erst, wenn es in Produktion passiert. Und dann nie zweimal gleich.
Vier Tools, keins deckt den Weg ab
Tracing-Tools schauen zu, aber erst hinterher und ohne Mock. Klassische API-Mocks verstehen kein MCP. Interaktive MCP-Debugger lassen dich klicken, merken sich aber nichts. Und für den Schritt von Test zu Live verdrahtest du deinen Agenten jedes Mal neu.
Ein Endpunkt für jedes Tool, ob gemockt oder echt
Dein Agent spricht mit einem einzigen Endpunkt. Dahinter stecken heute originalgetreue Mocks und bald deine echten Server, so viele du willst. Jeder Call bleibt sichtbar.
- Ein Mock-Endpoint steht für jedes Tool, das dein Agent aufruft
- Wechsle Anbieter, ohne eine Zeile Agent-Code anzufassen
- Von HubSpot bis zum eigenen internen Server: gleicher Trace, gleicher Loop
Drei Wege rein
- AgentMock
Die Mocks
LiveMockd erfindet die Antwort: kein Account, keine Keys, nur synthetische Daten in der Form des Originals.
- AgentEchter Server
Das Gateway
BaldMockd reicht Calls an deinen echten Server durch und schneidet dabei jeden mit und regelt ihn.
- Deine APIMCP-Server
API → MCP
BaldRichte Mockd auf eine bestehende API, und sie wird zu einem beobachteten MCP-Server, den dein Agent aufruft.
Lies Request, Response und Latenz jedes Calls exakt
Jeder MCP-Tool-Call deines Agenten: der genaue Request, die Response, Status und Timing, samt der Fehler, die du injizierst, und der Retries, die sie auffangen.
crm.notes.createErstellt eine Notiz und hängt sie an einen oder mehrere CRM-Datensätze an.
Beschreibung aus dem Tool-Katalog: das, was der Agent gelesen hat.
crm.notes.create mit 2 Werten auf:bodystringPflichtTextinhalt der Notiz.
associationsarrayoptionalIDs der Datensätze, an die die Notiz gehängt wird.
Genau diese Daten hat der Agent gesendet (JSON)
{
"body": "Logged Q3 expansion deal from agent.",
"associations": ["deal_9981"]
}Rate-Limit, künstlich injiziert durch das Mockd-Szenario „429 burst". Dein Agent wartete 250 ms und der erneute Versuch kam mit 201 zurück. Er kam vom Mock, nicht vom echten Tool.
{
"error": "RATE_LIMITED",
"message": "Too many requests. Injected by Mockd scenario 'burst'.",
"retryAfterMs": 250
}crm.contacts.searchquery: "acme"200142mscrm.contacts.searchok · 200start 12:04:01.221 · dauer 142 ms · 3 FelderDurchsucht 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 unbekanntIch rufecrm.contacts.searchmit 3 Werten auf:querystringPflichtSuchbegriff – z. B. Firmenname oder E-Mail-Adresse.
"acme"propertiesarrayoptionalWelche Kontaktfelder im Ergebnis enthalten sein sollen.
emailcompanylifecyclestagelimitnumberoptionalMaximale Anzahl an Treffern.
10Genau diese Daten hat der Agent gesendet (JSON)
{ "query": "acme", "properties": ["email", "company", "lifecyclestage"], "limit": 10 }200 okServer-Antwortwas das Tool zurückgab{ "total": 2, "results": [ { "id": "5512", "company": "Acme Inc.", "email": "ops@acme.io" }, { "id": "5513", "company": "Acme Labs", "email": "hi@acmelabs.dev" } ] }crm.contacts.getid: 551220088mscrm.contacts.getok · 200start 12:04:01.402 · dauer 88 ms · 2 FelderLädt einen einzelnen Kontakt anhand seiner eindeutigen ID.
Beschreibung aus dem Tool-Katalog: das, was der Agent gelesen hat.
Agent-EingabePflichtfelder 1/1 · 0 unbekanntIch rufecrm.contacts.getmit 2 Werten auf:contactIdstringPflichtEindeutige ID des Kontakts.
"5512"propertiesarrayoptionalWelche Felder geladen werden sollen.
emailcompanyownerlifecyclestageGenau diese Daten hat der Agent gesendet (JSON)
{ "contactId": "5512", "properties": ["email", "company", "owner", "lifecyclestage"] }200 okServer-Antwortwas das Tool zurückgab{ "id": "5512", "company": "Acme Inc.", "email": "ops@acme.io", "owner": "rep_42", "lifecyclestage": "opportunity" }crm.deals.createname: "Acme – Q3 Expansion"201196mscrm.deals.createok · 201start 12:04:01.690 · dauer 196 ms · 4 FelderLegt einen neuen Deal in der CRM-Pipeline an.
Beschreibung aus dem Tool-Katalog: das, was der Agent gelesen hat.
Agent-EingabePflichtfelder 1/1 · 0 unbekanntIch rufecrm.deals.createmit 4 Werten auf:dealnamestringPflichtAnzeigename des Deals.
"Acme – Q3 Expansion"amountnumberoptionalDeal-Wert in der Währung des Accounts.
48000pipelinestringoptionalID der Pipeline, in der der Deal liegt.
"default"dealstagestringoptionalAktuelle Phase im Verkaufsprozess.
"qualifiedtobuy"Genau diese Daten hat der Agent gesendet (JSON)
{ "dealname": "Acme – Q3 Expansion", "amount": 48000, "pipeline": "default", "dealstage": "qualifiedtobuy" }201 okServer-Antwortwas das Tool zurückgab{ "id": "deal_9981", "dealname": "Acme – Q3 Expansion", "amount": 48000, "createdAt": "2026-06-19T12:04:01Z" }
Erst gemockt, dann echt. Derselbe Endpunkt, ein Handgriff.
Teste gegen ein originalgetreues Mock und richte dann denselben Endpunkt auf den echten Server. Gleiche URL, gleicher Trace, nichts im Agent neu zu verdrahten. Wenn du live gehst, legst du den Schreibschutz-Schalter um.
- MockLive
Synthetische Antworten, keine echten Daten
- ShadowBald
Echte Calls mitschneiden, ohne zu schreiben
- ReviewBald
Run-Checks: richtiges Tool? A vor B?
- EnforceBald
Regeln greifen, destruktive Tools gesperrt
- LiveBald
Echte Tools frei, voll beobachtet
- 01MockLive
Synthetische Antworten, keine echten Daten
- 02ShadowBald
Echte Calls mitschneiden, ohne zu schreiben
- 03ReviewBald
Run-Checks: richtiges Tool? A vor B?
- 04EnforceBald
Regeln greifen, destruktive Tools gesperrt
- 05LiveBald
Echte Tools frei, voll beobachtet
Mock und Observability sind heute live. Der Live-Pfad (Shadow → Live) wird ausgerollt. Termine stehen in der Roadmap.
Passt in jeden MCP-Client, den du schon nutzt
Fragen, beantwortet
Noch neugierig? Die Docs gehen tiefer auf Transports, Szenarien und die Trace-API ein.
Was genau ist ein 'Mock-MCP-Server'?
Ein Server, der das Model Context Protocol spricht und dieselben Tools bereitstellt (gleiche Namen, gleiche Beschreibungen, gleiche Schemas) wie das Original, aber mit synthetischen, deterministischen Daten statt einem Live-API-Call antwortet. Dein Agent merkt keinen Unterschied; du bekommst volle Kontrolle und volle Sichtbarkeit.
Muss ich den Code meines Agenten ändern?
Nein. Du fügst eine Connection-Config in den MCP-Client ein, den du schon nutzt: Claude, Cursor, das OpenAI Agents SDK, LangGraph und so weiter. Für deinen Agenten sieht Mockd aus wie jeder andere MCP-Server.
Was ist anders, als Tool-Calls einfach selbst zu loggen?
Zwei Dinge: das Mock (du brauchst weder den echten Dienst noch seine Daten) und der Viewer (ein strukturierter, teilbarer Trace jedes Calls). Zusammen wird aus 'integrieren und hoffen' ein 'testen, beobachten, dann integrieren'.
Kann ich meinen eigenen internen MCP-Server testen?
Ja. Das ist Bring Your Own MCP. Richte Mockd auf die URL deines Servers, und es zeigt die Tool-Beschreibungen, proxied die Calls und zeichnet einen vollen Trace auf, damit du Prompts an deinen eigenen Tools optimierst.
Muss ich meinen Agenten neu verdrahten, um von Mock auf echt zu gehen?
Nein. Es ist derselbe Endpunkt. Schreibschutz aus, und Mockd reicht an den echten Server durch: gleiche URL, gleicher Trace. (Das Umschalten auf den echten Server ist noch im Rollout. Es steht auf der Roadmap.)
Sind die gemockten Daten realistisch?
Ja. Mocks liefern sauber strukturierte, plausible Datensätze (echte Feldnamen, IDs, Beziehungen), sodass sich das Modell wie in der Produktion verhält, ganz ohne echte Produktivdaten.
Welche Server kann ich heute mocken?
HubSpot ist jetzt live. Salesforce, Slack, Stripe, Notion, GitHub und mehr folgen. Bring Your Own MCP funktioniert mit allem, was das Protokoll spricht.
Config einfügen. Ersten Trace sehen.
Schnapp dir eine fertige Config und füge sie in deinen Agenten ein, um dem Trace zuzusehen: keine Anmeldungen für Dienste, die du nur evaluierst.
Kostenlos testen{
"mcpServers": {
"hubspot": {
"url": "mock.mock-d.com/hubspot/mcp",
"headers": { "x-mockd-key": "mk_test_8f2c…" }
}
}
}