Deploy a Flask app from your AI agent, over MCP
Your Flask app runs locally. Connected to while over MCP, your AI agent deploys it in France, served by gunicorn rather than the development server, with its PostgreSQL database backed up every day.
By Aloïs Oddon, co-founder of Nextmap. Facts checked on November 2, 2026.
Prerequisites
- A Flask app, with a requirements.txt file.
- An AI agent that works in a terminal: Claude Code, Codex, Cursor or Gemini CLI.
Step 1: Give your agent these instructions
Open your agent in your app’s folder, and paste these instructions into it:
Connect to while with my account (while.sh/agents), then deploy my app.
Without an account, your agent deploys your app as a trial, in one request. To keep it, open the link it gives you and create your account.
With your account, your agent adds while’s MCP server itself. If it asks you to, restart it. On the first call to while, a page opens in your browser. In Claude Code, if it doesn’t open, type /mcp, choose while, then Authenticate. On that page, choose your app, or “A new app”, then click Authorize.
Step 2: Open your app
Your agent gives you your app’s address, for example https://mon-appli.while.cloud, over HTTPS.
What your agent does
It writes while.yaml at the root of your app:
apiVersion: while/v1
project: mon-appli
services:
- name: web
port: 8000
health:
path: /
Then it adds gunicorn to requirements.txt1, and a Procfile that starts it on the port received in PORT. The name app:app follows your file, and your agent adapts it:
web: gunicorn app:app --bind 0.0.0.0:$PORT
Your app is installed, your pytest tests run, and then it starts.
Add a database
You, to your agent: Add a PostgreSQL database.
Your agent declares the database in while.yaml, and its address reaches your code in DATABASE_URL. It is backed up every day, and it can go back to a precise moment if needed.
Run a job every night
You, to your agent: Run the data import every night at 3 am.
Your agent declares a scheduled job, which starts at that time with the same code and the same variables. If it fails, your agent is notified.
Restrict your app to your colleagues
You, to your agent: Restrict the app to people in the company.
Your agent adds two lines to the service:
access: internal
email_domains: [acme.com]
Once your Google Workspace or Microsoft 365 is linked to while, on the Pro plan, your colleagues open it with their usual account, and your code receives their name and email address, with no sign-in page to write.
Move to your own domain
You, to your agent: Put the app on app.acme.com.
Your agent declares the domain, you add the DNS records it gives you, and the HTTPS certificate follows.
Fix a vulnerability in your dependencies
You, to your agent: Fix the vulnerabilities in our dependencies.
Your app’s dependencies are checked against known vulnerabilities at every deployment, then every day. Your agent is warned of a serious vulnerability, and it updates the package involved.
Go back to the previous version
You, to your agent: Go back to the previous version.
In the 30 minutes after a deployment, the previous version comes back in a second. After that, it takes a few seconds. Once the previous version is back, your agent reads what broke in while’s logs, fixes it and deploys again.
In the docs: PostgreSQL databases, Scheduled jobs, Internal access, Custom domain, Versions and rollback and Dependency vulnerabilities.
Next steps
Sources
- Flask, serving the app with gunicorn, accessed November 2, 2026