strms.link
For developers and AI agents

Operate strms.link from code or from an AI agent

strms.link is a smart link service for music releases. It is API-first: the dashboard at app.strms.link uses the same public REST API you can call. An MCP server lets assistants such as Claude Code, Claude Desktop, Cursor and VS Code create, edit, publish and measure smartlinks for artists, with an API key from your workspace.

REST API
Available now · https://app.strms.link/api/v1
OpenAPI 3.1
https://app.strms.link/api/openapi.json
Docs
https://app.strms.link/api/docs
MCP server
Available now · https://app.strms.link/mcp (Streamable HTTP)
Auth
API keys (Developers → API keys) or the dashboard session
OAuth connectors
One-click install from the Claude and ChatGPT directories Coming soon
Available now

MCP server

A remote Model Context Protocol server, so an artist or manager can ask their assistant: “Make a smartlink for my new single, put Spotify first, add a merch button, attach my Meta pixel and publish it.” The tools are task-level wrappers around the same service layer as the REST API, with the same permissions and validation.

Connect in a minute

  1. In the dashboard, open Developers → API keys and create a key (owners and admins). Choose Read only or Read and write and an expiry. The key is shown once.
  2. Add the server to your client. Claude Code:
claude mcp add --transport http strms https://app.strms.link/mcp \
  --header "Authorization: Bearer strms_sk_…"

Cursor (~/.cursor/mcp.json) and other clients that support remote servers with headers:

{
  "mcpServers": {
    "strms": {
      "url": "https://app.strms.link/mcp",
      "headers": { "Authorization": "Bearer strms_sk_…" }
    }
  }
}

VS Code uses the same URL and header in .vscode/mcp.json. Claude Desktop connects through the mcp-remote bridge until OAuth connectors arrive. Clients that only accept OAuth connectors (claude.ai and ChatGPT custom connectors) cannot connect yet.

Tools

  • get_workspace — the workspace, what this key may do, link and pixel counts.
  • search_release — resolve a Spotify, Apple Music or Deezer link, an ISRC or a UPC to the release and its matches on each platform (exact, fuzzy or a search link).
  • create_smartlink — a draft from a link, ISRC or UPC with buttons, artist and cover filled in, or from a title; optional path.
  • list_smartlinks, get_smartlink — find links by text, artist or status; read one by id, path or page URL.
  • update_smartlink, set_buttons — edit title, artist and path; replace the ordered button list, including custom links for tickets and merch.
  • publish_smartlink, unpublish_smartlink, duplicate_smartlink — take a page live or offline, or copy it.
  • get_smartlink_stats — clicks per day, per button and per country.
  • get_analytics — views, unique visitors, clicks and click-through, broken down by country, traffic source, UTM, device and platform; bots excluded.
  • list_artists, list_pixels, set_smartlink_pixels, add_link_pixel — artists; Meta and TikTok pixels from the workspace library, attached to a link or inherited; or a pixel (with its access token) put on one link only, e.g. for a single campaign.
  • check_pixel — optional: confirm a pixel’s access token with one real server event (not test mode) and get Meta’s or TikTok’s answer. A saved pixel delivers without it.
  • get_design_options, set_smartlink_design — design the page: one of six themes plus colors, background (blurred cover, solid, gradient or an uploaded image), button style and corners, system font, cover shape, layout, button text and a tagline. Text contrast is checked (WCAG AA); a color that fails comes back with a suggested fix, and a dry run checks a design without saving it.

Every tool is annotated (read-only, destructive, idempotent, open world), returns structured content plus a one-line summary with the public URL and the dashboard URL, and reports problems as results the agent can act on (“this API key is read-only”, “the path is taken; juno/night-drive-2 is free”). Also included: the launch_release prompt and the strms://platforms resource.

Keys are limited to their workspace and never go beyond editor rights: they cannot manage members, settings, pixel connections or tokens, or other keys. 600 requests per minute per key; revoking a key stops it immediately.

Available now

REST API

JSON over HTTPS, described by an OpenAPI 3.1 document generated from the server code, so it never drifts from what is deployed. Everything the dashboard does goes through it.

  • Smartlinks: create from a Spotify, Apple Music or Deezer URL, an ISRC or a UPC; edit title, path and cover; replace the ordered button list; publish, unpublish, duplicate, delete; click stats per day, button and country.
  • Page design: six themes plus overrides, per link or as a workspace or artist default; the design is a small JSON document checked against a published JSON Schema and for text contrast.
  • Catalog: resolve a release from a URL, ISRC or UPC; matches on Spotify, Apple Music and Deezer come back marked exact or fuzzy, other services as search links. Buttons accept 14 streaming services plus custom links.
  • Covers: upload artwork (JPEG, PNG, WebP) or import it automatically.
  • Pixels: connect Meta datasets and TikTok pixels with server-side conversions, scope them to a workspace, artist or link, send test events (connections and tokens need a dashboard session of an owner or admin).
  • Artists and workspaces: group links the way a label or management company works.

Conventions: UUIDv7 ids, keyset pagination, ETag/If-Match for safe concurrent edits, RFC 9457 problem details for errors.

Create and publish a smartlink

# an API key and the REST base URL are shown when you create the key
API=https://app.strms.link/api/v1/workspaces/<workspace id>
AUTH='Authorization: Bearer strms_sk_…'

# create from a Spotify link: platforms, cover and metadata are filled in
LINK=$(curl -s -H "$AUTH" -X POST $API/smartlinks -H 'Content-Type: application/json' \
  -d '{"source":{"url":"https://open.spotify.com/track/…"},"path":"juno/night-drive"}' | jq -r .smartlink.id)

# go live at https://strms.link/juno/night-drive
curl -H "$AUTH" -X POST $API/smartlinks/$LINK/publish
In development

What comes next Coming soon

  • OAuth sign-in for connectors: install strms.link from the Claude and ChatGPT directories without copying a key, choosing the workspace and access on a consent screen.
  • Listings in Claude connectors, ChatGPT apps, the MCP Registry and Cursor.
  • More design and tools: custom CSS and content blocks for pages, background upload and in-chat page previews through MCP, cover import.

Building an integration, a label tool or an agent workflow? Tell us what you need.

Notes for AI agents

  • Public smartlink pages live at https://strms.link/{path} where a path is one or two segments of 4–20 characters [a-z0-9-].
  • Status as of October 2026: free beta. The REST API and the MCP server at https://app.strms.link/mcp work with API keys; OAuth connectors are not available yet.
  • An API key belongs to one workspace; MCP tools take no workspace id. Use get_workspace first.
  • Pages send Meta Conversions API and TikTok Events API events from the server, deduplicated with the browser pixel by a shared event ID.