getDynamoi

Dynamoi MCP Server

Community getDynamoi
Updated

Music distribution and promotion, built for AI agents: MCP server and CLI for Dynamoi.

Dynamoi MCP Server

Music promotion, built for AI agents.

npm versionlicenseMCP RegistryAdd to CursorInstall in VS Code

Music promotion from your AI agent. Connect Claude, ChatGPT, Codex or Cursorto check results and manage Smart Links and, where your assistant allowspurchases, launch and fund Spotify and YouTube campaigns with the artist'sexplicit consent. Artists who distribute with Dynamoi can manage releases theretoo. Use the hosted MCP server, or use this package as a library.

https://dynamoi.com/mcp

The hosted server needs no install. Point any MCP client that supports remoteStreamable HTTP and OAuth at that URL, and the user signs in with theirDynamoi account.

About Dynamoi

Dynamoi is a music promotion platform founded in 2021 by Trevor Loucks. Itruns managed Meta and YouTube ad campaigns for independent artists, labels,managers, and YouTube creators on any distributor, alongside free Smart Linksand analytics. Artists who want everything in one account can also distributethrough Dynamoi.

  • Free Smart Links: release pages and artist hubs built from SpotifyURLs, with link analytics, themes, validated pixel IDs, and team seats.
  • Managed Smart Campaigns: Meta ads that promote Spotify tracks, albums,and playlists.
  • YouTube campaigns: managed Google Ads campaigns for YouTube channelgrowth.
  • Music distribution (optional): delivery to 100+ stores. Applications arescored against five requirements, and approval is not guaranteed.
  • YouTube promotion Shop: one-off YouTube video promotion with nosubscription.

Campaigns run on Dynamoi's own managed Meta and Google ad infrastructure. Theyreach real people through official ad networks, never bots, fake streams, orpaid playlist placement. Results vary and are never guaranteed.

Dynamoi is based in Sioux Falls, South Dakota, and is operated by humans,assisted by AI. People make the decisions and are accountable for everycampaign and support reply. AI helps with ad creative, campaign monitoring,reporting, and routine tasks.

Smart Links are free. Starter is $25/month per artist, and your planprice becomes ad credit. Eligible new artists get double credit the first month.Campaign budgets start at $10/day. Seepricing.

Agents can read the same overview before sign-in through the dynamoi_abouttool or the dynamoi://about resource.

Connect

Each client opens the Dynamoi sign-in page on first use.

ChatGPT

Open the Dynamoi app in the ChatGPT directory.In developer mode you can instead add a custom app with the MCP server URLhttps://dynamoi.com/mcp and OAuth authentication. ChatGPT gets thedirectory catalog.

Claude (web and desktop)

Open Settings โ†’ Connectors, choose Add custom connector, and enterhttps://dynamoi.com/mcp.

Claude Code

claude mcp add --transport http dynamoi https://dynamoi.com/mcp

Then run /mcp in Claude Code to sign in.

The Dynamoi plugin from theagent plugins repositorybundles Dynamoi skills with the directory catalog onhttps://dynamoi.com/mcp/directory:

/plugin marketplace add getDynamoi/agent-plugins
/plugin install dynamoi@dynamoi

Cursor

Use the Add to Cursor badge above, or add Dynamoi to ~/.cursor/mcp.json(or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "dynamoi": {
      "url": "https://dynamoi.com/mcp"
    }
  }
}

VS Code

Use the Install in VS Code badge above, or add Dynamoi to.vscode/mcp.json:

{
  "servers": {
    "dynamoi": {
      "type": "http",
      "url": "https://dynamoi.com/mcp"
    }
  }
}

Gemini CLI

Install the Dynamoi extension from theagent plugins repository:

gemini extensions install https://github.com/getDynamoi/agent-plugins

Codex CLI

codex mcp add dynamoi --url https://dynamoi.com/mcp
codex mcp login dynamoi

