Dynamoi MCP Server

MCP serverDatabases & data

Dynamoi lets your AI handle music promotion work for you. Once added, it can create promotion campaigns, build Smart Links, check analytics, and set up music distribution applications.

Use Dynamoi MCP Server in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add Dynamoi MCP Server and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the dynamoi about tool from Dynamoi MCP Server

Details

Available today. Use it from your connected AI after setup.

Add Dynamoi, then ask your AI to create a promotion campaign or a Smart Link to get started.

Dynamoi MCP ServerStart free

What your AI can do with it

  • Create music promotion campaigns
  • Build Smart Links
  • Check your analytics
  • Set up music distribution applications

Install Dynamoi MCP Server

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user dynamoi-mcp-server 'https://dynamoi.com/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://dynamoi.com/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=dynamoi-mcp-server&config=eyJ1cmwiOiJodHRwczovL2R5bmFtb2kuY29tL21jcCJ9

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://dynamoi.com/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add dynamoi-mcp-server --url 'https://dynamoi.com/mcp'

    Run it once, then sign in with codex mcp login dynamoi-mcp-server if the server asks for an account.

From the project's README

As published by getdynamoi/mcp in README.md.

Music marketing for AI agents.

The Dynamoi MCP server connects ChatGPT, Claude, Cursor, and other AI agents to Dynamoi, the music marketing platform for artists, labels, and managers. Agents can create free Spotify Smart Links, run managed YouTube and Meta promotion campaigns, read campaign and Smart Link analytics, check platform status, and apply for music distribution. 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 remote Streamable HTTP and OAuth at that URL, and the user signs in with their Dynamoi account.

About Dynamoi

Dynamoi is a music marketing platform founded in 2021 by Trevor Loucks. It runs managed Meta and YouTube ad campaigns, music distribution, and royalty analytics for independent artists, labels, managers, and YouTube creators, alongside free Smart Links and analytics.

  • Free Smart Links: release pages and artist hubs built from Spotify URLs, 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 channel growth.
  • Music distribution: opt-in delivery to 100+ stores. Applications are scored against five requirements, and approval is not guaranteed.
  • YouTube promotion Shop: one-off YouTube video promotion with no subscription.

Campaigns run on Dynamoi's own managed Meta and Google ad infrastructure. They reach real people through official ad networks, never bots, fake streams, or paid 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 every campaign and support reply. AI helps with ad creative, campaign monitoring, reporting, and routine tasks.

Smart Links are free. Starter is $25/month with a $50 launch campaign credit, and campaign budgets start at $10/day. See pricing.

Agents can read the same overview before sign-in through the dynamoi_about tool 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 URL https://dynamoi.com/mcp and OAuth authentication. ChatGPT gets the directory catalog.

Claude (web and desktop)

Open Settings → Connectors, choose Add custom connector, and enter https://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 the agent plugins repository bundles Dynamoi skills with the directory catalog on https://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 the agent 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"

Other MCP clients

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

Which tools a client sees

The server has two tool catalogs. It picks one from the OAuth client that signed in, not from anything the client claims about itself.

CatalogWho gets itWhat it includes
DirectoryEvery client on https://dynamoi.com/mcp/directory (used by agent-directory listings such as the Dynamoi Claude plugin), the published ChatGPT app on /mcp, and requests made before sign-in24 review-safe advertised tools: reads, Smart Links, distribution, and About. No billing, campaign launch or campaign changes, platform connection starters, or Shop checkout.
FullEvery other signed-in client on https://dynamoi.com/mcp, such as Claude custom connectors, Claude Code, Cursor, VS Code, Gemini CLI, Codex CLI, and custom agentsAll 37 tools, plus the Dynamoi prompts and reference resources

Signing in does not skip permission checks. Every tool call still needs its OAuth 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 or start an action with an outside provider.

