FlipLetters
by flipletters.com · remote · local (npm) · no sign-in to list tools · v0.3.1 · published by com.flipletters
Draft, validate, render, and share split-flap and flip-dot board videos written in flipcode.
12 tools: 5 change things and 7 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things5Claude Code: ask: see these tools
- Only reads7Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http flipletters https://app.flipletters.com/mcp/v1 --header 'Authorization: <your-authorization>'Findings
Matches of fixed checks, with the text they matched.
The server marks "flipletters_validate_board" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "flipletters_validate_board" says "validate": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
12 tools
Changes things 5Claude Code: ask
flipletters_render_boardParses flipcode and submits a cloud MP4 render under the API key owner's FlipLetters plan (same free quota / Premium / Studio limits as the Studio).No findings
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Parses flipcode and submits a cloud MP4 render under the API key owner's FlipLetters plan (same free quota / Premium / Studio limits as the Studio). Requires Authorization: Bearer flk_… (or FLIPLETTERS_API_KEY on stdio). Polls until done (or returns jobId if wait=false). Prefer share links for free previews; only render when the human wants an MP4 file.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
flipletters_template_urlBuilds a human-readable FlipLetters Studio URL where every query parameter mirrors one flipcode line — good for short text boards you want legible in the address itself (chat messa…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Builds a human-readable FlipLetters Studio URL where every query parameter mirrors one flipcode line — good for short text boards you want legible in the address itself (chat messages, docs). For full fidelity or paint grids use flipletters_validate_board's share link instead. Slides are strings with | between rows.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
flipletters_validate_boardParses a flipcode document, returning the normalized canonical code, any warnings (out-of-range values are clamped, unknown lines ignored), a board summary, and links: a share URL …1 finding
Why it is in this group
- The name "flipletters_validate_board" says "validate": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "flipletters_validate_board" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The name "flipletters_validate_board" says "validate": a word for reading.
Description, as the server wrote it Parses a flipcode document, returning the normalized canonical code, any warnings (out-of-range values are clamped, unknown lines ignored), a board summary, and links: a share URL that opens the exact board in the FlipLetters Studio, and an open-with-code URL that also reveals the code panel. Use this after drafting a board; fix warnings and re-validate until clean, then give the human the share link.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
Only reads 7Claude Code: allow
flipletters_example_boardReturns a complete, valid flipcode document for a board type (minimal, trainboard/station, artboard, flipdot, marquee, announcement, arena) — a known-good starting point to edit ra…No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Returns a complete, valid flipcode document for a board type (minimal, trainboard/station, artboard, flipdot, marquee, announcement, arena) — a known-good starting point to edit rather than writing from scratch.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
flipletters_flipcode_referenceReturns the flipcode cheat sheet (spec v1): directives, board types and size limits, transition modes, and flip-native effect recipes.No findings
Why it is in this group
- The description's first verb is "return": a word for reading.
Description, as the server wrote it Returns the flipcode cheat sheet (spec v1): directives, board types and size limits, transition modes, and flip-native effect recipes. Call this before writing a board so the code you produce is valid on the first try.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
flipletters_list_postiz_destinationsLists Postiz destinations (masked keys) attached to a FlipLetters project.No findings
Why it is in this group
- The name "flipletters_list_postiz_destinations" says "list": a word for reading.
Description, as the server wrote it Lists Postiz destinations (masked keys) attached to a FlipLetters project. Use flipletters_list_workspaces first. Requires Authorization: Bearer flk_….
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: true
flipletters_list_postiz_integrationsLists connected social channels for a project's Postiz share account.No findings
Why it is in this group
- The name "flipletters_list_postiz_integrations" says "list": a word for reading.
Description, as the server wrote it Lists connected social channels for a project's Postiz share account. Use before flipletters_share_to_postiz to get integrationId. Requires Authorization: Bearer flk_….
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: true
flipletters_list_teamsLists FlipLetters teams the API key owner belongs to (teamId, name, inviteCode).No findings
Why it is in this group
- The name "flipletters_list_teams" says "list": a word for reading.
Description, as the server wrote it Lists FlipLetters teams the API key owner belongs to (teamId, name, inviteCode). Requires Authorization: Bearer flk_… with team scope.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: true
flipletters_list_workspacesLists agency projects (workspaces) for the API key owner, plus the active project id.No findings
Why it is in this group
- The name "flipletters_list_workspaces" says "list": a word for reading.
Description, as the server wrote it Lists agency projects (workspaces) for the API key owner, plus the active project id. Project-scoped keys return their bound project as active. Requires Authorization: Bearer flk_….
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: true
flipletters_render_statusPoll a cloud render job started with flipletters_render_board.No findings
Why it is in this group
- The name "flipletters_render_status" says "status": a word for reading.
Description, as the server wrote it Poll a cloud render job started with flipletters_render_board. Requires Authorization: Bearer flk_….
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.3.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http flipletters https://app.flipletters.com/mcp/v1 --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__flipletters__flipletters_flipcode_reference",
"mcp__flipletters__flipletters_example_board",
"mcp__flipletters__flipletters_render_status",
"mcp__flipletters__flipletters_list_teams",
"mcp__flipletters__flipletters_list_workspaces",
"mcp__flipletters__flipletters_list_postiz_destinations",
"mcp__flipletters__flipletters_list_postiz_integrations"
],
"ask": [
"mcp__flipletters__flipletters_validate_board",
"mcp__flipletters__flipletters_template_url",
"mcp__flipletters__flipletters_render_board",
"mcp__flipletters__flipletters_share_to_team",
"mcp__flipletters__flipletters_share_to_postiz"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as flipletters. Review it before you use it.