Or add the server to ~/.codex/config.toml and run codex mcp login dynamoi:

[mcp_servers.dynamoi]
url = "https://dynamoi.com/mcp"

OpenClaw

openclaw mcp add dynamoi --url https://dynamoi.com/mcp --transport streamable-http --auth oauth \
  --oauth-client-metadata-url https://dynamoi.com/api/oauth/clients/openclaw \
  --oauth-scope "offline_access dynamoi:read dynamoi:mcp.full dynamoi:billing.read dynamoi:campaign.launch dynamoi:campaign.write dynamoi:distribution.apply dynamoi:distribution.read dynamoi:platform.read dynamoi:platform.write dynamoi:smart_links.write"
openclaw mcp login dynamoi

The metadata URL is Dynamoi's reviewed client document for OpenClaw, whichrecognizes OpenClaw by its published identity. OpenClaw gets Full access withor without it, because it signs in on your own computer.

The dynamoi skill teaches OpenClaw agents theDynamoi workflows and safety rules. Install it from ClawHub withopenclaw skills install @getdynamoi/dynamoi.

Command line

The dynamoi CLI signs in once with OAuth and runs anyDynamoi tool as a command, generated from the live tool schemas:

npm install --global dynamoi
dynamoi login
dynamoi tools

Other MCP clients

Use https://dynamoi.com/mcp as a remote Streamable HTTP server. The clientmust handle an OAuth 401 challenge (MCP authorization). Stdio-only clientsneed a remote-to-stdio bridge.

Which tools a client sees

Every client gets one of two tiers. The server picks it from the identity theOAuth client signs in with, not from anything the client claims about itself.

