Search / dev.keyframer/keyframer
Keyframer
R0· no sign-in150+ React Native animation recipes, scene authoring, phone preview via QR, Reanimated v4 codegen
v1.0.0 · active · website · descriptor JSON · versions
Search / dev.keyframer/keyframer
R0· no sign-in150+ React Native animation recipes, scene authoring, phone preview via QR, Reanimated v4 codegen
v1.0.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"keyframer": {
"type": "http",
"url": "https://api.keyframer.dev/mcp",
"headers": {
"Authorization": "Bearer ${KEYFRAMER_TOKEN}"
}
}
}
}claude mcp add --transport http keyframer https://api.keyframer.dev/mcp --header "Authorization: Bearer ${KEYFRAMER_TOKEN}"[mcp_servers.keyframer]
url = "https://api.keyframer.dev/mcp"
bearer_token_env_var = "KEYFRAMER_TOKEN"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"keyframer": {
"type": "remote",
"url": "https://api.keyframer.dev/mcp",
"enabled": true,
"headers": {
"Authorization": "Bearer {env:KEYFRAMER_TOKEN}"
}
}
}
}{
"mcpServers": {
"keyframer": {
"type": "http",
"url": "https://api.keyframer.dev/mcp",
"headers": {
"Authorization": "Bearer ${KEYFRAMER_TOKEN}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=keyframer&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmtleWZyYW1lci5kZXYvbWNwIiwiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7S0VZRlJBTUVSX1RPS0VOfSJ9fQ%3D%3D"
}{
"servers": {
"keyframer": {
"type": "http",
"url": "https://api.keyframer.dev/mcp",
"headers": {
"Authorization": "Bearer ${KEYFRAMER_TOKEN}"
}
}
}
}{
"mcpServers": {
"keyframer": {
"httpUrl": "https://api.keyframer.dev/mcp",
"headers": {
"Authorization": "Bearer ${KEYFRAMER_TOKEN}"
}
}
}
}extensions:
"keyframer":
enabled: true
name: "keyframer"
type: streamable_http
uri: "https://api.keyframer.dev/mcp"
headers:
"Authorization": "Bearer ${KEYFRAMER_TOKEN}"
timeout: 300
Placeholders to fill from your own secret store: ${KEYFRAMER_TOKEN}. The registry never accepts secret values.
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations11 of 11 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: list_scenes (destructiveHint, idempotentHint, openWorldHint); get_recipe (destructiveHint, idempotentHint, openWorldHint); search_recipes (destructiveHint, idempotentHint, openWorldHint); …tools.token_costabout 1,845 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changesno tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-94% ~updated-58d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://api.keyframer.dev/mcp streamable-http | none | yes | 94% | 1317 ms | 2025-11-25 | 2026-10-20 |
create_scene | Save a scene and get an editor URL where it opens in the visual editor (timeline, canvas, node graphs, mobile QR preview). Validates first. Works without a key: the scene is then a public 24-hour guest scene with a scannable QR, kept forever by signing up (free) and pressing Remix. With a key it saves to the account (free accounts up to the free scene limit, paid unlimited). |
generate_coderead-only | Compile a scene into a runnable React Native component. Pass inline scene JSON or a scene_id from your account. Output targets Reanimated v4 by default ("animated" targets the RN core Animated API, reduced feature set). Deterministic — no AI, no credits. Requires an API key on a paid plan. |
get_preview_qrread-only | A terminal-scannable QR code for a scene. Scan it with a phone camera and the scene runs live in the Keyframer preview app on real hardware — edits sync as they happen. Public scenes (including guest scenes) work without a key; private scenes need an API key on a paid plan. |
get_reciperead-only | Fetch one recipe by slug: metadata, the scene JSON (usable as a starting point for create_scene), and the generated React Native Reanimated component code. Recipe code is free to use. |
get_sceneread-only | Fetch one of your scenes (or any public scene) as JSON — edit it and re-save with update_scene, or feed it to generate_code. Requires an API key. |
get_scene_formatread-only | The Keyframer scene JSON format — read this before authoring a scene. Section "scene" covers elements/keyframes/easing; section "nodes" covers node graphs (procedural animation: clocks, springs, repeaters) with the full node-type schema. |
list_scenesread-only | List the scenes in the connected Keyframer account (id, name, updated, visibility). Requires an API key. |
sample_sceneread-only | Numerically preview a scene: evaluates keyframes AND node graphs at N evenly spaced times and returns each moving prop as a value series (the same math the editor preview runs). validate_scene checks structure — this checks MOTION: confirm ranges, spring overshoot, stagger offsets, and that elements actually move before create_scene. Free to call — iterate: author → sample → adjust. |
search_recipesread-only | Search 150+ free Keyframer recipes (bounce, carousels, progress rings, particles, text effects, shaders, scroll animations…). Each recipe has a scene + verified React Native Reanimated code. Returns slugs for get_recipe. |
update_scenedestructive | Replace the content of one of your scenes (full scene JSON, validated first) — the edit loop for iterating instead of duplicating. Live previews watching the scene update in place. Requires an API key; own scenes only. |
validate_sceneread-only | Validate a scene against the Keyframer format before create_scene or generate_code. Returns errors (must fix) and warnings (advisory). Free to call — iterate until clean. |
Schemas: list_tools.
{
"name": "dev.keyframer/keyframer",
"icons": [
{
"src": "https://keyframer.dev/logo512.png",
"mimeType": "image/png"
}
],
"title": "Keyframer",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://api.keyframer.dev/mcp",
"type": "streamable-http",
"headers": [
{
"name": "Authorization",
"isSecret": true,
"description": "Optional: 'Bearer kf_...' API key from keyframer.dev/app/profile (MCP tab). Recipe search, scene validation, and 24-hour guest scenes work with no key; a key saves scenes to your account."
}
]
}
],
"version": "1.0.0",
"websiteUrl": "https://keyframer.dev/mcp",
"description": "150+ React Native animation recipes, scene authoring, phone preview via QR, Reanimated v4 codegen"
}