spawnpop
Roblox game assets for your agent: free kit plan, then GUI, icons, thumbnails, 3D props and music.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"spawnpop": {
"url": "https://spawnpop.com/mcp"
}
}
}원격 엔드포인트
https://spawnpop.com/mcpstreamable-http할 수 있는 일
도구 목록
도구 (9)
🟢plan_kit(description, genre, style)
No charge. Turns a one-sentence game idea into a priced kit (GUI, icons, thumbnail, 3D props, music). With an API key the plan is saved as a project; without one you get the same plan and price plus a link for the user to connect.
입력 스키마
{
"type": "object",
"properties": {
"description": {
"type": "string",
"minLength": 3,
"maxLength": 500,
"description": "The game idea in plain words."
},
"genre": {
"type": "string",
"enum": [
"simulator",
"tycoon",
"tower_defense",
"obby",
"rng",
"horror",
"roleplay",
"fighting"
]
},
"style": {
"description": "Art direction, e.g. \"chunky pastel cartoon\".",
"type": "string",
"maxLength": 300
}
},
"required": [
"description"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢draft(projectId, itemIds, variants, confirmCredits, requestId)
Costs 10 credits per draft image. Makes low-cost previews with an AI fit check so finals are only bought for what works. confirmCredits must equal the price (items x copies x variants); requestId makes a retry free.
입력 스키마
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"itemIds": {
"minItems": 1,
"maxItems": 40,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
"variants": {
"default": 1,
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 4
}
]
},
"confirmCredits": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestId": {
"type": "string",
"minLength": 8,
"maxLength": 64,
"pattern": "^[\\w-]+$"
}
},
"required": [
"projectId",
"itemIds",
"confirmCredits",
"requestId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢approve(projectId, approvals)
No charge. Marks one draft per item copy as the reference its final is made from. Use the outputId shown by get_status.
입력 스키마
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"approvals": {
"minItems": 1,
"maxItems": 40,
"type": "array",
"items": {
"type": "object",
"properties": {
"itemId": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"copy": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 49
},
"outputId": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
"required": [
"itemId",
"outputId"
]
}
}
},
"required": [
"projectId",
"approvals"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}⚪generate(projectId, itemIds, confirmCredits, requestId, options)
Spends credits. confirmCredits must equal the price of the items; if the price changed nothing is charged and price_changed comes back. The same requestId returns the same jobs and charges nothing. itemIds may be "approved".
입력 스키마
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"itemIds": {
"anyOf": [
{
"minItems": 1,
"maxItems": 40,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
{
"type": "string",
"const": "approved"
}
]
},
"confirmCredits": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestId": {
"type": "string",
"minLength": 8,
"maxLength": 64,
"pattern": "^[\\w-]+$"
},
"options": {
"description": "iconStyle: the game icon look when plan_kit listed styles.gameIcon. includePreview: add the optional preview sheet to \"approved\".",
"type": "object",
"properties": {
"iconStyle": {
"type": "string",
"enum": [
"avatar_3d",
"cartoon"
]
},
"includePreview": {
"description": "With itemIds \"approved\": also buy the optional themed preview sheet (its price is in plan_kit). Without it, \"approved\" never includes the preview.",
"type": "boolean"
}
}
}
},
"required": [
"projectId",
"itemIds",
"confirmCredits",
"requestId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_status(projectId, waitSeconds)
No charge. One row per plan item, drafts with the AI fit verdict (fit, misfit, unjudged or pending; unjudged never blocks approve), approvals and balance. waitSeconds (0-25) returns as soon as something changes, so a call can come back earlier than that.
입력 스키마
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"waitSeconds": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 25
}
},
"required": [
"projectId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_files(projectId)
No charge. Finished files with one-hour signed download URLs, sizes, triangle counts and stud sizes, plus a ready next-step block for Roblox Studio MCP and Open Cloud.
입력 스키마
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
"required": [
"projectId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢list_projects(limit)
No charge. Your recent projects, newest first.
입력 스키마
{
"type": "object",
"properties": {
"limit": {
"default": 20,
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢generate_sprite_sheet(description, style, extras, confirmCredits, requestId, ...)
Spends credits (150, plus 50 for each extra animation, at most 2). Draws one character from a description in a chosen style with idle, run and attack animations and delivers the sheet, GIFs, frames and JSON via get_sprite_status. confirmCredits must equal the price; the same requestId returns the same order and charges nothing. Only one paid sprite order is open per account at a time. Without an API key nothing is spent: you get the price and links for the user.
입력 스키마
{
"type": "object",
"properties": {
"description": {
"type": "string",
"minLength": 3,
"maxLength": 300
},
"style": {
"type": "string",
"enum": [
"pixel",
"cartoon",
"painted"
]
},
"extras": {
"default": [],
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"enum": [
"walk",
"jump",
"hurt",
"death"
]
}
},
"confirmCredits": {
"description": "The exact price you showed the user. Required with an API key.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"requestId": {
"description": "Required with an API key. A new one for each new purchase, the same one to retry.",
"type": "string",
"minLength": 8,
"maxLength": 64,
"pattern": "^[\\w-]+$"
},
"fromRunId": {
"description": "A finished web preview of the same character: keeps its character and idle sheet, so only the rest is drawn.",
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
"required": [
"description",
"style"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_sprite_status(runId, waitSeconds)
No charge. Progress of a sprite sheet order. When it is done: signed one-hour download links for the sprite sheet PNG, one GIF per animation, a frames zip, the sheet JSON and the character. waitSeconds (0-25) returns as soon as something changes, so a call can come back earlier than that.
입력 스키마
{
"type": "object",
"properties": {
"runId": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"waitSeconds": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 25
}
},
"required": [
"runId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}커뮤니티
증거