ToolWhat it doesAccessCatalog
dynamoi_aboutWhat Dynamoi is and how to start. Works before sign-in.ReadsBoth
dynamoi_open_workspaceOpen a read-only workspace for the authorized artist roster; supported hosts can browse campaigns and Smart LinksReadsBoth
dynamoi_get_account_overviewSigned-in account, access counts and suggested next stepsReadsBoth
dynamoi_list_artistsArtist roster, or one artist's profile and readinessReadsBoth
dynamoi_searchFind artists, campaigns, and Smart Links by nameReadsBoth
search / fetchChatGPT deep research search and fetchReadsBoth
dynamoi_list_campaignsAn artist's campaigns, with type and status filtersReadsBoth
dynamoi_get_campaignOne campaign, with optional analytics, delivery status, and countriesReadsBoth
dynamoi_get_artist_analyticsArtist-level analytics across campaignsReadsBoth
dynamoi_get_growth_auditSpotify growth score, recommendations, listener trends, and playlist reach with status and coverage evidenceReadsBoth
dynamoi_get_playlist_analyticsTracked playlist placements, reach, and movement with freshness and snapshot datesReadsBoth
dynamoi_get_audience_analyticsStreaming audience by date range, country, service, and paid/free tierReadsBoth
dynamoi_get_youtube_channel_dataObserved YouTube channel data by dataset, with coverage and campaign datesReadsBoth
dynamoi_get_platform_statusSpotify, Meta, and YouTube connection status and setup blockersReadsBoth
dynamoi_get_distribution_applicationThe five distribution requirements and application statusReadsBoth
dynamoi_apply_for_distributionSubmit a distribution application for manual reviewChanges dataBoth
dynamoi_preview_smart_link_themesVisual preview of the Smart Link themesReadsBoth
dynamoi_create_smart_link_from_spotifyCreate a free Smart Link from a Spotify album or trackChanges dataBoth
dynamoi_create_smart_links_from_spotify_artistImport an artist's catalog as free Smart Links and return the artist hubChanges dataBoth
dynamoi_list_smart_linksAn artist's Smart Links and public URLsReadsBoth
dynamoi_get_smart_linkOne Smart Link, with optional analytics and artist settingsReadsBoth
dynamoi_update_smart_link_descriptionUpdate one Smart Link's public descriptionChanges dataDirectory
dynamoi_update_smart_link_artist_settingsUpdate an artist's Smart Link theme or validated pixel settingsChanges dataDirectory
dynamoi_update_smart_linkPrior multi-action schema for description or artist settingsChanges dataFull
dynamoi_update_smart_link_release_settingsUpdate one Smart Link's release video or destination visibilityChanges dataFull
dynamoi_update_smart_link_artist_hub_settingsUpdate an artist's hub introduction, official profile links or service orderChanges dataFull
dynamoi_get_billingBilling status, credit balance, and promo limitsReadsFull
dynamoi_get_resume_fundingCampaign resume-funding breakdown, refusal, and consent requirementsReadsFull
dynamoi_list_available_countriesCountries a Smart Campaign or YouTube campaign can targetReadsFull
dynamoi_get_campaign_readinessCheck launch inputs before creating anythingReadsFull
dynamoi_list_media_assetsUploaded images and videos that a launch can reuseReadsFull
dynamoi_launch_campaignLaunch a Smart Campaign or YouTube campaignChanges dataFull
dynamoi_update_campaignPause, resume, or change a campaign's budget or end dateChanges dataFull
dynamoi_manage_youtube_draftInspect an interrupted YouTube launch draft, or discard it when the user asksChanges dataFull
dynamoi_start_meta_connectionStart the Facebook Page and Instagram connection in the browserChanges dataFull
dynamoi_start_youtube_channel_linkStart the YouTube channel connection in the browserChanges dataFull
dynamoi_shop_get_quoteEstimate a one-off YouTube promotionReadsFull
dynamoi_shop_create_checkoutCreate an unpaid Stripe Checkout link for that promotionChanges dataFull

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

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

Previously approved directory clients may continue calling the exact dynamoi_update_smart_link name with its approved schema. New directory tool lists omit that compatibility handler and advertise the two single-purpose operations 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 and dynamoi_update_campaign go through the same backend checks as the Dynamoi web and mobile apps: permissions, promo limits, and repeat-request protection. Whether a person approves each call is up to the MCP client's tool-approval settings, so keep approval on for tools that change data.
  • Daily budgets need the user's funding consent. A DAILY budget is funded one 24-hour window at a time. Available credits and campaign funds are used first, then the card the user saved in Dynamoi is charged automatically. The agent must show the user the exact consent text, then send authorizeAutomaticDailyFunding: true with the matching acceptedConsentVersion and acceptedConsentCopyHash. This applies to launches, budget updates, and resumes that need card funding. Without consent the request is refused. The consent values are exported from @dynamoi/mcp/consent.
  • Total budgets use existing credit and need no funding consent.
  • Agents never handle payment credentials. Subscriptions, plans, and billing setup happen only in the Dynamoi dashboard, where subscriptions start through hosted Stripe Checkout. No tool starts a subscription.
  • Shop checkout is only a link. dynamoi_shop_create_checkout creates an unpaid Stripe Checkout Session. The user pays on Stripe, and no order exists until the payment is verified.
  • Distribution applications start a manual review. Submitting one does not approve distribution, accept an agreement, or deliver music to stores.
  • The directory catalog exposes no tools that spend money, start a subscription, or create a checkout.

