此 MCP 可以做什么
Publishes and manages hosted browser games, worlds, and tools, including version listing, rollback, and documentation search.
工具
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['handle', 'spaces'], 'properties': {'handle': {'type': 'string'}, 'spaces': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'title', 'status', 'hosted', 'pageUrl', 'createdAt'], 'properties': {'slug': {'type': 'string'}, 'title': {'type': 'string'}, 'hosted': {'type': 'boolean', 'description': 'Velven hosts its files (else it links a live URL).'}, 'status': {'type': 'string', 'description': 'published, processing, held, dead, unframeable.'}, 'pageUrl': {'type': 'string'}, 'createdAt': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sdk': {'type': 'boolean', 'description': "Add Velven's SDK script to the entry page. Default true."}, 'spa': {'type': 'boolean', 'description': 'Serve the entry page for any unknown path (a single-page app).'}, 'clip': {'type': 'string', 'description': "The video the tile plays on hover, without sound. Give the path of one of the files sent: an MP4 or WebM, up to 3 MB and 5 to 10 seconds long. Velven then records no clip of its own. Without a thumbnail, the clip's first frame is the picture. It must show the space itself. A clip outside that length is refused. If the file doesn't say its length, Velven measures it once live. It keeps the first 10 seconds of a longer clip, and drops a shorter one. A later version that names neither keeps the space's."}, 'html': {'type': 'string', 'description': 'A whole page as one HTML string, published as index.html.'}, 'prod': {'type': 'boolean', 'description': "Go live on the space's Velven page instead of making a preview. Signed in only. Default false."}, 'type': {'enum': ['game', 'world', 'tool', 'wonder'], 'type': 'string', 'description': 'What it is. Required for a new space.'}, 'claim': {'type': 'string', 'pattern': '^vlc_[A-Za-z0-9_-]{43}$', 'description': 'The claim token of an unlisted page: publishes its next version, or claims it when signed in.'}, 'entry': {'type': 'string', 'description': 'The page that opens first, if not index.html.'}, 'files': {'type': 'object', 'description': 'Files by relative path: text as a string, binary as { "base64": "..." }. Must include the entry page (index.html unless entry says otherwise). A velven.json, a dotfile, a dot-folder or node_modules, in any folder, is left out (never published; the result names the first 10 and counts the rest): send velven.json\'s settings as this tool\'s fields.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'object', 'required': ['base64'], 'properties': {'base64': {'type': 'string'}}}]}}, 'space': {'type': 'string', 'pattern': '^[a-z0-9-]{1,100}$', 'description': 'Publish a new version of this space (yours, signed in).'}, 'title': {'type': 'string', 'maxLength': 80, 'description': "The space's name. Required for a new space."}, 'engine': {'enum': ['three.js', 'r3f', 'babylon.js', 'playcanvas', 'a-frame', 'godot', 'unity', 'phaser', 'p5.js', 'canvas', 'webgl', 'webgpu', 'wasm', 'dom', 'marble', 'spline', 'other'], 'type': 'string', 'description': 'What it draws with, if one of these.'}, 'devices': {'type': 'array', 'items': {'enum': ['desktop', 'mobile', 'vr'], 'type': 'string'}, 'description': 'Where it can be played. Required for a new space.'}, 'how_made': {'type': 'string', 'maxLength': 2000, 'description': "How it was made, in the creator's words."}, 'thumbnail': {'type': 'string', 'description': "The picture on the space's tile. Give the path of one of the files sent: a JPEG, PNG or WebP, up to 2 MB and 4096 pixels on each side. It's used as soon as the version is live, and Velven takes no picture of its own. It must show the space itself."}, 'description': {'type': 'string', 'maxLength': 160, 'description': 'One line under the name.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['space', 'version', 'status', 'pageUrl'], 'properties': {'space': {'type': 'string', 'description': "The space's slug."}, 'terms': {'type': 'string', 'description': 'The Terms line to show the person (no account).'}, 'reason': {'type': 'string', 'description': 'Why it was refused, naming the file when it was one.'}, 'status': {'type': 'string', 'description': "The version's status: preview, publishing (waiting on Velven to publish it), live or refused."}, 'leftOut': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Files not published (velven.json, dotfiles, node_modules), the first 10.'}, 'pageUrl': {'type': 'string', 'description': "The space's page on Velven."}, 'version': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'The version this publish made.'}, 'claimUrl': {'type': 'string', 'description': 'Open signed in to claim the page (no account).'}, 'watchUrl': {'type': 'string', 'description': 'Where to follow the version on Velven.'}, 'expiresAt': {'type': ['string', 'null'], 'description': 'When an unlisted page is deleted unless claimed (no account).'}, 'claimToken': {'type': 'string', 'description': "The unlisted page's claim token, shown once (no account)."}, 'previewUrl': {'type': 'string', 'description': 'The private preview, for 24 hours (a preview only).'}, 'leftOutCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'How many files were left out in all.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['space', 'version'], 'properties': {'space': {'type': 'string', 'pattern': '^[a-z0-9-]{1,100}$', 'description': "The space's slug, as my_spaces or publish named it, e.g. pixel-racer."}, 'version': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'The version number to make live again.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['version', 'status', 'pageUrl'], 'properties': {'status': {'type': 'string', 'const': 'live'}, 'pageUrl': {'type': 'string'}, 'version': {'type': 'object', 'required': ['number'], 'properties': {'number': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}}, 'additionalProperties': False}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 10, 'minimum': 1, 'description': 'How many sections to return. Default 5.'}, 'query': {'type': 'string', 'maxLength': 200, 'minLength': 2, 'description': 'What to look up, in a few words.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query', 'results'], 'properties': {'query': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url', 'text'], 'properties': {'url': {'type': 'string'}, 'text': {'type': 'string'}, 'title': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['space'], 'properties': {'space': {'type': 'string', 'pattern': '^[a-z0-9-]{1,100}$', 'description': "The space's slug, as my_spaces or publish named it, e.g. pixel-racer."}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['space', 'versions'], 'properties': {'space': {'type': 'string'}, 'versions': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'number', 'status', 'createdAt', 'live', 'files', 'size', 'rollback', 'leftBehind'], 'properties': {'id': {'type': 'string'}, 'live': {'type': 'boolean'}, 'size': {'type': 'number', 'description': 'Bytes.'}, 'files': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'liveAt': {'type': 'string'}, 'number': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'reason': {'type': 'string', 'description': 'Why Velven refused it.'}, 'status': {'type': 'string', 'description': 'uploading, preview, publishing, live, refused, unjudged or replaced.'}, 'rollback': {'type': 'boolean', 'description': 'It was live before, so rollback can pick it.'}, 'createdAt': {'type': 'string'}, 'leftBehind': {'type': 'boolean', 'description': 'Made before the space moved off hosting: it can only be looked at.'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
近期工具变更
类似的 MCP 服务器
GripForge
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
spriteship
Generates and manages 2D game characters, assets, animations, tilesets, UI packs, maps, and engine-ready exports for multiple gam…
klyo games: publish HTML5 browser games
Creates, edits, tests, publishes, updates, and analyzes HTML5 browser games, including game files, SDK features, releases, and pl…
3DAssets.dev
Searches and delivers free CC0 GLB models and game asset packs, with licensing details, CDN links, scene layouts, and loader usag…
YouGame
Supports browser game documentation, build validation, multiplayer testing, staged uploads, publishing, updates, and remixes for …
AXIS Avatar Foundry
Generates, repairs, rigs, validates, retargets, compares, and exports production-ready 3D avatars and meshes for game platforms.
Agent Arcade
Provides contracts and workflows for creating, testing, certifying, publishing, and releasing server-authoritative AI-native game…
steamwebapi
Documents and executes read-only Steam and third-party game-market API endpoints, including product, inventory, pricing, and mark…