bedengan-apps
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@bedengan-appsUpload this folder as a new app to Bedengan App Hub."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Bedengan Apps MCP
The only way now to publish or update apps on
Bedengan App Hub (https://apps.wisatabedengan.com) — via an AI coding
tool (e.g. Antigravity), not through the web page anymore.
How to use it daily, in short: once installed (one time only, see below), just ask the AI "please upload this folder as a new app" or "update app X with the latest code". The rest — checking the project, fixing anything missing, then sending — is done automatically. No manual admin approval anymore: once it passes the checks, the app is immediately live.
This is not a new path to the VPS. This server only calls the same hub API using your own account token — it never touches Docker or the server directly.
Install once on your laptop
Download this folder. If you're not used to
git clone, just click the green "Code" → "Download ZIP" button on this repo's GitHub page, then extract it to any folder on your laptop (e.g.Documents/bedengan-apps-mcp).Request an API token from the admin, or create one yourself if you already have an account: go to
https://apps.wisatabedengan.com→ the "API Token" button → Create / Update API Token. The code that appears is only shown once — note it down before closing the window.Open a terminal in the extracted folder, then run:
npm install npm run build npm run initnpm run initwill ask for the hub URL (press Enter to use the default,https://apps.wisatabedengan.com) and the token from step 2. It is stored in~/.bedengan-apps/config.jsonon your own laptop — it is never included in any project zip, and must not be shared with anyone else.
Related MCP server: Citizen Deployment MCP Server
Connect to Antigravity
Add it to Antigravity's MCP server settings (look for the "MCP Servers" menu in its settings):
{
"mcpServers": {
"bedengan-apps": {
"command": "node",
"args": ["/path/absolut/ke/folder-hasil-ekstrak/dist/index.js"]
}
}
}Replace the path above with the location of dist/index.js inside the folder
where you extracted/installed it (step 1 above) — a full path, not relative.
After saving, restart Antigravity — its AI can now use the tools below.
What happens when you ask to "upload this folder"
The AI checks the project (
validate_project) — it verifies the app type is detected, no secret files (.env, API keys) are included in the zip, and the structure is complete.If something needs fixing, the AI fixes just that part of the code, then re-checks — repeating until it's clean. You don't need to intervene unless the AI is truly confused.
Once clean, it actually sends it (
submit_appfor a new app,update_appfor updating one that's already live).No one needs to approve. Within moments the app is accessible at
https://<chosen-subdomain>.apps.wisatabedengan.com.
Available tools
Tool | Function |
| Check a local folder (without sending anything) — app type detected, structure warnings, and "hard" errors that would cause rejection if not fixed first. Always called first, automatically, before the two tools below. |
| Publish a new app. Passes the checks = immediately live on the requested subdomain. |
| Update an app that is already live and belongs to your own account with the latest code. The old version is automatically saved (can be restored via the web dashboard if the new version turns out to be problematic). |
| Check the status of a submission and its build progress. |
| View all apps & submissions belonging to your own account — including the |
If the AI coding tool you use supports "MCP prompts", there is also a ready-to-use
flow called siapkan_dan_terbitkan that wraps steps 1-4 above
into a single command. If it's not supported, that's fine — the AI still
knows the correct order from each tool's description.
If rejected
The rejection message always states what needs to be fixed, for example:
"Automatically rejected -- there are indications of secrets being uploaded: .env file was included in the zip" → remove/exclude
.envfrom the project being sent (see the "Automatically excluded" section below), then try again."App type not recognized" → usually the main file is not where expected (e.g.
index.html/app.py/package.jsonis not in the outermost folder) or there is nostartscript. Ask the AI to fix the structure: static web needsindex.htmlat the root, Python needsapp.py+requirements.txt, Node needspackage.jsonwith a"start"script that readsprocess.env.PORTand listens on0.0.0.0."Your Python/Node app quota is full" → delete one old app you no longer use via the web dashboard first, then try again.
Storing data that needs to persist (databases, user uploads, etc.)
If the app stores its own data (e.g. a payroll database, user uploads, input results) and that data must remain even when the app is later updated via update_app, store everything in the ./data/ folder at the project root (relative to the folder where package.json/app.py/index.html is located). That folder is the only part of the app that is NOT replaced when the code is updated — other parts (code, node_modules, etc.) are fully replaced on every successful submit_app/update_app.
If the project already has real data in the ./data/ folder when first uploaded (e.g. a colleague moved an app that was already in use from their own laptop, complete with its contents) — that data is carried along and remains on the server from the start, no need to move it manually again.
Automatically excluded when packaging the ZIP
node_modules, .git, __pycache__, .venv/venv, .DS_Store, .next,
.cache. To exclude others, create a .bedenganignore file at the root of the project folder — one relative folder/file name per line (not full globs like .gitignore, just the exact name).
If the token leaks
Revoke it yourself via the web dashboard (the "API Token" button → "Revoke API Token") or ask the admin to revoke it from the admin panel — login passwords and web sessions are not affected. Create a new token, run npm run init again.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI applications to automatically analyze local repositories and create GitHub repositories with proper configuration, topics, and complete setup workflow.2GPL 3.0
- AlicenseAqualityDmaintenanceEnables deployment and management of applications on the Citizen platform from git repositories or local files. It allows AI assistants to monitor deployment logs, handle authentication, and automatically fix build errors using intelligent error analysis.117MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI harnesses to run iterative loops on code repositories with built-in quality evaluations, security gates, and approval workflows for tasks like fixing tests or implementing features.27MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to deploy code to any hosting provider by creating PRs, building, and verifying health checks, all from a single natural language command.1MIT
Related MCP Connectors
Build, validate, and deploy multi-agent AI solutions from any AI environment.
Your AI builds, deploys, and runs full-stack apps on a hosted workspace created at first sign-in.
Create, test, publish, and manage Dreamlit notification workflows from AI clients.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/daffaoir/bedengan-apps-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server