@dwao/adobe-launch-mcp-server
v1.0.6
Published
MCP server for Adobe Launch (Tags) and Adobe Experience Platform APIs — 69 tools for complete tag management, schema configuration, and data collection via Web SDK and Mobile SDK
Maintainers
Readme
@dwao/adobe-launch-mcp-server
An MCP (Model Context Protocol) server that provides complete programmatic access to Adobe Launch (Tags) and Adobe Experience Platform (AEP) APIs. Designed to be used with AI agents via npx for automating tag management, schema configuration, and data collection infrastructure using the Web SDK and Mobile SDK approaches.
Features
- 69 MCP tools covering the full Adobe Launch + AEP configuration lifecycle
- Dual auth: OAuth client credentials (auto-refresh) or direct access token
- Web SDK + Mobile SDK: Full support for both platforms
- End-to-end workflows: Property → Host → Environment → Extensions → Data Elements → Rules → Library → Build → Publish
- AEP integration: Schemas, field groups, datasets for XDM data modeling
- npx-ready: Run directly with
npx @dwao/adobe-launch-mcp-server
Quick Start
Prerequisites
- Node.js >= 18 (or Bun)
- Adobe Developer Console project with:
- OAuth Server-to-Server credentials (recommended) OR a valid access token
- API Key, Org ID, and Company ID
Installation
# Clone and build
git clone <repo-url>
cd adobe-launch-mcp
bun install # or npm install
bun run build # or npm run buildConfiguration
Copy .env.example and fill in your credentials:
cp .env.example .envEnvironment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| CLIENT_ID | Yes* | OAuth client ID from Adobe Developer Console |
| CLIENT_SECRET | Yes* | OAuth client secret |
| ADOBE_ACCESS_TOKEN | Yes* | Direct access token (alternative to OAuth) |
| API_KEY | Yes | API key from Adobe Developer Console |
| IMS_ORG_ID | Yes | Adobe organization ID (e.g., ABC123@AdobeOrg) |
| COMPANY_ID | Yes | Adobe Launch company ID |
| ADOBE_TENANT_ID | No | AEP tenant namespace (default: digiwebanaoptznapacptrsd) |
| ADOBE_SANDBOX_NAME | No | AEP sandbox name (default: aep-test) |
*Provide either CLIENT_ID + CLIENT_SECRET (OAuth, recommended) or ADOBE_ACCESS_TOKEN (direct token).
Authentication Modes
OAuth Client Credentials (recommended for production)
Uses CLIENT_ID and CLIENT_SECRET to automatically obtain and refresh access tokens via the Adobe IMS token endpoint. Tokens are refreshed transparently before expiry.
Direct Access Token (for quick testing)
Set ADOBE_ACCESS_TOKEN directly. No automatic refresh -- when the token expires, you must provide a new one.
Usage
With Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"adobe-launch": {
"command": "node",
"args": ["/absolute/path/to/adobe-launch-mcp/dist/index.js"],
"env": {
"CLIENT_ID": "your-client-id",
"CLIENT_SECRET": "your-client-secret",
"API_KEY": "your-api-key",
"IMS_ORG_ID": "your-org-id@AdobeOrg",
"COMPANY_ID": "your-company-id"
}
}
}
}With Claude Code
Add to your project's .claude/settings.json:
{
"mcpServers": {
"adobe-launch": {
"command": "node",
"args": ["/absolute/path/to/adobe-launch-mcp/dist/index.js"],
"env": {
"CLIENT_ID": "your-client-id",
"CLIENT_SECRET": "your-client-secret",
"API_KEY": "your-api-key",
"IMS_ORG_ID": "your-org-id@AdobeOrg",
"COMPANY_ID": "your-company-id"
}
}
}
}Via npx (after publishing)
npx @dwao/adobe-launch-mcp-serverDevelopment
bun run dev # Run with tsx (hot reload)
bun run build # Compile TypeScript
bun run start # Run compiled JSTools Reference
Adobe Launch -- Properties (6 tools)
| Tool | Description |
|------|-------------|
| adobe_launch_list_properties | List all properties for the configured company |
| adobe_launch_create_property | Create a new property (web or mobile platform) |
| adobe_launch_get_property | Get property details by ID |
| adobe_launch_update_property | Update property attributes (name, domains, SSL, etc.) |
| adobe_launch_delete_property | Delete a property and all its resources |
| adobe_launch_list_company_properties | List properties for a specific company ID |
Adobe Launch -- Hosts (5 tools)
| Tool | Description |
|------|-------------|
| adobe_launch_create_host | Create an Akamai or SFTP host |
| adobe_launch_get_host | Get host details by ID |
| adobe_launch_update_host | Update host attributes |
| adobe_launch_list_property_hosts | List all hosts for a property |
| adobe_launch_delete_host | Delete a host |
Adobe Launch -- Environments (5 tools)
| Tool | Description |
|------|-------------|
| adobe_launch_create_environment | Create a development/staging/production environment |
| adobe_launch_get_environment | Get environment details by ID |
| adobe_launch_update_environment | Update environment attributes |
| adobe_launch_list_environments | List all environments for a property |
| adobe_launch_delete_environment | Delete an environment |
Adobe Launch -- Extensions (6 tools)
| Tool | Description |
|------|-------------|
| adobe_launch_add_extension | Install an extension on a property (Core, Web SDK, ACDL, etc.) |
| adobe_launch_list_installed_extensions | List extensions installed on a property |
| adobe_launch_list_extension_packages | List all available extension packages in the catalog |
| adobe_launch_get_extension_id_by_name | Resolve an extension name to its installed ID |
| adobe_launch_get_extension | Get installed extension details by ID |
| adobe_launch_delete_extension | Remove an extension from a property |
Adobe Launch -- Data Elements (5 tools)
| Tool | Description |
|------|-------------|
| adobe_launch_list_data_elements | List all data elements for a property |
| adobe_launch_create_data_element | Create a data element (supports Core, Web SDK, ACDL types) |
| adobe_launch_get_data_element | Get data element details by ID |
| adobe_launch_update_data_element | Update data element attributes |
| adobe_launch_delete_data_element | Delete a data element |
Core extension: constant, cookie, custom-code, dom-attribute, javascript-variable, local-storage, page-info, query-string-parameter, random-number, session-storage, visitor-behavior, device-attributes, runtime-environment, conditional-value, merged-objects, javascript-tools
Adobe Experience Platform Web SDK: variable, xdm-object, identity-map, event-merge-id, qoe-details-data
Adobe Client Data Layer: datalayer-computed-state, datalayer-size
Adobe Launch -- Rules (6 tools)
| Tool | Description |
|------|-------------|
| adobe_launch_list_rules | List all rules for a property |
| adobe_launch_create_rule | Create a new rule |
| adobe_launch_get_rule | Get rule details by ID |
| adobe_launch_update_rule | Update rule attributes (name, enabled, order) |
| adobe_launch_delete_rule | Delete a rule |
| adobe_launch_list_rule_components | List all components (events/conditions/actions) for a rule |
Adobe Launch -- Rule Components (4 tools)
| Tool | Description |
|------|-------------|
| adobe_launch_create_rule_component | Create an event, condition, or action and attach to a rule |
| adobe_launch_get_rule_component | Get rule component details by ID |
| adobe_launch_update_rule_component | Update a rule component |
| adobe_launch_delete_rule_component | Delete a rule component |
Core events: click, custom-code, custom-event, direct-call, dom-ready, element-exists, enters-viewport, hover, library-loaded, window-loaded, time-on-page, history-change, tab-blur, tab-focus, and more
Core conditions: browser, cookie, custom-code, domain, path, value-comparison, variable, screen-resolution, operating-system, and more
Core actions: custom-code, direct-call
Web SDK events: send-event-complete, decisions-received, subscribe-ruleset-items, monitor-triggered
Web SDK actions: send-event, set-consent, update-variable, apply-propositions, apply-response, redirect-with-identity, send-media-event, evaluate-rulesets, and more
Adobe Client Data Layer events: datalayer-push
Adobe Client Data Layer actions: reset-datalayer, push-event-to-datalayer
Adobe Launch -- Libraries & Publishing (7 tools)
| Tool | Description |
|------|-------------|
| adobe_launch_list_libraries | List all libraries for a property |
| adobe_launch_get_library | Get library details by ID |
| adobe_launch_create_library | Create a new library |
| adobe_launch_add_resources_to_library | Add rules, data elements, or extensions to a library |
| adobe_launch_remove_resources_from_library | Remove resources from a library |
| adobe_launch_set_library_environment | Assign a library to an environment |
| adobe_launch_transition_library | Transition library state (submit/approve/reject/develop) |
Adobe Launch -- Builds (4 tools)
| Tool | Description |
|------|-------------|
| adobe_launch_create_build | Trigger a build for a library |
| adobe_launch_list_builds | List builds for a library |
| adobe_launch_get_build | Get build details and status |
| adobe_launch_republish_build | Republish an existing build |
Adobe Launch -- App Configurations (5 tools)
| Tool | Description |
|------|-------------|
| adobe_launch_list_app_configurations | List app configurations for mobile SDK |
| adobe_launch_get_app_configuration | Get app configuration details |
| adobe_launch_create_app_configuration | Create an app configuration (APNS/FCM push credentials) |
| adobe_launch_update_app_configuration | Update app configuration attributes |
| adobe_launch_delete_app_configuration | Delete an app configuration |
AEP -- Schemas (6 tools)
| Tool | Description |
|------|-------------|
| aep_list_schemas | List schemas in a container (tenant/global) |
| aep_create_schema | Create an XDM ExperienceEvent schema |
| aep_get_schema | Get full schema details by ID |
| aep_update_schema | Update a schema using JSON Patch operations |
| aep_delete_schema | Delete a tenant schema |
| aep_attach_field_group_to_schema | Attach a field group to a schema |
AEP -- Field Groups (6 tools)
| Tool | Description |
|------|-------------|
| aep_list_field_groups | List tenant field groups |
| aep_create_field_group | Create a field group from raw payload |
| aep_create_field_group_from_fields | Create a field group from a simple field list (with nesting support) |
| aep_get_field_group | Get field group details by ID |
| aep_update_field_group | Update a field group using JSON Patch operations |
| aep_delete_field_group | Delete a tenant field group |
AEP -- Datasets (4 tools)
| Tool | Description |
|------|-------------|
| aep_list_datasets | List all datasets |
| aep_create_dataset | Create a dataset linked to a schema |
| aep_get_dataset | Get dataset details by ID |
| aep_delete_dataset | Delete a dataset |
Typical Workflows
Web SDK Implementation (end-to-end)
1. adobe_launch_create_property (platform: "web")
2. adobe_launch_create_host (type: "akamai")
3. adobe_launch_create_environment (stage: "development")
4. adobe_launch_add_extension ("Core")
5. adobe_launch_add_extension ("Adobe Experience Platform Web SDK")
6. adobe_launch_create_data_element (multiple)
7. adobe_launch_create_rule
8. adobe_launch_create_rule_component (events, conditions, actions)
9. adobe_launch_create_library
10. adobe_launch_add_resources_to_library
11. adobe_launch_set_library_environment
12. adobe_launch_create_buildAEP Schema Setup
1. aep_create_schema
2. aep_create_field_group_from_fields
3. aep_attach_field_group_to_schema
4. aep_create_datasetMobile SDK Setup
1. adobe_launch_create_property (platform: "mobile")
2. adobe_launch_create_app_configuration
3. adobe_launch_add_extension (mobile extensions)
4. ... (same flow as web for rules/data elements/library/build)Adobe API Coverage
| API | Resources | Operations | Coverage | |-----|-----------|------------|----------| | Reactor API (Launch) | Properties, Hosts, Environments, Extensions, Data Elements, Rules, Rule Components, Libraries, Builds, App Configurations | Full CRUD + Library lifecycle + Build/Publish | Complete for tag configuration | | Schema Registry API (AEP) | Schemas, Field Groups | Full CRUD + attach | Complete for XDM modeling | | Catalog Service API (AEP) | Datasets | List, Create, Get, Delete | Complete for dataset management |
License
MIT
