devuniverse-mcp
Generates multi-stage Dockerfiles for containerized deployment of the backend and other services.
Generates an optional Fastify service as part of the backend, with multi-stage Dockerfile and routing.
Generates Figma import plugins and wireframes, and enables syncing design tokens and REST handoff comments.
Integrates Firebase as an alternative backend, generating security rules and configuration.
Generates a complete Flutter application with immersive 3D deep-scroll canvas, theme tokens, and widget tests.
Generates CI workflows for GitHub Actions to automate testing and deployment of the generated project.
Generates a Node.js backend with optional Fastify service, including API contracts and business logic.
Generates Rive animation overlays for interactive HUDs in the Flutter spatial app.
Integrates Stripe for payment processing, generating subscription management and checkout flows in the generated app.
Integrates Supabase as the backend, generating migrations, Row Level Security policies, and storage policies.
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., "@devuniverse-mcpbuild a Flutter e-commerce app with Supabase backend"
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.
π devuniverse-mcp
An autonomous virtual software agency, packaged as an MCP server.
Point any MCP client (Claude Code, Claude Desktop, Cursor, β¦) at devuniverse-mcp,
describe a product, and a bench of 27 senior engineering personas convenes:
they parse your requirements, propose stacks, debate each other, vote, record
dissents, generate a production-grade scaffold β Flutter app with an immersive
3D deep-scroll canvas, Supabase/Firebase/Node backend with Row Level Security,
multi-stage Dockerfiles, CI, Terms of Service and a GDPR/CCPA Privacy Policy β
then cross-examine every generated artifact before presenting it, with the
full meeting transcript on disk.
init_dev_universe(
project_type: "flutter_spatial_app",
description: "A 3D deep-scroll galaxy shop called 'Aurora Atelier' with
glTF product meshes, accounts, offline mode, and Stripe
subscriptions β GDPR matters. Glassmorphism, dark.",
use_omnicinema: true
)
β projects/aurora-atelier/ (50+ files, 10 debated decisions, transcript, audit)Table of contents
Related MCP server: Gravitas-Core-MCP
How it works
flowchart LR
A[init_dev_universe] --> B[Signal parsing<br/>3d Β· offline Β· payments Β· tenants Β· gdprβ¦]
B --> C[Roundtable<br/>proposals β objections β mitigations β votes]
C --> D[Rulings + ADRs<br/>dissents recorded]
D --> E[Design synthesis<br/>aesthetic blend β tokens]
E --> F[Scaffold assembly<br/>app Β· backend Β· RLS Β· Docker Β· CI Β· legal docs]
F --> G[Cross-examination<br/>RLS/FK/a11y/secrets/legal checks,<br/>auto-fixes recorded]
G --> H[Write to projects/<slug><br/>+ MEETING_TRANSCRIPT.md]
H --> I[Wireframes + Figma plugin]
H --> J[Compliance audit report]
H --> K[Asset watcher armed]Every phase is deterministic: the debate is driven by a stance table (who champions what, when, how strongly, and who objects with which argument), scored against the parsed requirement signals. Same brief in, same rulings out β reproducible, diffable, and covered by tests.
What lands in projects/<slug>/:
Artifact | Contents |
| Full debate: proposals, objections, responses, votes, rulings, dissents, artifact review table |
| One ADR per decision with options, scores, champions, and recorded dissent |
| Flutter app: theme tokens, spatial module (if 3D), widget tests, analysis options |
| Supabase migrations + RLS policies + storage policies, or Firebase rules; optional Fastify service with multi-stage Dockerfile |
|
|
| Privacy Policy, Terms of Service, store checklist, audit report |
| Delivery + secret-routing discipline |
The senior bench
27 codified senior personas across six practices β run get_agency_roster for the full table.
Practice | Personas |
Multi-framework specialists | Principal Systems Architect Β· Principal Flutter Architect Β· Flutter Platform Engineer Β· Supabase/Postgres Architect Β· Firebase Specialist Β· Node.js Backend Architect Β· API Contract Engineer |
UI/UX synthesis | Principal UX Engineer Β· Design Synthesis Director Β· Spatial Canvas UI Engineer Β· 3D Navigation Designer Β· Accessibility Lead |
Legal & compliance | Privacy & Data Protection Counsel (GDPR/CCPA) Β· App Store & Licensing Compliance Officer |
3D & animation | 3D Modeler / glTF Pipeline Engineer Β· Technical Animator (Rive) |
Database | Principal Data Modeler Β· RLS & Data Security Engineer |
DevSecOps & delivery | Principal DevSecOps Engineer Β· Container & Isolation Specialist Β· CI/CD Release Engineer Β· SRE Β· QA Architect Β· Performance Engineer Β· Red-Team Reviewer Β· DX Engineer Β· Delivery Lead (chair) |
They genuinely disagree. A payments brief makes the Node architect win a service
layer over the SRE's objection; the Flutter platform engineer kills three_dart
on maintenance grounds every time; the accessibility lead's sign-off condition
(reduced-motion flat fallback) is enforced by a cross-exam check against the
actual generated Dart.
Quick start
# The canonical home for this tool and everything it generates:
git clone https://github.com/<you>/devuniverse-mcp.git /Volumes/PortableSSD/devuniverse-mcp
cd /Volumes/PortableSSD/devuniverse-mcp
npm install
npm run build
npm test && npm run smoke # 22 tests + a real stdio round-tripRunning from a different path? Set
DEVUNIVERSE_ROOTβ every read and write stays inside that root.
Claude Code
claude mcp add devuniverse -- node /Volumes/PortableSSD/devuniverse-mcp/dist/index.jsClaude Desktop / Cursor (claude_desktop_config.json / mcp.json)
{
"mcpServers": {
"devuniverse": {
"command": "node",
"args": ["/Volumes/PortableSSD/devuniverse-mcp/dist/index.js"],
"env": { "OMNICINEMA_REPO_URL": "https://github.com/<owner>/omnicinema-mcp" }
}
}
}Then, in your client: "Use init_dev_universe to build a 3D portfolio universe with offline mode and a contact form, dark editorial style."
Tool reference
Tool | What it does |
| The unified entry point. |
| The 27 seniors: names, titles, focus, principles. |
| Emit the deep-scroll 3D Flutter module standalone or into an existing project ( |
| Analyze art in the drop zones and re-derive the theme (report + WCAG checks). |
| Start/stop the drop-zone watcher; omit |
| Detect the companion, check loopback IPC health, report CASE A/B/C. |
| CASE C: consent-gated clone β install β build β start IPC β token sync. |
| CASE A: request image/texture/audio/video from the companion; provenance manifest + auto-adaptation. |
| Compile wireframes (SVG), generate the Figma import plugin, optional REST handoff comment ( |
| Pattern-analyze a URL or local video you provide; optional |
| Crawl GitHub/Hugging Face for new MCP servers β |
| (Re)generate Terms/Privacy/store checklist for a project, with overrides ( |
| Static liability scan β |
The immersive 3D Flutter canvas
src/spatial/ is a code-generation skill producing a hand-owned deep-scroll
core β scrolling dollies a camera along the Z axis:
DeepScrollControllerβ maps scroll offset β camera depth with capped travel velocity and snap-point rooms ("seatbelts for spatial scrolling").SpatialCamera+ParallaxLayerβMatrix4perspective transforms (setEntry(3,2,β¦)), per-layer parallax factors, depth-fade curves.StarfieldPainterβ seededCustomPainterbehind aRepaintBoundary,shouldRepaintkeyed on camera depth (the performance engineer's 16 ms budget).SpatialRooms β content stations strung through Z with wayfinding rail.Accessibility contract: when
MediaQuery.disableAnimationsis set the entire Z-axis experience collapses to a flat, semantic, screen-reader-navigable list. This is checked against the generated Dart, not just promised.Optional mesh stage:
flutter_scene(glTF/Impeller, wrapped behind aGltfStageseam) orflutter_cube(lightweight OBJ).three_dartis debated and rejected on maintenance grounds β you'll find the argument in the ADR.Optional
riveHUD overlay driven by a state machine.
Material verification & adaptation engine
Drop any image into app/assets/incoming/ (watched) or call verify_assets:
Verify β format sniffing (PNG/JPEG/GIF/WebP/BMP/SVG), header dimensions, and for PNGs a full dependency-free decode (zlib inflate + unfilter) with palette clustering.
Adapt β deterministic rules re-derive the design tokens: theme brightness from hero luminance, primary from the most saturated dominant cluster (contrast-nudged to β₯3:1), secondary from the next distinct hue, padding grid from hero aspect, radius from saturation. Every rule is written into
docs/ADAPTATION_REPORT.mdwith WCAG verification.Apply β
design-tokens.jsonand the marker-delimited block inapp/lib/theme/design_tokens.dartare patched atomically.
OmniCinema companion bridge
src/bridge/omnicinema-connector.ts links the optional local media generator
for cinematic assets. Detection looks at /Volumes/PortableSSD/autonomous-cinema-mcp,
/Volumes/PortableSSD/omnicinema-mcp (override: OMNICINEMA_PATHS).
Case | State | Behavior |
A | Installed & IPC healthy |
|
B | Not found | You get: |
C | Not found + your consent |
|
Security model (see SECURITY.md): provisioning refuses unpinned URLs
(OMNICINEMA_REPO_URL must be a concrete https://github.com/<owner>/<repo>),
consent is explicit and recorded, the bridge follows only same-origin asset
URLs, and every IPC request is logged β a public tool that talks to another
local process should never do so silently.
Design-to-Figma pipeline & reference ingestion
To Figma. The Figma REST API cannot create or edit design content (it reads
files, writes comments/webhooks). So sync_figma produces what actually lands
an editable draft:
SVG wireframes per screen (screen plan derived from your signals: spatial journey, auth, explore, messages, checkout, settingsβ¦) β drag into any file;
a generated Figma development plugin (
design/figma-plugin/) that rebuilds every screen as native auto-layout frames using your tokens β import via Plugins β Development β Import plugin from manifest, edit freely, then hand changes back through tokens or the asset drop zone;an optional REST handoff: token-validated comment on your Figma file linking the draft materials (
FIGMA_TOKEN).
From references. ingest_reference accepts a URL or a local video that
demonstrates an interaction you want:
URLs: single-page read (+ same-origin CSS, size-capped, honest User-Agent) β palette, typography, framework fingerprint (three.js, GSAP/ScrollTrigger, React/Vue/Next, WebGL, Rive/Lottieβ¦), interaction mechanics (scroll-snap, IntersectionObserver, 3D transforms, reduced-motion handling), structure and a11y signals β plus a rebuild plan mapped onto devuniverse modules.
Videos:
ffprobe/ffmpeg(when installed) extract metadata + keyframes with per-scene palettes intoreferences/<slug>/frames/.apply_theme: trueblends the extracted palette into your tokens via the synthesis engine.
IP stance, stated plainly: reconstruction is pattern-level β interaction
mechanics and structure are re-derived natively; protected artwork, copy, and
trade dress are never copied, and the note ships inside every analysis report.
Likewise, the aesthetic library is curated and license-clean: devuniverse does
not crawl Dribbble/Behance (their ToS prohibit scraping); you steer the
blend with style_preferences and references you have the right to study.
Legal & compliance framework
The legal bench generates, per project:
Privacy Policy β GDPR (lawful-basis + retention table per actual data category, Arts. 15β22 rights, 72-hour breach window, transfers/SCCs) and CCPA/CPRA (know/delete/correct/opt-out, "we do not sell or share"), COPPA section when the brief targets children, in-app account deletion per Apple 5.1.1(v) / Play policy.
Terms of Service β license, acceptable use, UGC, IP, subscriptions/IAP language matched to the detected monetization, liability caps, governing law.
Store compliance checklist β Apple privacy labels & IAP rules, Play data safety & billing, web consent banners β only the rows your build triggers.
Active code audit (
audit_compliance, also run at init) β committed credentials, plaintext endpoints, undisclosed tracker SDKs, sensitive permissions, missing policies β severity-ranked report with remediations.Cross-exam gates: privacy counsel verifies the docs cover what the signals imply; the RLS engineer auto-fixes any table created without
enable row level securityand records the fix in the transcript.
The honest version of "zero compliance liabilities": generated documents are structured drafts with a mandatory review-by-counsel banner, and the audit reports residual risk. No tool can guarantee legal outcomes β this one refuses to pretend otherwise.
Extension marketplace
scan_extension_marketplace discovers newly published MCP servers and dev
packages (GitHub search + Hugging Face spaces/models) and logs them to
data/dev-review-queue.json as pending_human_review, with risk flags
(missing-license, low-adoption, suspicious-description,
pipe-to-shell-install, archived). Nothing is ever auto-installed; flip
entries to approved/rejected and your decisions survive re-scans.
Storage guarantees
Everything lives under one portable root (default
/Volumes/PortableSSD/devuniverse-mcp, override DEVUNIVERSE_ROOT):
devuniverse-mcp/
βββ src/ server source (agency Β· spatial Β· bridge Β· compliance Β· design Β· marketplace)
βββ dist/ build output (gitignored)
βββ projects/ generated project environments (gitignored β each becomes its own repo)
βββ data/
β βββ dev-review-queue.json marketplace review queue (committed)
β βββ omnicinema-link.json companion link record (chmod 600, gitignored)
β βββ logs/ detached-process logs (gitignored)
βββ test/ scripts/ docsA storage guard wraps every write: paths must resolve inside the managed root, or the call throws. The only sanctioned writes outside it are the OmniCinema install directory you explicitly consent to.
Development
npm run typecheck # strict TS across src/test/scripts
npm run build # tsc β dist/
npm test # node:test suite (roundtable, scaffold, PNG decode, bridges, crawler, legal)
npm run smoke # boots dist/index.js over real stdio and calls tools
npm run dev # tsx src/index.tsPRs welcome β new personas need a stance (when do they speak, what do they champion or object to, with what score) plus a test proving the debate stays deterministic.
Design honesty notes
Personas are codified expert heuristics, not 27 live LLMs: stance tables, scoring rules, and critique conditions driven by your requirement signals. That's what makes the debates reproducible, testable, and free to run. The transcript says so in its footer.
The bridge is transparent by design. The original brief for CASE A said "silently query" β this implementation logs every companion request instead, because a published tool talking to another local process must be auditable.
Figma REST can't author designs, so the pipeline generates a plugin + SVGs rather than pretending otherwise.
License
MIT β see also SECURITY.md.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/joeshwoa/devuniverse-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server