Neblla
by neblla.com in Documents & files
Build and publish multiplayer apps and games on Neblla: scaffold, edit files, ship to the gallery.
https://neblla.com/mcp
Last 30 days
- Uptime
- 100%
- Response time
- 214 ms typical, 214 ms slowest 5%
- Last check
- 6 h ago
- Next check
- any minute now
How to call it
Add it to any MCP client that supports remote servers.
{
"mcpServers": {
"neblla": {
"type": "http",
"url": "https://neblla.com/mcp"
}
}
}57 tools
- neblla_get_llms
Fetch the Neblla developer guide (llms.txt), split by topic so you read only what the app uses. Call this BEFORE designing or writing any code for a Neblla app — at minimum the `core` section (the default): the canonical six-file structure, the events-only client/server contract,
- neblla_get_app_url
Returns the canonical public URL for a Neblla app in the gallery. ALWAYS call this after neblla_create_app — never construct the URL yourself. Apps are published and browsed at play.neblla.com. The URL format is https://play.neblla.com/<slug>, where <slug> is auto-generated from
- neblla_validate_requirements
Walk the SAME decision map the Neblla dashboard wizard uses, before creating an app. STRONGLY RECOMMENDED before neblla_create_app on any new-app request (skip it only for edits/fixes to existing code). It front-loads every structural decision so the app is born configured right.
- neblla_create_app
Create a new Neblla app. Returns the app ID (appId) to use in subsequent file upload operations. Recommended flow for a NEW app: 1) Call neblla_validate_requirements with the decisions you can infer from the request — it walks the same decision map as the dashboard wizard; answ
- neblla_list_apps
List all apps owned by the authenticated developer.
- neblla_delete_app
Permanently delete an app and all its files.
- neblla_update_app
Update an app's configuration. Pass only the fields you want to change. Use addDomain/removeDomain to mutate the allowed-origins list atomically without overwriting other entries. `sandbox: true` lets the app load on localhost / non-https origins for development. `ai` is the AI p
- neblla_list_community_entries
List the community entries (user-published content, neblla.community) of an app from the backoffice, any status. Use it to triage the moderation queue: status "pending" is what awaits approval in review mode. Returns indexed metadata only (title, summary, category, tags, contentT
- neblla_get_community_entry
Fetch one community entry WITH its payload (the dev-defined JSON), whatever its status, plus its user reports (open count, count by reason, and each report with an opaque reporter id). Stats carry favorites, rating and reviews.
- neblla_publish_community_entry
Publish a community entry AS YOURSELF — owned by your own user in the app (the app user whose email is your developer email; log into the app once first). Use it to seed a community with starter content. It skips the review queue (you are a moderator of your app) and obeys the sa
- neblla_moderate_community_entry
Moderate a community entry as the app owner: approve or reject a pending entry, remove a published one, or restore a rejected/removed one. `reject` and `remove` require a `reason` from the fixed taxonomy; the author receives the reason and your `message` live (communityUpdated) a
- neblla_upload_file
Upload or update a file for an app. Pass text files (HTML, CSS, JS, TS, JSON, SVG) as raw UTF-8 text with encoding="utf8" (the default) — do NOT base64-encode them, even if they contain quotes, backticks, ${...} or newlines; send the source verbatim. For binary files (images, fon
- neblla_list_files
List all files staged for an app. Returns path, mimeType, size, and timestamps for each file.
- neblla_get_file
Get the content of a specific file. Text files (HTML, CSS, JS, JSON, SVG, plain text) are ALWAYS returned as UTF-8 strings — never base64. Binary files (images, fonts, audio) are returned as base64. The response includes an `encoding` field ("utf8" or "base64") so you know how to
- neblla_delete_file
Delete a single file from an app.
- neblla_move_file
Rename or move a file within an app. oldPath is the current path, newPath is the destination.
- neblla_create_product
Create a purchasable product for a Neblla app. type must be "one_time" (single purchase, fixed price) or "consumable" (quantity selector, price per unit). name should be a multi-language object e.g. { en: "Gold Coins", es: "Monedas de Oro" }. price (one_time) and pricePerUnit (co
- neblla_update_product
Update an existing product. Pass only the fields to change. Use this to adjust price, rename, or republish a product without losing its productId — changing the id would break checkout flows already wired into the app.
- neblla_list_products
List all products for a Neblla app.
- neblla_delete_product
Permanently delete a product from a Neblla app.
- neblla_publish_app
Publish a Neblla app to the public gallery. BEFORE calling this tool you MUST follow these steps with the user: 1) Ask for the app title and a short description (1-3 sentences) in the user's language. 2) Ask for the gallery section: "multiplayer" (games/apps where users interact
- neblla_unpublish_app
Remove an app from the public gallery. The app keeps its files and URL — only its public listing is hidden. Use neblla_publish_app to re-publish.
- neblla_list_users
List end users of an app — the people who connected through the SDK, NOT the developer's own account. Use this as the entry point for the backoffice flow: it returns a paginated list with each user's mongo `_id` (needed for every other backoffice tool), email, name, language, and
- neblla_search_users_by_email
Find users of an app by a partial email match (min 2 characters). Returns the matching user docs with email, communications, data, stats, and language. Use neblla_list_users for full pagination instead when no email is known.
- neblla_get_user
Fetch the full record of a single end user — their saved data, public info, purchases, and communications thread. Use the `_id` from neblla_list_users / neblla_search_users_by_email as `userId`.
- neblla_list_communications
List communications across ALL users of an app, filtered and sorted. The most useful tool for triaging an inbox: show only unread, only messages from users (not the dev), only flagged-important, or only those mentioning a given email. Returns flat items with userId so you can fol
- neblla_send_communication
Send a message from the developer to a specific end user. The user receives it live via the SDK's `communicationUpdated` event if connected, and on next reconnect otherwise. Optionally attach a `data` JSON payload (rendered by the app), or a calendar/appointment proposal via date
- neblla_set_communication_read
Mark a specific communication as read or unread (from the developer's side). The end user is notified live via a `communicationRead` socket event if connected.
- neblla_set_communication_important
Toggle the "important" flag on a communication. This is dev-only metadata and is NOT broadcast to the end user — use it to bubble messages to the top of your own triage view.
- neblla_delete_communication
Permanently remove a communication from a user's thread. The end user is notified via a `communicationDeleted` socket event so their UI updates in real time.
- neblla_update_user_data
Replace the `data` object for a specific end user (the same object the SDK's neblla.save() reads/writes). Use sparingly: this overwrites the user's saved state and the change is broadcast live. Useful for support (unstuck a player), moderation (clear a corrupted save), or admin t
- neblla_list_rooms
List the persistent / predefined rooms of an app with their type, owners, whitelist, moderators, data, message count, last activity and how many users are in each one right now.
- neblla_get_room_history
Read a room's chat history (newest first, paginated) for moderation. Returns the players' messages in clear: only use it when the developer asks to review a room.
- neblla_delete_room_message
Delete (soft) one chat message from a room, as the developer. Players see it removed.
- neblla_create_room
Create a predefined room (it exists before anyone joins). Name: A-Z 0-9 _ - (stored uppercase); LOBBY is reserved. `permanent: true` keeps it (and its data) when it empties.
- neblla_update_room
Change a room: replace its shared `data` (players in the room receive it live) and/or its `moderators` list. Replacing data overwrites the live game state of that room — confirm with the developer first.
- neblla_delete_room
Delete a persistent room and its stored data. If people are inside it right now the session continues and the room disappears when it empties. LOBBY cannot be deleted. Irreversible — confirm with the developer first.
- neblla_list_moderators
List the app-level moderators (per-app user ids). App moderators manage rooms of any type and moderate the community.
- neblla_set_moderator
Make a player an app moderator (`moderator: true`) or remove them (`false`). `userId` is the per-app user id (from neblla_list_users), not an email.
- neblla_set_ban_status
Set a player's ban state in this app: "none" (lift), "banned" (the app shows the ban message and blocks play), "terminated" (wipes the player's local data in the browser and disconnects them — irreversible for that data), "community_muted" (can play but cannot publish, rate or re
Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 6 h ago | Passed | 200 | 214 ms |
| 14 h ago | Passed | 200 | 295 ms |
| 23 h ago | Passed | 200 | 108 ms |