Tier Who gets it What it includes
Full Reviewed clients (Codex CLI, Claude on the web or desktop and Claude Code, OpenClaw via Dynamoi's client document) and any app that signs in on your own computer (loopback or https://vscode.dev/redirect return addresses, no device code), such as Claude Code, Codex, OpenClaw, Cursor, VS Code and Gemini CLI All 38 tools, plus the Dynamoi prompts and reference resources, including campaign launches, budget changes and Shop checkout links
Directory ChatGPT, Claude added from the directory listing (https://dynamoi.com/mcp/directory), unreviewed web apps, device-code sign-ins and requests made before sign-in 24 review-safe advertised tools: reads, Smart Links, distribution and About. No billing, campaign launch or changes, platform connection starters, or Shop checkout, and the scopes they need are never granted.

Seeing a tool is not permission to call it. A Full client can approve everyscope for its tools; a Directory client is never granted the scopes that Fulltools need, so those calls are refused.

Signing in does not skip permission checks. Every tool call still needs itsOAuth scopes, and the user's role must allow access to the artist, campaign,or Smart Link.

Tools

"Reads" tools are marked read-only. "Changes data" tools write to Dynamoi orstart an action with an outside provider.

Tool What it does Access Catalog
dynamoi_about What Dynamoi is and how to start. Works before sign-in. Reads Both
dynamoi_open_workspace Open a read-only workspace for the authorized artist roster; supported hosts can browse campaigns and Smart Links Reads Both
dynamoi_get_account_overview Signed-in account, access counts and suggested next steps Reads Both
dynamoi_list_artists Artist roster, or one artist's profile and readiness Reads Both
dynamoi_search Find artists, campaigns, and Smart Links by name Reads Both
search / fetch ChatGPT deep research search and fetch Reads Both
dynamoi_list_campaigns An artist's campaigns, with type and status filters Reads Both
dynamoi_get_campaign One campaign, with optional analytics, delivery status, and countries Reads Both
dynamoi_get_artist_analytics Artist-level analytics across campaigns Reads Both
dynamoi_get_growth_audit Spotify growth score, recommendations, listener trends, and playlist reach with status and coverage evidence Reads Both
dynamoi_get_playlist_analytics Tracked playlist placements, reach, and movement with freshness and snapshot dates Reads Both
dynamoi_get_audience_analytics Streaming audience by date range, country, service, and paid/free tier Reads Both
dynamoi_get_youtube_channel_data Observed YouTube channel data by dataset, with coverage and campaign dates Reads Both
dynamoi_get_platform_status Spotify, Meta, and YouTube connection status and setup blockers Reads Both
dynamoi_get_distribution_application The five distribution requirements and application status Reads Both
dynamoi_apply_for_distribution Submit a distribution application for manual review Changes data Both
dynamoi_preview_smart_link_themes Visual preview of the Smart Link themes Reads Both
dynamoi_create_smart_link_from_spotify Create a free Smart Link from a Spotify album or track Changes data Both
dynamoi_create_smart_links_from_spotify_artist Import an artist's catalog as free Smart Links and return the artist hub Changes data Both
dynamoi_list_smart_links An artist's Smart Links and public URLs Reads Both
dynamoi_get_smart_link One Smart Link, with optional analytics and artist settings Reads Both
dynamoi_update_smart_link_description Update one Smart Link's public description Changes data Directory
dynamoi_update_smart_link_artist_settings Update an artist's Smart Link theme or validated pixel settings Changes data Directory
dynamoi_update_smart_link Prior multi-action schema for description or artist settings Changes data Full
dynamoi_update_smart_link_release_settings Update one Smart Link's release video or destination visibility Changes data Full
dynamoi_update_smart_link_artist_hub_settings Update an artist's hub introduction, official profile links or service order Changes data Full
dynamoi_get_billing Billing status, credit balance, and promo limits Reads Full
dynamoi_get_resume_funding Campaign resume-funding breakdown, refusal, and consent requirements Reads Full
dynamoi_list_available_countries Countries a Smart Campaign or YouTube campaign can target Reads Full
dynamoi_get_campaign_readiness Check launch inputs before creating anything Reads Full
dynamoi_list_media_assets Uploaded images and videos that a launch can reuse Reads Full
dynamoi_launch_campaign Launch a Smart Campaign or YouTube campaign Changes data Full
dynamoi_update_campaign Pause, resume, or change a campaign's budget or end date Changes data Full
dynamoi_manage_youtube_draft Inspect an interrupted YouTube launch draft, or discard it when the user asks Changes data Full
dynamoi_start_meta_connection Start the Facebook Page and Instagram connection in the browser Changes data Full
dynamoi_start_youtube_channel_link Start the YouTube channel connection in the browser Changes data Full
dynamoi_contact_support Send a support request or feedback to Dynamoi Changes data Full
dynamoi_shop_get_quote Estimate a one-off YouTube promotion Reads Full
dynamoi_shop_create_checkout Create an unpaid Stripe Checkout link for that promotion Changes data Full

Full tool descriptions and input schemas come from tools/list, or fromgetDynamoiToolDefinitions() in this package.

The full-only Studio tools (dynamoi_update_smart_link_release_settings anddynamoi_update_smart_link_artist_hub_settings) are not part of the approveddirectory contract and are never listed in the directory profile.

Previously approved directory clients may continue calling the exactdynamoi_update_smart_link name with its approved schema. New directory toollists omit that compatibility handler and advertise the two single-purposeoperations above. Compatibility calls keep the same Smart Link write scope,confirmation, account, and domain checks.

Money and safety

  • Smart Links are free. Creating or updating them never charges anyone.
  • Launches and budget changes are real. dynamoi_launch_campaign anddynamoi_update_campaign go through the same backend checks as the Dynamoiweb and mobile apps: permissions, promo limits, and repeat-requestprotection. Whether a person approves each call is up to the MCP client'stool-approval settings, so keep approval on for tools that change data.
  • Every budget needs the user's funding consent. A DAILY or TOTALbudget is funded one window at a time: available credits and campaign fundsfirst, then the card the user saved in Dynamoi is charged automatically (aTOTAL budget never beyond its total). The agent must show the user the exactconsent text for the budget type, then send, for DAILY,authorizeAutomaticDailyFunding: true with acceptedConsentVersion andacceptedConsentCopyHash, or, for TOTAL, acceptedTotalConsentVersion andacceptedTotalConsentCopyHash. This applies tolaunches, budget updates, and resumes that need card funding. A DAILYbudget refuses the TOTAL consent and the reverse; without consent therequest is refused and never charged. The consent values are exported from@dynamoi/mcp/consent.
  • Agents never handle payment credentials. Subscriptions, plans, andbilling setup happen only in the Dynamoi dashboard,where subscriptions start through hosted Stripe Checkout. No tool starts asubscription.
  • Shop checkout is only a link. dynamoi_shop_create_checkout creates anunpaid Stripe Checkout Session. The user pays on Stripe, and no order existsuntil the payment is verified.
  • Distribution applications start a manual review. Submitting one does notapprove distribution, accept an agreement, or deliver music to stores.
  • The directory catalog exposes no tools that spend money, start asubscription, or create a checkout.

Authentication

Dynamoi uses OAuth 2.1 through its authorization server athttps://dynamoi.com/api/auth. Clients find it through the server's metadata:

  • Protected resource: https://dynamoi.com/.well-known/oauth-protected-resource/mcp
  • Authorization server: https://dynamoi.com/.well-known/oauth-authorization-server
Topic Support
Client registration Client ID Metadata Documents (preferred) and dynamic client registration
Grants Authorization code with PKCE (S256), refresh token, and the device authorization grant for CLI and headless agents (https://dynamoi.com/api/auth/device/code)
Tokens Bearer tokens in the Authorization header. DPoP signing algorithms are advertised.

Without a token, a request gets a 401 with a WWW-Authenticate challenge.That challenge asks for every scope the client's catalog uses, so one consentcovers the whole catalog. A full-catalog client that signed in with fewerscopes is asked once for the rest.

Scope Allows
dynamoi:read Reading the account, artists, campaigns, analytics, and Smart Links. Every signed-in tool needs it.
dynamoi:platform.read Checking Spotify, Meta, and YouTube connection status
dynamoi:platform.write Starting Meta and YouTube connection flows
dynamoi:smart_links.write Creating and updating free Smart Links
dynamoi:distribution.read Checking distribution requirements and application status
dynamoi:distribution.apply Submitting a distribution application
dynamoi:billing.read Reading billing status, credit balance, and promo limits
dynamoi:campaign.launch Launching new campaigns
dynamoi:campaign.write Pausing, resuming, and changing campaign budgets
dynamoi:mcp.full Using the Shop quote and checkout tools

Protocol support

  • MCP 2026-07-28: stateless requests with per-request _meta, includingserver/discover.
  • MCP 2025-11-25 and earlier initialize-based revisions, for clientsthat have not moved to 2026-07-28.
  • Streamable HTTP, POST only. Responses are JSON, or SSE for 2025-eraclients that accept it. The server keeps no sessions and opens nostandalone stream, so GET and DELETE return 405.

Using the package

Most people should connect to the hosted server. Install the package if youare building against the Dynamoi MCP contract: tool definitions, Zod schemas,result types, OAuth scope maps, or the stateless HTTP handler.

npm install @dynamoi/mcp

The package is ESM-only and built on MCP TypeScript SDK v2(@modelcontextprotocol/server).

Entry point Main exports
@dynamoi/mcp createDynamoiMcpServer, handleMcpHttpRequest, getDynamoiToolDefinitions, DynamoiMcpToolProfile, Phase3Adapter, tool definition arrays and input schemas, Shop schemas, About exports (getDynamoiAbout, DYNAMOI_ABOUT_*), result and data types, DYNAMOI_MCP_VERSION
@dynamoi/mcp/auth DYNAMOI_BETTER_AUTH_MCP_SCOPES, DYNAMOI_MCP_TOOL_SCOPES, buildWwwAuthenticateHeader
@dynamoi/mcp/consent PROSPECTIVE_BUDGET_FUNDING_CONSENT_VERSION, PROSPECTIVE_BUDGET_FUNDING_CONSENT_COPY, PROSPECTIVE_BUDGET_FUNDING_CONSENT_COPY_HASH (current v6), the previous v5, v4, v3 and v2 constants, isCurrentProspectiveBudgetFundingConsent, and isRenewableProspectiveBudgetFundingConsent

A host provides a Phase3Adapter, which connects each tool to its ownservices. It also verifies the caller before it serves a request:

import {
  createDynamoiMcpServer,
  handleMcpHttpRequest,
  type DynamoiMcpToolProfile,
  type Phase3Adapter,
} from "@dynamoi/mcp";

export async function handleMcp(
  request: Request,
  adapter: Phase3Adapter,
  toolProfile: DynamoiMcpToolProfile,
): Promise<Response> {
  // Authenticate the request and check scopes first; this package does not
  // verify tokens. The profile defaults to "directory" if you omit it.
  const parsedBody = request.method === "POST" ? await request.json() : null;
  return handleMcpHttpRequest({
    request,
    parsedBody,
    createServer: () => createDynamoiMcpServer({ adapter, toolProfile }),
  });
}

createDynamoiMcpServer also accepts authorizeToolCall (answer a callbefore it runs, for example with a step-up challenge), onToolCall (atelemetry hook), and oauthScopes.

Every request builds a new server. handleMcpHttpRequest sends 2026-07-28requests to the SDK's stateless handler and 2025-era requests to a statelessper-request transport.

Links

MIT licensed. See LICENSE.

Artist workspace

dynamoi_open_workspace({}) returns an authorized artist roster and declares a read-only MCP Apps resource with global and thread entrypoints. On supported hosts, browse campaigns and Smart Links, inspect reported metrics, and deliberately share the selected record and artist references with the next conversation turn. Channel observations retain their own window, provenance and coverage; they are not attributed to the campaign. No pricing, checkout or campaign-write controls appear in this workspace. Unsupported hosts retain the ordinary text and tool result.

The existing Smart Link theme preview remains separate. Composer mentions, settings, file viewers and events are not advertised. Local App/AppBridge fixtures establish their tested contract only; actual ChatGPT host support and public approval require separate evidence.

The browser bridge is bundled locally with the compatible MCP Apps v2 SDK; no CDN is needed. bun scripts/build-workspace.cjs regenerates the checked-in source bundle and bun scripts/build-workspace.cjs --check verifies reproducibility from the package directory. The ordinary package build runs the same owner. Keep the generated script synchronized with its browser/view/data sources.

MCP Server ยท Populars

MCP Server ยท New

    MCP-Manager

    MCP Security Checklists

    MCP Server

    Community MCP-Manager
    mozarkai

    Optics Framework

    Open-source test automation for Android, iOS, web, smart TV (Android TV, Tizen, webOS) and Bluetooth (BLE) devices. Write tests as CSV/YAML, record them live, or let an AI agent build them over MCP. Self-healing locators: XPath, text, OCR, image.

    Community mozarkai
    baronunread

    rdyrct

    Open-source URL shortener for teams: branded short links, QR codes, and custom domains on Cloudflare Workers.

    Community baronunread
    ExpeditedProjects

    HutchDB

    A database for AI agents. No schema, SQL, or structure required. Claude Code, Codex, Cursor, Hermes, Claw, Grokbot, and other MCP clients store, query, and share the same records. Open source (AGPLv3) or cloud.

    Community ExpeditedProjects
    heubme2020

    DataSinking

    Full-text financial reports (US, China, Japan, Korea, Taiwan) as clean Markdown โ€” REST API + MCP server for LLMs, RAG and quant

    Community heubme2020