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 个工具