Skip to main content
Glama

🌌 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

MEETING_TRANSCRIPT.md

Full debate: proposals, objections, responses, votes, rulings, dissents, artifact review table

docs/adr/*.md

One ADR per decision with options, scores, champions, and recorded dissent

app/

Flutter app: theme tokens, spatial module (if 3D), widget tests, analysis options

backend/

Supabase migrations + RLS policies + storage policies, or Firebase rules; optional Fastify service with multi-stage Dockerfile

design/

DESIGN_LANGUAGE.md, design-tokens.json, SVG wireframes, generated Figma plugin

compliance/

Privacy Policy, Terms of Service, store checklist, audit report

.github/workflows/ci.yml, docs/ENV_ROUTING.md, .env.example

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-trip

Running 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.js

Claude 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

init_dev_universe

The unified entry point. project_type (flutter_app Β· flutter_spatial_app Β· full_stack Β· backend_api Β· three_d_experience Β· custom), description, use_omnicinema, optional style_preferences[]. Runs the whole pipeline above.

get_agency_roster

The 27 seniors: names, titles, focus, principles.

generate_spatial_module

Emit the deep-scroll 3D Flutter module standalone or into an existing project (mesh_renderer, rive, depth_layers).

verify_assets

Analyze art in the drop zones and re-derive the theme (report + WCAG checks).

watch_assets

Start/stop the drop-zone watcher; omit project_dir to list watchers.

omnicinema_status

Detect the companion, check loopback IPC health, report CASE A/B/C.

provision_omnicinema

CASE C: consent-gated clone β†’ install β†’ build β†’ start IPC β†’ token sync.

generate_media_asset

CASE A: request image/texture/audio/video from the companion; provenance manifest + auto-adaptation.

sync_figma

Compile wireframes (SVG), generate the Figma import plugin, optional REST handoff comment (figma_file_key, FIGMA_TOKEN).

ingest_reference

Pattern-analyze a URL or local video you provide; optional apply_theme blends its palette into the tokens.

scan_extension_marketplace

Crawl GitHub/Hugging Face for new MCP servers β†’ data/dev-review-queue.json (pending human review, risk-flagged).

generate_compliance_docs

(Re)generate Terms/Privacy/store checklist for a project, with overrides (company_name, contact_email, governing_law).

audit_compliance

Static liability scan β†’ compliance/AUDIT_REPORT.md (fails on high severity).

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 β€” Matrix4 perspective transforms (setEntry(3,2,…)), per-layer parallax factors, depth-fade curves.

  • StarfieldPainter β€” seeded CustomPainter behind a RepaintBoundary, shouldRepaint keyed on camera depth (the performance engineer's 16 ms budget).

  • SpatialRooms β€” content stations strung through Z with wayfinding rail.

  • Accessibility contract: when MediaQuery.disableAnimations is 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 a GltfStage seam) or flutter_cube (lightweight OBJ). three_dart is debated and rejected on maintenance grounds β€” you'll find the argument in the ADR.

  • Optional rive HUD overlay driven by a state machine.

Material verification & adaptation engine

Drop any image into app/assets/incoming/ (watched) or call verify_assets:

  1. 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.

  2. 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.md with WCAG verification.

  3. Apply β€” design-tokens.json and the marker-delimited block in app/lib/theme/design_tokens.dart are 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

generate_media_asset talks to http://127.0.0.1:8787 (bearer token from the companion's data/ipc-token.txt), saves into app/assets/generated/ with a provenance manifest, re-adapts the theme.

B

Not found

You get: ⚠️ OmniCinema asset generator not detected. The asset maker repository can be found here: <OMNICINEMA_REPO_URL>

C

Not found + your consent

Would you like devuniverse-mcp to automatically clone, install dependencies, and link OmniCinema-MCP for 100% free cinematic assets? [y/N] β€” answered interactively (MCP elicitation) or via provision_omnicinema confirm:true. Then: git clone β†’ npm install β†’ npm run build β†’ start the IPC service (detached, logged to data/logs/) β†’ sync the token.

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:

  1. SVG wireframes per screen (screen plan derived from your signals: spatial journey, auth, explore, messages, checkout, settings…) β€” drag into any file;

  2. 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;

  3. 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 into references/<slug>/frames/.

  • apply_theme: true blends 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.

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 security and 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/ docs

A 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.ts

PRs 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.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

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

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