Authentication

Dynamoi uses OAuth 2.1 through its authorization server at https://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
TopicSupport
Client registrationClient ID Metadata Documents (preferred) and dynamic client registration
GrantsAuthorization code with PKCE (S256), refresh token, and the device authorization grant for CLI and headless agents (https://dynamoi.com/api/auth/device/code)
TokensBearer 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 consent covers the whole catalog. A full-catalog client that signed in with fewer scopes is asked once for the rest.

ScopeAllows
dynamoi:readReading the account, artists, campaigns, analytics, and Smart Links. Every signed-in tool needs it.
dynamoi:platform.readChecking Spotify, Meta, and YouTube connection status
dynamoi:platform.writeStarting Meta and YouTube connection flows
dynamoi:smart_links.writeCreating and updating free Smart Links
dynamoi:distribution.readChecking distribution requirements and application status
dynamoi:distribution.applySubmitting a distribution application
dynamoi:billing.readReading billing status, credit balance, and promo limits
dynamoi:campaign.launchLaunching new campaigns
dynamoi:campaign.writePausing, resuming, and changing campaign budgets
dynamoi:mcp.fullUsing the Shop quote and checkout tools

Protocol support

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

Using the package

Most people should connect to the hosted server. Install the package if you are 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 pointMain exports
@dynamoi/mcpcreateDynamoiMcpServer, 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/authDYNAMOI_BETTER_AUTH_MCP_SCOPES, DYNAMOI_MCP_TOOL_SCOPES, buildWwwAuthenticateHeader
@dynamoi/mcp/consentPROSPECTIVE_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 own services. 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 call before it runs, for example with a step-up challenge), onToolCall (a telemetry hook), and oauthScopes.

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

Links

ResourceURL
MCP server docshttps://dynamoi.com/docs/mcp-server
ChatGPT apphttps://chatgpt.com/plugins/plugin_asdk_app_69ceb0e849788191aa3fd4d416204a9d
Agent plugins (Claude Code, Gemini CLI)https://github.com/getDynamoi/agent-plugins
MCP Registryhttps://registry.modelcontextprotocol.io/v0/servers?search=io.github.getDynamoi/dynamoi
Agent overview (llms.txt)https://dynamoi.com/llms.txt
Supporthttps://dynamoi.com/support or support@dynamoi.com (replies within 24 hours)
Pricinghttps://dynamoi.com/pricing
npmhttps://www.npmjs.com/package/@dynamoi/mcp
Source and issueshttps://github.com/getDynamoi/mcp
ChangelogCHANGELOG.md
Capability mapCAPABILITY_PARITY.md

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.

Tools it offers (19)

What this server listed when Ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.

  • dynamoi_about
  • dynamoi_get_account_overview
  • dynamoi_list_artists
  • dynamoi_search
  • search
  • fetch
  • dynamoi_list_campaigns
  • dynamoi_get_campaign
  • dynamoi_get_artist_analytics
  • dynamoi_get_youtube_channel_data
  • dynamoi_get_platform_status
  • dynamoi_get_distribution_application
  • dynamoi_apply_for_distribution
  • dynamoi_preview_smart_link_themes
  • dynamoi_create_smart_link_from_spotify
  • dynamoi_create_smart_links_from_spotify_artist
  • dynamoi_list_smart_links
  • dynamoi_get_smart_link
  • dynamoi_update_smart_link

Signals

GitHub stars
3
Forks
1
Last commit
Oct 2026
Weekly_downloads
321 weekly_downloads
Advanced
Delivery
dynamoi MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
io-github-getdynamoi-dynamoi
Source
github.com/getdynamoi/mcp
Hosted endpoint
https://dynamoi.com/mcp