Lineup

Turn one sentence into an event pack: event card, identity badges, QR codes, and .ics.

我該用這個嗎

品質與安全性

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

發現項目(4)

  • HIGHTool poisoning patterns detected
  • LOWTool 'generate-lineup' doesn't follow camelCase/snake_case在 generate-lineup 中
  • LOWTool 'render-badge-png' doesn't follow camelCase/snake_case在 render-badge-png 中
  • INFOTool description contains placeholder or incomplete text在 generate-lineup 中

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

上下文成本

~1,413Token(工具定義)
~6.7 KB典型回應大小
中等的注意力影響(128k 上下文的 1.10%)

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

安裝

一鍵安裝

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

{
  "mcpServers": {
    "lineup": {
      "url": "https://lineup-bf157e35.alpic.live"
    }
  }
}

遠端端點

https://lineup-bf157e35.alpic.livestreamable-http
https://lineup-bf157e35.alpic.livesse

它能做什麼

工具清單

工具(2)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢generate-lineup(title, dateISO, venue, accentHex, rsvpUrl, ...)

Generate an event pack: a Luma-style event card with .ics + RSVP QR, and an identity badge per attendee with a deterministic avatar and vCard-encoded QR. Use when the user describes an event and the people attending (meetup, conference, wedding, hackathon, dinner) and wants shareable cards. Do NOT use to render a single downloadable PNG of one badge — use render-badge-png for that. Output is deterministic: the same attendee name + style always yields the same avatar.

輸入結構描述

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Event title"
    },
    "dateISO": {
      "type": "string",
      "description": "Event start time as ISO 8601 string (UTC or with offset)"
    },
    "venue": {
      "description": "Venue / location text",
      "type": "string"
    },
    "accentHex": {
      "description": "Hex color for accent (e.g. '#ef4444'). Defaults to indigo.",
      "type": "string"
    },
    "rsvpUrl": {
      "description": "URL to encode in the event RSVP QR code",
      "type": "string"
    },
    "durationHours": {
      "description": "Event duration in hours (default 3)",
      "type": "number"
    },
    "avatarStyle": {
      "description": "Avatar style for the whole crew. 'notionists' = Notion-style sketch (default, friendly meetups), 'lorelei' = monochrome line art (calm/professional), 'bottts' = colorful robots (hackathons / playful trading-card vibe), 'shapes' = abstract geometric (anonymous voting / ballots).",
      "type": "string",
      "enum": [
        "notionists",
        "lorelei",
        "bottts",
        "shapes"
      ]
    },
    "attendees": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Attendee full name"
          },
          "role": {
            "description": "Short role label (e.g. 'Host', 'Judge', 'Hacker')",
            "type": "string"
          },
          "gender": {
            "description": "Optional gender hint to make the avatar read more clearly: 'm' (no earrings, may have a beard), 'f' (no beard, may have earrings), or 'x'/omit for neutral. Only affects the lorelei & notionists styles. Infer from the name when the user clearly implies it, otherwise omit.",
            "type": "string",
            "enum": [
              "m",
              "f",
              "x"
            ]
          },
          "email": {
            "description": "Email address, e.g. '[email protected]'",
            "type": "string"
          },
          "phone": {
            "description": "Phone number, e.g. '+49 30 1234567'",
            "type": "string"
          },
          "company": {
            "description": "Company / organization name",
            "type": "string"
          },
          "website": {
            "description": "Personal or company website, e.g. 'acme.io'",
            "type": "string"
          },
          "linkedin": {
            "description": "LinkedIn profile, e.g. 'linkedin.com/in/lenabauer'",
            "type": "string"
          },
          "address": {
            "description": "Postal/contact address as freeform text",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "description": "Attendees to generate identity badges for"
    }
  },
  "required": [
    "title",
    "dateISO",
    "attendees"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "event": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string"
        },
        "dateISO": {
          "type": "string"
        },
        "venue": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "accentHex": {
          "type": "string"
        },
        "rsvpUrl": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "avatarStyle": {
          "type": "string"
        },
        "icsString": {
          "type": "string"
        },
        "qrSvg": {
          "type": "string"
        }
      },
      "required": [
        "title",
        "dateISO",
        "venue",
        "accentHex",
        "rsvpUrl",
        "avatarStyle",
        "icsString",
        "qrSvg"
      ],
      "additionalProperties": false,
      "description": "Event card data (title, date, venue, accent, RSVP QR, .ics)"
    },
    "badges": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "gender": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "phone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "company": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "website": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "linkedin": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "avatarSvg": {
            "type": "string"
          },
          "vcardQrSvg": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "role",
          "gender",
          "email",
          "phone",
          "company",
          "website",
          "linkedin",
          "address",
          "avatarSvg",
          "vcardQrSvg"
        ],
        "additionalProperties": false
      },
      "description": "One identity badge per attendee"
    }
  },
  "required": [
    "event",
    "badges"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢render-badge-png(name, role, accentHex, eventTitle, avatarStyle, ...)

Render a single identity badge as a shareable PNG (avatar + name + role + vCard QR) composed with Satori. Use when the user clicks download on one badge, or asks for a single saveable/printable badge image. Do NOT use to build the whole event view — use generate-lineup for that. Match avatarStyle/gender/accentHex to the badge shown in the Lineup so the PNG looks identical.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Attendee full name"
    },
    "role": {
      "description": "Role label",
      "type": "string"
    },
    "accentHex": {
      "description": "Accent hex color",
      "type": "string"
    },
    "eventTitle": {
      "description": "Event title (printed on the badge)",
      "type": "string"
    },
    "avatarStyle": {
      "description": "Avatar style (same options as generate-lineup). Match the event's style.",
      "type": "string",
      "enum": [
        "notionists",
        "lorelei",
        "bottts",
        "shapes"
      ]
    },
    "seed": {
      "description": "Avatar seed override (defaults to name). Used when the user re-rolled this face.",
      "type": "string"
    },
    "gender": {
      "description": "Gender hint (same as generate-lineup). Match the badge.",
      "type": "string",
      "enum": [
        "m",
        "f",
        "x"
      ]
    }
  },
  "required": [
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "pngDataUrl": {
      "type": "string",
      "description": "The rendered badge as a base64 PNG data URL"
    }
  },
  "required": [
    "pngDataUrl"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本2 個工具
已驗證未記錄版本2 個工具
觀測失敗未記錄版本—
觀測失敗未記錄版本—