Mit Metapherkarten bauen
Eine REST API und eine MCP-freundliche OpenAPI für KI-Agenten, die Nutzer beim Reflektieren, Journaling oder bei der Selbstarbeit begleiten. Eine Karte ziehen, das Bild mit Wasserzeichen abrufen, die Lizenz respektieren – das ist die ganze Schleife.
Wählen Sie den Weg
Drei Wege, wie Agenten mit uns sprechen. Wählen Sie den, der zu Ihrem Vorhaben passt, und springen Sie direkt in die passende Doku.
ChatGPT Custom GPT
Importieren Sie das KI-sichere OpenAPI im Custom GPT Builder. Der Chat kann Decks auflisten, Karten ziehen und ein Bild mit Wasserzeichen in das Gespräch einbinden. Er kann Ihre Perlen nicht ausgeben – das KI-Subset enthält keine Operationen für Einladungscodes.
Aktionsquelle: openapi.ai.json ›REST direkt
HTTP-Aufrufe mit Ihrem mk_live_-Schlüssel im Header Authorization: Bearer. Das vollständige OpenAPI deckt alles ab, einschließlich Einladungscodes, falls Sie auch Decks verkaufen. Ein Schlüssel, zwei Profile.
MCP-Server
Gehostet auf mcp.makcards.online und als lokales stdio-Paket @maccards/mcp (über npx oder Docker). Gleiche Tools, gleiche Authentifizierung, eine Codebasis. Wählen Sie die Verbindungsart im Abschnitt unten.
OAuth: Ein-Klick-Verbindung aus ChatGPT und Claude
Wenn Ihre Nutzer aus ChatGPT oder Claude starten, müssen sie keinen API-Schlüssel kopieren. Die Chat-App zeigt unseren Einwilligungsbildschirm, der Nutzer klickt auf Zulassen, und der Chat erhält einen Token mit begrenztem Umfang. Der Nutzer kann den Zugriff jederzeit im Profil widerrufen.
Über „+ Connectors“ im Chat
In ChatGPT (Apps) oder Claude.ai („+ Connectors“) finden Sie MAC Cards Online im Auswahlmenü. Beim ersten Auswählen landen Sie auf unserem Einwilligungsbildschirm mit einer klaren Liste dessen, was die KI tun und nicht tun darf. Einmal genehmigen, danach funktioniert es in jedem Chat.
Verfügbar, sobald OpenAI und Anthropic uns in ihren Katalogen listen. Bis dahin nutzen Sie den API-Schlüssel-Weg unten.
Eigenen OAuth-Client bauen
Wir stellen einen Standard-OAuth-2.1- + PKCE-Authorization-Server bereit. Endpunkte finden Sie unter /.well-known/oauth-authorization-server auf dem App-Host. Scopes sind read und draw. PKCE S256 ist verpflichtend.
Drei Registrierungswege: vorregistriert für verifizierte Partner, DCR (RFC 7591) mit Moderationswarteschlange und Client ID Metadata Documents.
AS-Metadaten ›Eingeschränkter Umfang, Host-gebunden, Rolling Refresh
Access-Tokens leben eine Stunde. Refresh-Tokens leben 30 Tage mit Rolling Rotation: Jedes Refresh erzeugt ein neues Refresh, das alte ist einmal-nutzbar, eine Wiederverwendung löst ketten-weiten Widerruf samt Security-Event aus. Tokens sind an einen Host gebunden (ein auf app.makcards.online ausgestellter Token funktioniert nicht auf mcp.journalingapp.app).
Nutzer sehen verbundene Apps und widerrufen sie in ihrem Profil → Zugriff für KI und Integrationen → Verbundene Apps.
Was Sie heute bauen können
Reflexions-Chatbot
Der Nutzer beschreibt eine Situation, der Agent zieht eine Karte mit scope=any, schickt das Bild zurück und stellt eine reflektierende Frage. Die Arbeit macht der Nutzer – der Agent hält den Raum.
Journal-Begleiter
Tägliche Anregung, die drei Karten zieht (count=3), den Nutzer zum Freischreiben einlädt und das Spread auf seiner Seite speichert. Bilder laufen nach 15 Minuten ab; der Agent holt sich pro Sitzung frische.
Gruppen-Facilitation-Copilot
Für Workshops und Team-Retrospektiven: Karten aus einem bestimmten Deck ziehen (scope=deck), sie auf der Seite des Agenten zeigen, optional einen Code an Teilnehmer per /invite-codes/generate ausgeben.
REST-Schnellstart
Zwei Kommandos: eine Karte ziehen, das Bild abrufen. Kein Webhook, kein Callback, kein Preflight.
KEY=mk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 1) Eine Karte aus einem beliebigen zugänglichen Deck ziehen curl -X POST https://app.makcards.online/api/v1/public/draw \ -H "Authorization: Bearer $KEY" \ -H "Content-Type: application/json" \ -d '{"scope":"any","count":1,"image_width":1024}' # 2) Die Antwort enthält drawn[0].image_url – einfach abrufen curl https://app.makcards.online/api/v1/public/decks/.../cards/.../image?w=1024&token=eyJhbGc... \ -o card.jpg
Vollständige maschinenlesbare Referenz: openapi.json · KI-sicheres Subset: openapi.ai.json · Anleitung: docs/en/24-public-api.
API-Schlüssel holen
-
1
In der App anmelden.
Öffnen Sie app.makcards.online und melden Sie sich an (Google oder Yandex). Ein Klick, kein separates Konto.
-
2
Öffnen Sie Profil → Zugriff für KI und Integrationen.
Der Bereich liegt neben Premium und Erfolgen. Die gleiche Stelle, die auch Shop-Partner verwenden.
-
3
Schlüssel erzeugen und sofort kopieren.
Der Schlüssel sieht aus wie
mk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Er wird einmal angezeigt; ein zweiter Blick ist nicht möglich. Speichern Sie ihn in einem Passwortmanager oder Ihrem Secret-Store. -
4
Behandeln Sie den Schlüssel wie ein Passwort.
Keine öffentlichen Repos, kein Support-Chat, keine Screenshots. Falls ein Schlüssel durchgesickert sein könnte, erzeugen Sie ihn neu – der alte hört innerhalb einer Minute auf zu funktionieren.
Mit API-Schlüssel verbinden
Ein Schlüssel, sieben Oberflächen. Hosted MCP für schnellen Start, local stdio, damit der Schlüssel auf Ihrer Maschine bleibt, schlichtes Bash für Agenten, die ohnehin eine Shell haben. Wählen Sie, was zu Ihrem Client passt.
Fügen Sie einen Eintrag unter mcpServers in ~/.claude.json (Claude Code) oder ~/Library/Application Support/Claude/claude_desktop_config.json (Desktop) hinzu.
{
"mcpServers": {
"makcards": {
"type": "http",
"url": "https://mcp.makcards.online/v1",
"headers": {
"Authorization": "Bearer mk_live_xxxxxxxxxxxxxxxxxx"
}
}
}
}
Cursor und Cline nutzen das gleiche MCP-Config-Format. Der Block ist identisch zu Claude.
{
"mcpServers": {
"makcards": {
"type": "http",
"url": "https://mcp.makcards.online/v1",
"headers": {
"Authorization": "Bearer mk_live_xxxxxxxxxxxxxxxxxx"
}
}
}
}
Zwei Optionen. MCP-Node (in aktuellen n8n-Builds verfügbar) – auf https://mcp.makcards.online/v1 zeigen, den Authorization-Header in den Credentials setzen. HTTP-Request-Node – REST direkt aufrufen:
URL: https://app.makcards.online/api/v1/public/draw
Method: POST
Headers: Authorization: Bearer mk_live_xxxxxxxxxxxxxxxxxx
Content-Type: application/json
Body: { "scope": "any", "count": 1, "image_width": 1024 }
Custom GPT Actions liest OpenAPI. Verwenden Sie das KI-sichere Subset, damit der Chat nicht versehentlich Perlen ausgeben kann.
Action source: https://makcards.online/api/v1/public/openapi.ai.json Authentication: API Key (Bearer) Auth value: mk_live_xxxxxxxxxxxxxxxxxx
Local stdio MCP. Der Schlüssel verlässt Ihre Maschine nicht – er geht direkt als Bearer an unsere REST-API. Erfordert Node.js 20+.
{
"mcpServers": {
"makcards": {
"command": "npx",
"args": ["-y", "@maccards/mcp"],
"env": {
"MAKCARDS_API_KEY": "mk_live_xxxxxxxxxxxxxxxxxx"
}
}
}
}
Kein Node.js? Starten Sie dieselbe Binary als Container. Das Image wird nur für linux/amd64 veröffentlicht, daher braucht Apple Silicon einen zusätzlichen Flag (siehe unten). Falls Sie Node 20+ haben, ist der npx-Tab oben einfacher.
linux/amd64-Hosts (Intel Mac, Intel/AMD Linux, Windows WSL2):
{
"mcpServers": {
"makcards": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "MAKCARDS_API_KEY",
"ghcr.io/makcards/mcp:latest",
"node", "dist/transports/stdio.js"
],
"env": {
"MAKCARDS_API_KEY": "mk_live_xxxxxxxxxxxxxxxxxx"
}
}
}
}
Apple Silicon (M1 / M2 / M3 / M4): fügen Sie --platform linux/amd64 hinzu, damit Docker das amd64-Image lädt und es über Rosetta ausführt. Funktioniert, aber der Start ist langsamer als die native npx-Option oben.
{
"mcpServers": {
"makcards": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--platform", "linux/amd64",
"-e", "MAKCARDS_API_KEY",
"ghcr.io/makcards/mcp:latest",
"node", "dist/transports/stdio.js"
],
"env": {
"MAKCARDS_API_KEY": "mk_live_xxxxxxxxxxxxxxxxxx"
}
}
}
}
Wenn Ihr Agent ohnehin in einer Shell läuft (Claude Code, Cursor Agent Mode, Aider, Codex, beliebige Container), ist das der kürzeste Weg: schlichtes HTTPS + Bearer, JSON-Antworten, keine MCP-Runtime zu installieren. Die vier Rezepte unten decken alles ab, was unsere MCP-Tools kapseln.
# Einmalige Einrichtung export MAKCARDS_API_KEY=mk_live_xxxxxxxxxxxxxxxxxx BASE=https://app.makcards.online/api/v1/public H="Authorization: Bearer $MAKCARDS_API_KEY" # Decks auflisten, die der Schlüssel lesen darf curl -s -H "$H" "$BASE/decks" | jq # 3 Karten aus beliebigem zugänglichen Deck ziehen curl -s -X POST "$BASE/draw" -H "$H" -H "Content-Type: application/json" \ -d '{"scope":"any","count":3,"image_width":1024}' | jq # Erstes Kartenbild direkt auf Platte speichern curl -s -X POST "$BASE/draw" -H "$H" -H "Content-Type: application/json" \ -d '{"scope":"any","count":1,"image_width":1024}' \ | jq -r '.drawn[0].image_url' \ | xargs curl -s -o card.jpg # Rate-Limit-Zustand prüfen curl -s -H "$H" "$BASE/usage" | jq
Zwei Gründe für Bash statt MCP: kleinerer Agent-Kontext (keine Tool-Schemata zu laden) und ein Prozess weniger zu verwalten. Gründe für MCP: Ihr Client hat keine Shell (ChatGPT Apps, Claude Desktop, Cursor ohne Agent Mode), oder Sie wollen Slash-Command-Prompts.
Hosted, local oder shell? Hosted MCP (mcp.makcards.online) ist der schnellste Weg und funktioniert hinter Unternehmensproxys. Local stdio ist die Wahl, wenn Ihre Sicherheitsrichtlinie „keine Drittanbieter-MCP-Dienste“ vorgibt: Ihr KI-Client spricht mit einem lokalen Prozess, der wiederum mit Ihrem Schlüssel unsere REST-API anspricht. Bash überspringt die MCP-Ebene komplett und passt nur zu Agenten, die ohnehin shellen können. Gleiche Tools, gleiche Daten.
Rate Limits
Pro Konto, pro Fenster. POST /draw wird als Batch verbucht: count=5 verbraucht 5 Einheiten.
| Fenster | Free | Premium |
|---|---|---|
| Züge pro Minute | 10 | 120 |
| Züge pro Stunde | 70 | 2 000 |
| Züge pro Tag | 170 | 10 000 |
/decks pro Minute | 10 | 120 |
| Bildabrufe pro Minute | 20 | 240 |
Aktueller Stand unter GET /api/v1/public/usage. Header in jeder Antwort: RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset (RFC 9331).
Datenschutz und Sicherheit
Wasserzeichen bleibt
Jedes Kartenbild trägt ein Domain-Wasserzeichen mit 6 % Deckkraft. Das Entfernen verletzt die Bedingungen. Die API gibt das unmarkierte Original niemals heraus.
Nicht vertrauenswürdige Inhalte
Deck- und Kartentexte sind nutzergeneriert. Behandeln Sie sie als nicht vertrauenswürdige Eingabe – lassen Sie niemals einen Namen oder eine Beschreibung Ihren System-Prompt überschreiben.
Kein medizinischer Dienst
MAC-Karten sind ein Reflexionswerkzeug. Ihr Agent darf eine gezogene Karte nicht als Diagnose, Vorhersage oder Behandlung darstellen. Fügen Sie Links zu Krisendiensten ein, falls Nutzer in Belastung sein könnten.
Details: Nutzungsbedingungen · Datenschutzerklärung.
FAQ
Häufige Fragen von Integratoren.
Warum zwei OpenAPI-Dokumente?
POST /invite-codes/generate, was Perlen kostet. Würde ein Nutzer einem Chat versehentlich erlauben, diese Operation aufzurufen, zahlten Sie. Das KI-sichere Subset entfernt den Bereich der Einladungscodes vollständig — es gibt für den Chat keinen Codepfad, um Perlen auszugeben.Kann ich ein Bild ohne Wasserzeichen bekommen?
Was bedeutet scope=any?
Loggen Sie meinen Chat?
Wie aktuell ist die OpenAPI-Spezifikation?
go:embed mit der Binary ausgeliefert. Jedes API-Release baut die Spec-Endpunkte neu. Es gibt kein separates Manifest, das man vergessen könnte zu veröffentlichen.Brauche ich MCP, wenn mein Agent schon Shell-Zugriff hat?
curl ausführen und JSON parsen kann, ist die REST-API der einfachere Weg. MCP existiert für sandboxed Clients (ChatGPT Apps, Claude Desktop, Cursor), die nicht shellen können. Hosted MCP und local stdio sind dünne Hüllen über denselben REST-Endpunkten, Sie verpassen also keine Funktionalität. Siehe den Tab Bash / Agent-Shell für fertige curl-Rezepte.