Overview
Framelane runs a hosted, authenticated MCP (Model Context Protocol) action server at:
Any MCP host — Claude, Claude Desktop, Cursor, VS Code, LangChain, CrewAI, etc. — can
connect and drive Framelane over MCP without writing HTTP integration code. It speaks the
Streamable HTTP transport, and every tool requires authentication (see below). It
is an action server — it renders, runs tasks, and edits projects. For documentation,
agents read the static channels instead: llms.txt, the
installable skill, or any docs page as raw markdown
(append .md to its URL).
Getting a credential first
Onboarding happens over REST, not MCP — an MCP client connects after it holds a key:
POST /v1/signup with a workspace_name and an email you control — returns an fl_
API key and emails a 6-digit code.
POST /v1/signup/verify with the code. The key works the moment this succeeds; until
then authed calls return 403 email_not_verified.
GET /v1/capabilities (no auth) returns an onboarding block describing this loop plus the
action_mcp_url in machine-readable form. See Self-provisioning for
agents. Interactive clients can instead authenticate via
OAuth 2.1 (PKCE) — Framelane is an OAuth resource server and delegates the login to
Clerk as the authorization server; MCP hosts discover it automatically from the server’s
WWW-Authenticate challenge.
Every tool requires a verified credential (an fl_ key or a Clerk OAuth token). The ones an
agent reaches for most:
Start by reading the framelane://capabilities resource — the machine-readable menu of
every effect, motion, transition, format, and task parameter (with valid ranges), so the
agent builds a correct request on the first try instead of discovering limits through 422s.
Waiting is one tool call, not a loop. wait_for_render / wait_for_task block until the
job is terminal, streaming progress as it advances. If a call returns still_running: true
(the server hold elapsed), call again. Ensure your MCP client’s per-tool timeout is ≥ 30s.
Tool errors carry a stable machine code: domain failures come back as
{"error": {"code", "message", "details"}} — branch on code (quota_exceeded,
email_not_verified, conflict, invalid_request, not_found).
Connecting
Point your MCP host at https://mcp.framelane.io/mcp and send your key as a Bearer token.
Cursor / VS Code
Add to your MCP settings (~/.cursor/mcp.json, or the workspace .vscode/mcp.json):
Then ask: “Use the Framelane MCP to render this composition…”
Claude Desktop
Add to claude_desktop_config.json (mcp-remote bridges the hosted server over stdio):
Agent Skills
The Framelane Agent Skills are static YAML playbooks — read them
from the docs (append .md) or install the skill, then
drive the calls through the tools above.