CDP MCP Server
CDP MCP Server
Ein MCP-Server (Model Context Protocol), der die Customer Data Platform von Acquia für Ihr LLM zugänglich macht. Verbinden Sie Claude, Copilot oder einen beliebigen MCP-fähigen Client mit diesem Server, und er kann Ihre Tenants lesen, Kampagnen steuern, Workflows bearbeiten, Berichte abfragen und generell die langweiligen Verwaltungsaufgaben erledigen, damit Sie es nicht tun müssen.
Entwickelt, weil das Klicken durch CDP-Bildschirme um 2 Uhr morgens niemandem Spaß macht.
Was Sie bekommen
~300 Tools für Berechtigungen, Data Warehouse, Kampagnen, Konfiguration, Konnektoren, Berichte, Vorhersagen, Mailer, E-Mail-fähige Seiten, Sicherheit, Cache und Status-APIs — siehe
SUPPORTED_TOOLS.mdfür den vollständigen Katalog8 Playbook-Ressourcen, die dem LLM beibringen, wie man echte mehrstufige Abläufe sequenziert (Kampagnen-Assistent, C360-Profil-Rendering, Workflow-Erstellung, Konnektor-Onboarding, UDMP-Schema-Bearbeitungen usw.) — diese basieren auf dem Reverse-Engineering der Vega- und Config-UIs, damit das Modell nicht mehr raten muss
Zwei Authentifizierungsmodi: OAuth2-Passwort-Grant (automatisch aktualisiert, 401-Retry, Lock-serialisiert) oder ein statischer Bearer-Token, falls Sie bereits einen haben
Dev / QA / Prod-Umschaltung über eine einzelne
CDP_ENVIRONMENT-VariableStdio-Transport, sodass er direkt in Claude Desktop, VS Code Copilot, Continue, mcphost, Open WebUI (via supergateway) oder den MCP Inspector integriert werden kann
Wenn das oben Genannte wie Fachchinesisch klingt, überfliegen Sie TUTORIAL.md — es führt durch jeden Teil mit Befehlen zum Kopieren und Einfügen. Die vollständige Liste der Tool-Namen und deren Funktionen finden Sie in SUPPORTED_TOOLS.md.
Related MCP server: sitecore-mcp-server
Schnellstart
# 1. Clone and install
git clone https://github.com/atharva-joshi77/cdp-mcp.git
cd cdp-mcp
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
# 2. Configure
cp .env.example .env
# edit .env: CDP_ENVIRONMENT, CDP_TENANT_ID, and either
# CDP_CLIENT_ID/SECRET + CDP_USERNAME/PASSWORD (OAuth2)
# or CDP_AUTH_TOKEN (static token)
# 3. Run
cdp-mcpcdp-mcp spricht JSON-RPC über stdio. Wenn Sie es also einfach so ausführen, sieht es so aus, als würde es hängen — das ist korrekt. Verbinden Sie es mit einem MCP-Client (siehe unten), und es wird zum Leben erweckt.
Verbindung mit Claude Desktop herstellen
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"cdp": {
"command": "/absolute/path/to/cdp-mcp/.venv/bin/cdp-mcp",
"env": {
"CDP_ENVIRONMENT": "dev",
"CDP_TENANT_ID": "12345",
"CDP_CLIENT_ID": "...",
"CDP_CLIENT_SECRET": "...",
"CDP_USERNAME": "...",
"CDP_PASSWORD": "..."
}
}
}
}Starten Sie Claude neu, und Sie sollten sehen, dass ~300 cdp_*-Tools in der Tool-Auswahl erscheinen. Für VS Code, Continue, Ollama/Open WebUI und MCP Inspector-Setups finden Sie die vollständigen Anleitungen in TUTORIAL.md §5.
Anforderungen
Ding | Minimum |
Python | 3.11+ |
pip | 23.0+ |
Ein CDP-Tenant mit API-Anmeldedaten | ja, sorry |
Abhängigkeiten (automatisch installiert):
mcp>=1.13.0— FastMCP-Frameworkhttpx>=0.27.0— async HTTPpydantic+pydantic-settings— Konfiguration + Validierungpython-dotenv—.env-Laden
Projektstruktur
src/cdp_mcp/
├── __main__.py # entry point: `cdp-mcp` / `python -m cdp_mcp`
├── server.py # FastMCP server, registers tools + resources
├── config.py # env/.env loader
├── auth/ # OAuth2 + static-token provider
├── utils/ # shared httpx client, error helpers
├── resources/ # MCP resource URIs (tenant/*, docs/*)
├── docs/ # the eight playbooks, shipped as resources
├── types/ # pydantic request/response models
└── tools/ # one subpackage per CDP service area
├── permissions/ users, roles, clients
├── dw/ data warehouse, A360, audiences, offers, trackers
├── campaign/ defs, audiences, messages, dispatches, runs, exports
├── config_api/ tenants, workflows, schedules, UDMP, DQE, clusters…
├── connectors/ input + output connectors, templates
├── reports/ dashboards, widgets, cubes, QL
├── predictions/ prediction defs + content templates
├── mailer/ accounts, subusers, identifiers, batches
├── emailable_pages/ emailable-pages CRUD
├── security/ token, auth, SSO, password reset
├── cache/ cache ops
├── spam/ spam score
├── status/ status + orchestration/purge status
├── provisions/ self-service provisioning
├── global_actions/ platform-wide actions
└── alerts/ stub (real Alerts API lives in a different stack)Jedes Tool teilt sich einen einzigen HttpClient mit gepoolten httpx-Verbindungen, einen gemeinsamen Auth-Token-Cache, ein asyncio.Lock für Aktualisierungen, einen One-Shot-401-Retry, URL-kodierte Tenant-IDs und logger.info-Request/Response-Tracing. Wenn sich etwas falsch anfühlt, sagen die Logs normalerweise die Wahrheit.
Playbooks (das Geheimrezept)
Tool-Listen allein reichen nicht aus — viele CDP-Abläufe sind "POST einer Definition, dann POST ?action=publish, dann GET-Status, dann vielleicht POST ?action=schedule mit einer separaten Zeitplan-ID." Das LLM macht dies routinemäßig falsch, wenn es sich selbst überlassen bleibt.
Daher liefert der Server acht Markdown-Playbooks als MCP-Ressourcen:
Ressource | Was sie abdeckt |
| Vollständiger Vega-Kampagnen-Assistent-Lebenszyklus, folderId-Regeln, Batch- vs. getriggerte Veröffentlichung, datasetDef-Kopie-Wiederherstellung, Datenexport-Speichern→Ausführen, asynchrone Zielgruppen-Größenbestimmung |
| Zeitplan-CRUD, Konnektor-/Bericht-/Export-/Kampagnen-Läufe, sQueryDef-Validierung→Speichern, Provisioner, Komprimierung, Leeren-vor-Löschen |
| Drei-Parallel-Fetch-Profil-Laden, Layout-Deep-Merge, Echtzeit-Polling, |
| DQE-Batch-Schreibvorgänge, A360-Drei-Phasen-Speicherungen, Status-Seiten-Job-Steuerung, DSGVO-Admin-Override |
| Array-Wrap-POST, Cube-Metadaten-Durchlauf, Ad-hoc- vs. zwischengespeicherte Ausführung, doppelte Frischeprüfung |
| symbolische workflowId vs numerische workflowDBId, Graph-Laden, Schritt- + Edge-Batching, Verb-Taxonomie |
| Eingabe-/Ausgabe-Konnektor-Aufteilung, 4- oder 5-Schritte-Assistent, die |
| Verschachteltes Lesen/flaches Schreiben, Kaskadierung, Veröffentlichungsreihenfolge, Whitelist für benutzerdefinierte Attribute |
MCP-Clients entdecken diese beim Verbinden automatisch, und der instructions-Block des Servers verweist das Modell auf jedes einzelne.
Hinweise zur Authentifizierung
OAuth2 (bevorzugt): Der Provider ruft
POST {baseUrl}/token?action=createmit Anmeldedaten in den Headern auf, speichert den Token im Arbeitsspeicher, serialisiert gleichzeitige Aktualisierungen hinter einemasyncio.Lockund aktualisiert ca. 60 Sekunden vor Ablauf. Jeder401-Fehler von einem nachgelagerten Aufruf löst eine einmalige erzwungene Aktualisierung + Wiederholung aus.Statischer Token: Setzen Sie
CDP_AUTH_TOKEN, und der OAuth2-Pfad wird komplett übersprungen. Sie sind selbst für die Rotation verantwortlich.
Speichern Sie niemals echte Geheimnisse in diesem Repository. .env ist in gitignore enthalten.
Entwicklung
# smoke test: should print the server's capabilities + tool list
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}' | cdp-mcp
# interactive tool browser
npx @modelcontextprotocol/inspector cdp-mcp
# verify tool count
python3 -c "from cdp_mcp.server import create_server; import asyncio; \
print(len(asyncio.run(create_server().list_tools())))"Es gibt eine umfassendere Matrix zur Fehlerbehebung (Server startet nicht, 401s, Client kann nicht verbinden usw.) in TUTORIAL.md §9.
Status
Tool-Anzahl: 301 über 12 CDP-Dienste
Playbook-Ressourcen: 8
Alerts-Tools sind absichtlich als Stubs vorhanden — die echte Alerts-API befindet sich auf einem separaten MuleSoft/Go-Stack, der eine eigene Basis-URL und Authentifizierung benötigt (PRs willkommen)
Integrations-Test-Harness ist in Arbeit (Grundgerüst vorhanden, vollständige Vertragsabdeckung als Nachverfolgung geplant)
Mitwirken
Forken, Branch erstellen, hacken.
Führen Sie
./gradlew-equivalentaus — okay, einfachpip install -e .und den obigen Rauchtest.Wenn Sie ein Tool hinzufügen, registrieren Sie es im passenden
tools/<area>/__init__.pyRegistrar.Wenn Sie einen mehrstufigen Ablauf hinzufügen, schreiben Sie ein Playbook dafür unter
src/cdp_mcp/docs/und registrieren Sie die Ressource inresources/resource_providers.py.Öffnen Sie einen PR. Seien Sie nett in der Beschreibung.
Lizenz
Intern / proprietär — prüfen Sie dies mit Acquia, bevor Sie es außerhalb Ihres eigenen Tenants verwenden.
Erstellt mit gleichen Teilen httpx, pydantic und Trotz gegen fehlerhafte CDP-Assistenten.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceThe first full-featured MCP server for Adobe Experience Platform: 29 tools across schemas, datasets, profiles, segments, query service, and GDPR/CCPA privacy operations. Extends Adobe's read-only beta with production-grade write operations.426Apache 2.0
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides AI agents with direct read/write access to Sitecore CMS through 100+ tools across Item Service, GraphQL, and PowerShell APIs.148Apache 2.0
- FlicenseNot gradedqualityCmaintenanceA single MCP server that exposes safe, permission-checked tools for AI assistants to reach file systems, databases, APIs, Git, cloud services, and business applications.
- AlicenseCqualityCmaintenanceA comprehensive MCP server covering the full GoHighLevel API surface with 651 tools, enabling management of contacts, opportunities, calendars, invoices, and more through natural language, with multi-tenant support and read-only safety defaults.100351MIT
Related MCP Connectors
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
34 production API tools over one hosted MCP endpoint.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/atharva-joshi77/cdp-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server