Developers and agents

Run campaigns from Claude, Codex or any MCP client.

SparkleTree is an always-on digital promoter with an MCP server in front of it. Brief it, generate variants, publish to a screen or a store and read the numbers, from the agent you already use.

Connect the MCP server.

The server is at https://app.sparkletree.io/api/mcp. It uses streamable HTTP and OAuth 2.1 with PKCE, and it registers clients dynamically (RFC 7591), so there is no API key to copy. Point a client at it and sign in when the browser opens.

In Claude Code:

claude mcp add --transport http sparkletree https://app.sparkletree.io/api/mcp

In any client that reads an MCP config file:

{
  "mcpServers": {
    "sparkletree": { "url": "https://app.sparkletree.io/api/mcp" }
  }
}

Tool profiles shape which tools a client sees. Append ?profile=<name> to the URL to pick one; authorisation is enforced per workspace regardless of profile. Ask the server with get_platform_info and the tool_profiles topic.

The auth flow in five steps.

  1. Register. POST https://clerk.sparkletree.io/oauth/register with a client name and redirect URIs. Keep the client_id.
  2. Authorise. Send the user to /oauth/authorize with PKCE (S256). They sign in and consent in the browser.
  3. Exchange. POST /oauth/token with the code and verifier. You get an access token, and a refresh token if offline_access was granted.
  4. Call. POST https://app.sparkletree.io/api/mcp with the bearer token.
  5. Refresh or revoke. Refresh on 401. Revoke at /oauth/token/revoke when you are done.

An unauthenticated call returns 401 with a WWW-Authenticate header pointing at the protected resource metadata, from which compliant clients bootstrap the whole flow. The long version, with error handling, is auth.md.

What the tools do.

ToolWhat it is for
get_platform_infoHealth, organisation details and usage counts, plus the tool profiles available.
query_brand, manage_brandRead and update the brand book the campaigns write in.
query_products, manage_productsThe things being promoted: events, drinks, merch, store items.
query_campaigns, manage_campaignsList, inspect, publish, pause and edit campaigns and their variants.
generate_campaignWrite a brief, get variants back, review them, publish.
query_surfaces, manage_surfacesScreens, QR codes, embeds and pages a campaign is deployed to.
query_analyticsImpressions, reach, questions asked and follow-up actions per campaign and surface.
query_video, render_video, video_commissionTurn a winning variant into a clip.

query_* tools are read-only. manage_*, generate_* and render_* mutate or spend, and good agents confirm before publishing, deploying, deleting or spending credits.

Embed a campaign in your own site.

One script tag turns any container into a live campaign surface that resizes itself. For React there is @sparkletree/react with Hero and Cta islands, and @sparkletree/core underneath for everything else. Register your origin in the workspace and the campaign renders on your page in your brand.

<div data-sparkletree-container data-sparkletree-organization-id="…" data-sparkletree-surface-id="…"></div>
<script async src="https://app.sparkletree.io/api/embed/v1/script.js"></script>

The SDK documentation covers fragments, what visitors see, how failures degrade and the full API reference. To see a live surface first, open the demo campaign and ask it a question.

Pair a screen.

Signage and DOOH screens run the SparkleTree Android kiosk app. On a small Android device in the screen's HDMI port, it pairs any screen to a surface in minutes and keeps the campaign live and current. Anything with a browser can show a surface too. The hardware and pairing steps are on the integrations page. Surfaces are managed with manage_surfaces, so an agent can create the surface, deploy the campaign and read what the screen showed from query_analytics.

Discovery files on this host.

The homepage also exposes WebMCP tools to browsers that support navigator.modelContext, and robots.txt allows every major AI crawler by name.

FAQ

Questions developers ask us.

Which MCP clients work?

Any client that speaks streamable HTTP and OAuth 2.1 with PKCE: Claude (desktop, Code and claude.ai connectors), Codex, Cursor, and anything built on the official MCP SDKs. The server is self-describing, so a compliant client discovers the authorisation server from the first 401 and runs the flow itself.

Do I need a developer to use SparkleTree?

No. Screens, QR codes, social and the store need no code. This page is for people who want campaigns inside their own site or app, or who want to drive SparkleTree from an agent. Every plan includes the MCP server; Enterprise adds full API access. The integrations table lists what connects on which plan, and pricing has the plans.

Can an agent act without a human?

Reading this host needs nothing. Acting on a SparkleTree workspace needs a signed-in human to grant consent once in the browser, after which the agent holds a bearer token, and a refresh token if offline_access was granted. There is no device-code or claim flow, by design. The steps are in auth.md.

Is there a rate limit?

Yes, 120 requests per minute per token. A 429 means back off exponentially and retry. 5xx is transient and safe to retry; 4xx means fix the request rather than replaying it.

Want to see it driven from an agent?

Book a walkthrough and a founder will run a campaign from Claude on the call.

Book a walkthrough
SparkleTree.