Reference

The Deframer MCP server. For any AI tool.

Any app that supports remote MCP servers with OAuth sign-in can use Deframer. Add the address below, sign in on deframer.co when the app asks, and ask it to convert your Framer site.

Connect

One address.

  1. In your app's MCP settings, add a remote (HTTP) server named deframer at https://deframer.co/mcp. Leave headers and keys empty.
  2. The app finds Deframer's sign-in by itself and opens deframer.co. Sign in and choose Allow.
  3. Ask it to convert your published Framer site.

Step-by-step for Claude, Claude Code, Cursor, VS Code (GitHub Copilot), Windsurf, Codex and Gemini CLI.

mcp.jsonjson
{
  "mcpServers": {
    "deframer": {
      "url": "https://deframer.co/mcp"
    }
  }
}

Protocol

How it connects.

Serverhttps://deframer.co/mcp
TransportStreamable HTTP: one JSON-RPC message per POST, answered with JSON. No server-sent stream or session (GET answers 405).
Protocol versions2025-06-18, 2025-03-26 and 2024-11-05.
AuthorizationOAuth 2.1 with PKCE (S256). A request without a token gets 401 with WWW-Authenticate: Bearer resource_metadata="https://deframer.co/.well-known/oauth-protected-resource/mcp".
DiscoveryProtected resource metadata (RFC 9728) and authorization server metadata (RFC 8414).
Client registrationDynamic (RFC 7591), public (none) or confidential (client_secret_post, client_secret_basic). Callbacks that can register: Claude's and ChatGPT's own, https://vscode.dev/redirect, loopback addresses on any port (http://localhost, 127.0.0.1, [::1]) and an app's private-use scheme (such as cursor://). Others are left out of the registration.
Scopesaccount (read the account) and convert (check sites, start and follow conversions). No scope can unlock, download or pay.
TokensAccess tokens are short-lived and refreshed with a rotating refresh token. Revoke any connection in Dashboard → Connected apps.

Tools

Four tools. Annotated for your app.

ToolWhat it doesParameters
get_account
Read only
Your account's email, credit balance, and the ownership tag to paste into your Framer site.None
check_site
Read only
Whether a published site is a Framer site Deframer can convert, and whether it carries your ownership tag.
url (string, required): The published site's address: https://example.framer.website or its own domain.
start_conversion
Write, not destructive
Starts a free conversion. Returns the conversion job: its id, status and stage.
url (string, required): The published site's address.
framework (string): next (default), start, astro, react-router, vite, nuxt or html.
includeAssets (boolean): true puts images, fonts and videos in the project; false (default) keeps them on Framer's CDN.
get_conversion
Read only
A conversion's stage, and when it's done, the deframer.co page where you preview and download it.
id (string, required): The conversion job's id.
  • A tool's failure comes back as its result with isError and a message written for the user, such as a site that isn't published.
  • Every tool goes through Deframer's client API with the user's token: the same rate limits and ownership rules as the website.
  • Questions or a client that won't connect: contact us with the app's name and version.