This directory contains the data artifacts and infrastructure setup scripts for the Google remote MCP for Cloud SQL and Developer Knowledge demo.
This scenario demonstrates an AI Agent's ability to act as a Product Architect, migrating a localized application to the cloud using Google Model Context Protocol (MCP) servers. By equipping Gemini CLI with access to Cloud SQL, Developer Knowledge and Cloud Run MCP, you can transform a manual deployment process into an agentic orchestration.
"How do I evolve AllStrides from a local-only prototype into a secure, globally accessible enterprise platform?"
Gemini CLI interacts with the Google Cloud ecosystem by leveraging three specific MCP servers to modernize the stack:
- Developer Knowledge MCP: To analyze the current application structure and identify the optimal Google Cloud database.
- Cloud SQL MCP: To provision a production-grade database instance and migrate local fitness community data to the cloud via a single natural language prompt.
- Cloud Run MCP: To containerize the allstrides application and deploy it to a serverless environment, making AllStrides live and accessible to users worldwide.
This directory contains the sample application artifacts and a lab demonstrating how the MCP support for Developer Knowledge, Databases ad Cloud Run help to migrate demo application to the cloud.
The sample "Allstrides" application is featuring event management, fuser authentication, profile management, event CRUD operations, RSVP functionality, and real-time chat.
This project is a Unified Full-Stack TypeScript Application.
- Frontend: React (TypeScript)
- Backend: Node.js / Express (TypeScript)
- Database: SQLite (managed by Sequelize)
- Real-time: WebSocket (ws)
- Deployment: Single container serving both API and Static Frontend assets.
Listing: allstrides
βββ frontend/
β βββ public/
β βββ src/
β βββ components/
β β βββ chat/
β β βββ layout/
β βββ pages/
β βββ auth/
β βββ events/
β βββ profile/
βββ server/
βββ src/
βββ middleware/
βββ models/
βββ routes/
frontend/: React application (CRA).server/: Node.js/Express API and WebSocket server.docker-compose.yml: Local deployment config.start_allstrides.sh: Helper script for local execution.
- Node.js (v22 or later)
- Docker (optional)
The application listens on port 8080 by default. You can change this using:
- Environment Variable:
PORT=3000 npm start - Command Line Argument:
npm start -- --port 3000
-
Use the Helper Script: This script builds the frontend, sets up the server, and starts the application.
./start_allstrides.sh
The application will be available at http://localhost:8080.
-
Manual Setup:
Build Frontend:
cd frontend npm install npm run build cd ..
Start Server:
cd server npm install npm run build npm start
-
Start the application:
docker compose up --build
The application will be available at http://localhost:8080.
-
Stop the application:
docker compose down
You can populate the database with random test data using two methods:
Method 1: Scripted Seeding (Internal) To use the internal Sequelize seed script (50 users, 200 events, 100 messages):
cd server
npm run seedMethod 2: SQL Import (External) To import the pre-generated SQLite script (50 users, 100 events from 2025-2026, 150 messages, and votes):
# From the root of the 'allstrides' folder
sqlite3 allstrides.db < seed_data.sqlNote: This will overwrite existing data for users, events, messages, and votes.
- Database: The application uses a local SQLite database (
allstrides.db) located in the rootallstridesfolder (when running locally) or mapped to the container volume. - Authentication: Uses JWT. Passwords are hashed with BCrypt.
- API Documentation: The backend endpoints are available at
/api/.... - Frontend Routing: The server is configured to handle client-side routing (SPA) by falling back to
index.htmlfor non-API routes.
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.