Use Varibly inside any AI agent
Varibly hosts an MCP (Model Context Protocol) server. Any agent that speaks MCP can compile blueprints, render placement packs, refine designs, upload assets, and pull project context — directly from your chat. We support every major MCP client: Claude (Desktop / Code / web), Cursor, Cline, Continue, and any custom agent built with the @modelcontextprotocol/sdk.
https://mcp.varibly.comTwo ways to authenticate
OAuth
Paste the MCP URL into your agent. The agent discovers our auth server, opens a browser to our consent screen, you click Authorize, done. No keys to copy. Works in any agent that supports OAuth 2.1 + Dynamic Client Registration (most modern MCP clients do).
- Per-app revocation from your account settings
- Tokens auto-rotate; no long-lived secret on disk
- One-line install on most clients
API key
For CLI / scripted / non-OAuth clients. Generate one from your settings — it comes with a configurable monthly budget cap. Paste the key into your agent's MCP config as an Authorization: Bearer ... header.
- Survives across machine restarts and container rebuilds
- Per-key budget cap so a runaway loop can't drain the account
- Required for n8n / Zapier / Make / direct-HTTP integrations
Install per client
Claude Desktop (macOS / Windows)
OAuth (recommended):
- Open Settings → Developer → MCP Servers → Add
- Choose Custom HTTP MCP server
- URL:
https://mcp.varibly.com - Leave headers blank → Save
- A browser window opens → click Authorize on our consent screen → done
Or with an API key: open ~/Library/Application Support/Claude/claude_desktop_config.json (Mac) or %APPDATA%\Claude\claude_desktop_config.json (Windows) and merge:
{
"mcpServers": {
"varibly": {
"url": "https://mcp.varibly.com",
"headers": {
"Authorization": "Bearer vb_live_..."
}
}
}
}Claude Code (CLI)
OAuth:
claude mcp add --transport http varibly https://mcp.varibly.comThe first tool call opens a browser for OAuth approval.
Or with an API key:
claude mcp add --transport http varibly https://mcp.varibly.com \
--header "Authorization: Bearer vb_live_..."Claude.ai web
- Settings → Connectors (or Integrations)
- Click Add custom connector
- Name:
Varibly - URL:
https://mcp.varibly.com - OAuth: leave the Authorization field blank → Claude will auto-discover OAuth and walk you through the consent flow
- API key: add an Authorization header with value
Bearer vb_live_... - Save → open a new chat → tools appear under the
variblynamespace
Cursor
Cursor's MCP support landed in 2025 and works the same way as Claude Desktop's.
- Open Cursor → Settings → MCP → Add new MCP server
- Set Type: Streamable HTTP (or "remote MCP")
- Set URL:
https://mcp.varibly.com - OAuth: leave headers blank → first tool call opens browser → authorize
- API key: add header
Authorization: Bearer vb_live_...
Or edit ~/.cursor/mcp_config.json directly:
{
"mcpServers": {
"varibly": {
"url": "https://mcp.varibly.com"
}
}
}Cline (VS Code extension)
- Open Cline's settings panel
- Click MCP Servers → Add new server
- Type:
http(Streamable HTTP), URL:https://mcp.varibly.com - For OAuth: leave blank. For API key: add header
Authorization: Bearer vb_live_...
Or edit Cline's config file (location depends on platform):
{
"mcpServers": {
"varibly": {
"type": "http",
"url": "https://mcp.varibly.com"
}
}
}Continue.dev
Continue's MCP support is configured via .continue/config.json in your project or home directory:
{
"mcpServers": [
{
"name": "varibly",
"transport": {
"type": "http",
"url": "https://mcp.varibly.com"
}
}
]
}For an API key, add a headers entry with Authorization: Bearer vb_live_....
Custom agents (TypeScript / Python / Go)
Built with the official @modelcontextprotocol/sdk:
import { Client } from '@modelcontextprotocol/sdk/client';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp';
const client = new Client({ name: 'my-agent', version: '1.0.0' });
const transport = new StreamableHTTPClientTransport(
new URL('https://mcp.varibly.com'),
{
requestInit: {
headers: { Authorization: 'Bearer vb_live_...' }, // for API-key auth
},
}
);
await client.connect(transport);
const tools = await client.listTools();
const result = await client.callTool({ name: 'varibly_compile_blueprint', arguments: { ... } });For OAuth in custom agents, use the SDK's OAuthClientProvider to drive the auth code + PKCE flow against our endpoints. Discovery starts at https://api.varibly.com/oauth/.well-known/openid-configuration.
Other / generic MCP client
Any client that implements the MCP Streamable HTTP transport will work. Provide:
- Endpoint:
https://mcp.varibly.com - Transport: Streamable HTTP (per the March-2025 MCP spec; SSE-only is deprecated)
- Auth: Bearer token in the
Authorizationheader (either an OAuth access token or avb_live_*API key)
If your client supports OAuth 2.1 with Dynamic Client Registration, send a request without auth — our 401 + WWW-Authenticate header tells your client where to find the auth server, and your client should auto-register and complete the flow.
What you can do once connected
- 11 tools — compile, render, refine, list/get blueprints, project management, asset upload, account info, resolution lookup
- 3 resources — placement catalog, blueprint source, project brand context (read-only context the agent can fetch)
- 4 workflow slash-commands —
/varibly:compile-from-landing,/varibly:placement-pack,/varibly:explore-aesthetics,/varibly:refine-loop
Try it
Once connected, paste any of these into your agent:
Single ad
"Compile an Instagram Story for SpaceDSA — confident stat-hero with a big number, image hero band on bottom. Then render it."
From a landing page
"Use the /varibly:compile-from-landing prompt with https://autopersonas.com — give me a TikTok in-feed ad."
Placement pack
"Use /varibly:placement-pack on project ABC123 with the 'launch hero' directive — render across the 6 standard placements."
Iterate
"Use /varibly:refine-loop on blueprint XYZ — I want to tweak the headline and CTA."
Cost control
Compile costs 10 credits in platform mode (default), 14 in custom. Refine is 6/8. PNG render is 1 credit, MP4 is 2. Credits start at $4.99 for 50.
Each connection (OAuth grant or API key) gets a per-key monthly budget cap (default 100 credits) so an autonomous loop can't drain your account. Edit the cap on the API Keys page anytime, or revoke the key/grant in one click if anything looks off.
Security
- OAuth tokens and API keys live in your local agent's config or token store, not in chat messages. Agents attach them as HTTP headers.
- Tokens never enter the conversation context — agents can't accidentally print them back to you.
- Both can be revoked instantly from settings; revocation takes effect on the next request.
- All MCP traffic is HTTPS. The endpoint is
https://mcp.varibly.com(Streamable HTTP transport, OAuth 2.1 spec). - Authorization codes use PKCE (S256). JWT access tokens are signed with our RSA key — published JWKS at
/oauth/jwks.
Troubleshooting
Agent says "no tools available" after I add it
Restart your agent completely. Most desktop apps cache the MCP server list at startup — quit and reopen.
I get 401 unauthorized on the first tool call
If you used OAuth, complete the consent flow that opened in your browser. If you used an API key, double-check the bearer token in your config matches one shown in your settings. Tokens start with vb_live_.
I hit my monthly budget cap
Open the API Keys page and either raise the cap on this key or top up your account. Hard caps refuse new charges; soft caps just warn.
How do I rotate the credentials?
For API keys: revoke and regenerate from settings. Update your agent's config with the new value.
For OAuth: revoke from "Authorized apps". Next time the agent calls our MCP it will get a 401 and re-prompt for authorization.
My agent doesn't speak OAuth — only API keys. Will it still work?
Yes. Both auth paths are first-class. Generate an API key, paste it as a bearer header, you're done.
My client uses the older HTTP+SSE transport, not Streamable HTTP. Does it work?
The MCP spec deprecated SSE in March 2025. Our server only speaks Streamable HTTP. Most clients have migrated; if yours hasn't, update it.