Repository navigation
feat(dynamic-yield): add Dynamic Yield MCP - #555
Merged
Merged
Conversation
Wraps DY's public server-side APIs: Experience API choose (campaign and recommendation QA with preview tokens), pageview/event/engagement collect, product feed bulk updates with transaction status, and Profile Anywhere. The DY API key arrives as the connection token, so the MCP is listed in auth-exemptions.json like the other token-forwarding MCPs. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/blog-generator
September 29, 2026 21:56
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/content-scraper
September 29, 2026 21:57
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/deco-news-weekly-digest
September 29, 2026 21:57
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/discord-read
September 29, 2026 21:57
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/google-analytics
September 29, 2026 21:57
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/google-big-query
September 29, 2026 21:57
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/google-calendar
September 29, 2026 21:57
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/google-calendar-sa
September 29, 2026 21:57
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/google-drive
September 29, 2026 21:57
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/google-meet
September 29, 2026 21:57
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/google-search-console
September 29, 2026 21:57
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/google-sheets
September 29, 2026 21:57
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/google-slides
September 29, 2026 21:57
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/google-tag-manager
September 29, 2026 21:58
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/google-workspace
September 29, 2026 21:58
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/nanobanana
September 29, 2026 21:58
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/object-storage
September 29, 2026 21:58
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/perplexity
September 29, 2026 21:58
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/slack-mcp
September 29, 2026 21:59
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/vtex-docs
September 29, 2026 21:59
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/whatsappagent
September 29, 2026 21:59
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/youtube-channel-admin
September 29, 2026 21:59
Destroyed
deco-hosting
Bot
temporarily deployed
to
preview/pr-555/youtube-search
September 29, 2026 21:59
Destroyed
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
New
dynamic-yieldMCP (deco HTTP server) wrapping the public Dynamic Yield server-side APIs, published to the store viaregistry.json.DY_CHOOSEPOST /v2/serve/user/choose: campaign/recommendation QA,dyApiPreviewtokens, analytics metadata; no implicit pageview by defaultDY_TRACK_PAGEVIEW/DY_TRACK_EVENTS/DY_TRACK_ENGAGEMENT/v2/collect/user/{pageview,event,engagement}(descriptions warn they write real data)DY_FEED_BULKPOST /v2/feeds/{feedId}/bulk: update / partial / delete, 1 to 100 actions (destructive hint)DY_FEED_TRANSACTION_STATUSGET /v2/feeds/{feedId}/transaction/{id}[/item/{sku}]DY_USER_PROFILEGET /v2/userprofile(optional separate key)Dynamic Yield has no public API for campaigns, audiences, strategies or reports, so those stay in the DY console.
Auth: needs reviewer sign-off
The DY server-side API key is the connection token (
app.jsonauth.type: token), read fromMESH_REQUEST_CONTEXT.authorization. BecauseAuthorizationcarries the upstream key, there is no shared secret forwithAuth;dynamic-yieldis added toauth-exemptions.jsonlikeperplexityandstrapi. Tools usecreatePrivateTool. Configuration:region(us/eu) and optionalprofileAnywhereKey.Wiring
package.jsonworkspace,deploy.json(kubernetes-bun,sites-dynamic-yield.deco.site),bun.lock.registry.jsonregenerated withbun run build:registry(117 public items,deco/dynamic-yieldlisted).image/png).Verification
bun run fmt --check,bun run lint,bun run check:registry,scripts/check-auth.ts,scripts/check.ts dynamic-yield,scripts/test.ts dynamic-yield: all pass (lint warnings are in other MCPs).server/lib/client.test.ts: region to base URL, Bearer stripping and missing key, error mapping withDY-Trace-ID, array responses, feed bulk schema limits (over 100, update without data, bad feed id, empty).tools/listreturns the 7 tools.parseCatalog) accepts the regeneratedregistry.jsonand findsdeco/dynamic-yield.🤖 Generated with Claude Code
Summary by cubic
Adds a
dynamic-yieldMCP to the store wrapping Dynamic Yield's public server-side APIs, with 7 tools covering campaign and recommendation QA, event tracking, product feed sync, and profile reads.Auth
Authorizationheader, so there's no shared secret forwithAuth;dynamic-yieldjoinsauth-exemptions.jsonalongsideperplexityandstrapi. That exemption is the main reviewer decision.Notes
DY_FEED_BULKmodifies the live catalog used by recommendations, and the tracking tools write real analytics data — the tool descriptions warn to use test users.us/eu) and optionally a Profile Anywhere key; campaigns, audiences, strategies, and reports have no public API and stay in the DY console.Written for commit bc67f7d. Summary will update on new commits.