FlipLetters

Draft, validate, render, and share split-flap and flip-dot board videos written in flipcode.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
80%
命名品質
77%
汙染風險
100%
權限相符程度
90%
協定合規性
100%

發現項目(3)

  • LOWTool 'flipletters_list_postiz_destinations' name length outside 3-30 range在 flipletters_list_postiz_destinations 中
  • LOWTool 'flipletters_list_postiz_integrations' name length outside 3-30 range在 flipletters_list_postiz_integrations 中
  • LOWTool 'flipletters_template_url' suggests web access but openWorldHint=false在 flipletters_template_url 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~2,436Token(工具定義)
~1.3 KB典型回應大小
中等的注意力影響(128k 上下文的 1.90%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "flipletters-mcp-server"
      ]
    }
  }
}

可執行的套件

npmflipletters-mcp-server0.3.1stdio

遠端端點

https://app.flipletters.com/mcp/v1streamable-http

它能做什麼

工具清單

工具(12)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢flipletters_flipcode_reference

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.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "reference": {
      "type": "string"
    }
  },
  "required": [
    "reference"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢flipletters_validate_board(code)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "minLength": 1,
      "description": "A complete flipcode document (see flipletters_flipcode_reference)."
    }
  },
  "required": [
    "code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "valid": {
      "type": "boolean"
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "canonicalCode": {
      "type": "string"
    },
    "summary": {
      "type": "object",
      "properties": {
        "template": {
          "type": "string"
        },
        "boardRows": {
          "type": "number"
        },
        "boardCols": {
          "type": "number"
        },
        "canvas": {
          "type": "string"
        },
        "slideCount": {
          "type": "number"
        }
      },
      "required": [
        "template",
        "boardRows",
        "boardCols",
        "canvas",
        "slideCount"
      ],
      "additionalProperties": false
    },
    "shareUrl": {
      "description": "Opens this exact board in the Studio. Null when the board is too large for a URL — share the code text instead.",
      "type": [
        "string",
        "null"
      ]
    },
    "openWithCodeUrl": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "valid",
    "warnings",
    "canonicalCode",
    "summary",
    "shareUrl",
    "openWithCodeUrl"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢flipletters_example_board(template)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "template": {
      "type": "string",
      "description": "Board type or alias: minimal, trainboard, station, artboard, art, flipdot, dots, marquee, desk, announcement, poster, arena, lightbox."
    }
  },
  "required": [
    "template"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "template": {
      "type": "string"
    },
    "code": {
      "type": "string"
    }
  },
  "required": [
    "template",
    "code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢flipletters_template_url(board, grid, title, accent, out, ...)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "board": {
      "description": "Board type/alias, e.g. \"station\".",
      "type": "string"
    },
    "grid": {
      "description": "ROWSxCOLS, e.g. \"8x34\".",
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "accent": {
      "description": "Hex color, # optional.",
      "type": "string"
    },
    "out": {
      "description": "Canvas: \"vertical\", \"square\", \"1200x630@25\", …",
      "type": "string"
    },
    "sound": {
      "type": "string"
    },
    "speed": {
      "type": "string"
    },
    "slides": {
      "description": "Each entry is one slide; | separates rows: \"EGGS BENEDICT|FLAT WHITE\".",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "flip": {
      "description": "Transition, commas for spaces: \"cascade,9,0.2,0.4\".",
      "type": "string"
    },
    "hold": {
      "description": "Seconds, e.g. \"6\".",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
⚪flipletters_render_board(code, repeat, wait)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "minLength": 1,
      "description": "Complete flipcode document."
    },
    "repeat": {
      "description": "Loop the segment this many times (default 1). Caps apply for long / 4K exports.",
      "type": "integer",
      "minimum": 1,
      "maximum": 120
    },
    "wait": {
      "description": "If true (default), poll until done/error. If false, return jobId immediately.",
      "type": "boolean"
    }
  },
  "required": [
    "code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢flipletters_render_status(jobId)

Poll a cloud render job started with flipletters_render_board. Requires Authorization: Bearer flk_….

輸入結構描述

{
  "type": "object",
  "properties": {
    "jobId": {
      "type": "string",
      "minLength": 1,
      "description": "Job id returned by flipletters_render_board."
    }
  },
  "required": [
    "jobId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢flipletters_list_teams

Lists FlipLetters teams the API key owner belongs to (teamId, name, inviteCode). Requires Authorization: Bearer flk_… with team scope.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢flipletters_share_to_team(teamId, name, code)

Parses flipcode and shares the board into a Team Library the key owner is a member of. Requires Authorization: Bearer flk_…. Use flipletters_list_teams first to get teamId.

輸入結構描述

{
  "type": "object",
  "properties": {
    "teamId": {
      "type": "string",
      "minLength": 1,
      "description": "Team id from flipletters_list_teams."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "Display name for the template in the team library."
    },
    "code": {
      "type": "string",
      "minLength": 1,
      "description": "Complete flipcode document."
    }
  },
  "required": [
    "teamId",
    "name",
    "code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢flipletters_list_workspaces

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_….

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢flipletters_list_postiz_destinations(workspaceId)

Lists Postiz destinations (masked keys) attached to a FlipLetters project. Use flipletters_list_workspaces first. Requires Authorization: Bearer flk_….

輸入結構描述

{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "minLength": 1,
      "description": "Project id from flipletters_list_workspaces."
    }
  },
  "required": [
    "workspaceId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢flipletters_list_postiz_integrations(workspaceId, destinationId)

Lists connected social channels for a project's Postiz share account. Use before flipletters_share_to_postiz to get integrationId. Requires Authorization: Bearer flk_….

輸入結構描述

{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "minLength": 1
    },
    "destinationId": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "workspaceId",
    "destinationId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢flipletters_share_to_postiz(workspaceId, destinationId, integrationId, date, type, ...)

Uploads a cloud media URL (or Studio host local fileName) to a project's Postiz destination and schedules/drafts/posts it. Loop: render_board → list_workspaces → list_postiz_destinations → list_postiz_integrations → share_to_postiz. Requires Authorization: Bearer flk_…. Prefer mediaUrl from flipletters_render_board.

輸入結構描述

{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "minLength": 1,
      "description": "FlipLetters project id."
    },
    "destinationId": {
      "type": "string",
      "minLength": 1,
      "description": "Postiz destination id on that project."
    },
    "integrationId": {
      "type": "string",
      "minLength": 1,
      "description": "Postiz channel/integration id."
    },
    "date": {
      "type": "string",
      "minLength": 1,
      "description": "UTC ISO datetime, e.g. 2026-08-14T15:00:00.000Z"
    },
    "type": {
      "description": "Default schedule.",
      "type": "string",
      "enum": [
        "schedule",
        "draft",
        "now"
      ]
    },
    "content": {
      "description": "Caption / post body.",
      "type": "string"
    },
    "mediaUrl": {
      "description": "HTTPS URL of the MP4 (from cloud render).",
      "type": "string"
    },
    "fileName": {
      "description": "Local renders/*.mp4 name when Studio host has the file.",
      "type": "string"
    },
    "providerType": {
      "description": "Postiz provider __type, e.g. tiktok, x, linkedin.",
      "type": "string"
    }
  },
  "required": [
    "workspaceId",
    "destinationId",
    "integrationId",
    "date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本12 個工具