AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Forge Ai Platform

mcp-jasimuddinrony-forge-ai-platform · by jasimuddinrony

An AI-native internal application platform (internal PaaS) — system design + control-plane reference implementation. Spring Boot · Kubernetes · GitOps · AI agents.

No reviews yet
0 installs
25 views
0.0% view→install

Install

$ agentstack add mcp-jasimuddinrony-forge-ai-platform

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-jasimuddinrony-forge-ai-platform)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Forge Ai Platform? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Forge — an AI-Native Internal Application Platform

> An internal PaaS where engineers ship code and everyone else builds apps with AI — on one governed foundation. > System design + reference implementation of the control plane (Spring Boot · Kubernetes · GitOps · AI agents).


The idea in one paragraph

Most companies have the same problem: engineers rebuild login, data access and deployment plumbing for every internal tool, business teams wait months on IT for simple apps, and AI-generated ("vibe-coded") apps have nowhere safe to run. Forge is an internal, Vercel-like platform that solves all three at once. It gives two build paths — Path A (describe an app to an AI agent) and Path B (push your own code) — that converge into one pipeline: Validate → Deploy → Publish → Live, running on one governed foundation: SSO, RBAC, secrets vault, audited data access, app catalog and observability. It is designed to be the only place an employee can use AI on real company data, safely — and because it's the official path, what they build gets supported, secured and kept.

What problems it solves

| Pain today | How the platform fixes it — by design | |---|---| | Nobody tracks internal apps — who built what, who can see what | One catalog + audit trail: every app, every permission, visible | | Engineers rebuild login, data & secrets on every project | Built-in foundation: SSO, data access & secrets are platform primitives | | Every team rebuilds the same components | Component marketplace: assemble from reusable skills, connectors, MCPs — don't rebuild | | "I vibe-coded an app — now how do I deploy it?" | One-instruction deploy: the platform handles build, hosting, TLS, domain | | "How do I connect to company data?" | Governed connector broker: AI wires scoped, audited data access for you | | Simple tools wait months on engineering | Self-service in minutes: business builds; engineers do the genuinely hard parts |

High-level design

Two planes inside the corporate trust boundary (VPN + SSO). The Gateway is the only path to company data — for humans, apps, and AI agents alike.

flowchart TB
    subgraph TB1["Internal trust boundary — VPN + SSO"]
        direction TB
        subgraph CP["BUILD & MANAGE — control plane"]
            UI["App Management UIcreate · upload · deploy · logs"]
            CHAT["AI Chat & Coding UIdescribe · generate · fix"]
            API["Control APIeverything-as-API"]
            DE["Deployment Enginebuild → deploy → rollback"]
            ORCH["AI Orchestratorgenerator · Guardian · fix"]
        end
        subgraph RT["RUN & SERVE — runtime + data"]
            GW["Gatewayidentity · routing · RBAC · audit"]
            APPS["Running appscontainers on Kubernetes"]
            BROKER["Connector Brokergoverned · RBAC-scoped"]
            DATA[("Company & external data")]
        end
    end
    USERS(("Users")) --> UI
    USERS --> CHAT
    USERS --> GW
    UI --> API
    CHAT --> API
    API --> DE
    API --> ORCH
    DE --> APPS
    GW --> APPS
    APPS --> BROKER
    BROKER --> DATA

Two paths, one destination

flowchart LR
    subgraph A["Path A — AI (no-code)"]
        A1[Describe] --> A2[Generate] --> A3[Connect scoped data]
    end
    subgraph B["Path B — Code (pro-code)"]
        B1[Write code] --> B2[Git push / upload] --> B3[Build image]
    end
    A3 --> V{{"Validate — Guardian agentsecurity · permissions · policy"}}
    B3 --> V
    V --> D[Deploy] --> P["PublishURL + TLS + SSO"] --> L(("Live"))

Both paths land on the same runtime, data layer, governance and catalog. An AI-built app can never reach data its creator couldn't reach — permissions are enforced server-side, not by the model.

The layered foundation (built bottom-up)

The platform is a deployment engine first; AI is the top layer — a consumer of clean platform primitives, not a bolt-on.

| # | Layer | Responsibility | |---|---|---| | 7 | AI / agentic layer | Generator · Guardian · auto-fix · self-heal — drives layers 1–6 | | 6 | Connector broker & component registry | Governed data path + reusable, machine-readable blocks | | 5 | Platform client SDK | Keyless platform.db / data / identity / files / ai | | 4 | Gateway | Identity · routing · RBAC · audit — one front door, also governs app-to-app | | 3 | Deployment engine — the kernel | Build → deploy → records → rollback | | 2 | Control-plane API | Everything-as-API — no UI-only capability | | 1 | Domain model & metadata DB | Apps · envs · deployments · builds · resources · secrets · permissions · audit |

Six disciplines applied from day one to make the substrate AI-ready: everything-as-API · structured error codes · declarative app state · machine-readable building blocks (MCP) · event timeline as data · server-enforced RBAC.

The deployment engine

API-driven pipeline: trigger → queue → worker. Every step writes records and streams logs; failures route to AI auto-fix.

flowchart LR
    T["1 · TriggerAPI: deploy"] --> Q["2 · EnqueueRedis queue"] --> W["3 · Worker"]
    W --> B["4 · BuildBuildKit → image → registry"]
    B --> G["5 · ValidateGuardian scan"]
    G --> M["6 · Manifest → Gitdesired state"]
    M --> R["7 · GitOps reconcileArgo CD applies"]
    R --> RO["8 · Rolling update"] --> H["9 · Health gate"]
    H --> P["10 · PublishIngress + TLS + DNS"] --> L["11 · Livemark is_current"]
    B -. on failure .-> FIX["AI auto-fixstructured error → sandbox → patch → re-run"]
    FIX -.-> B
    L -. "rollback = flip is_current — instant, no rebuild" .-> M

Build — isolated Kubernetes Jobs run rootless BuildKit; Cloud Native Buildpacks auto-detect the stack (Python/Node/Go/…) or a Dockerfile is used; layer caching keeps rebuilds fast; images are scanned (Trivy + Guardian) and pushed to the registry as app:deploy-N.

Deploy — the control plane writes a declarative manifest (Deployment + Service + Ingress) to Git; Argo CD reconciles the cluster to match. Rolling updates give zero downtime; rollback is flipping is_current to the prior deployment record — no rebuild, instant.

Run — request → wildcard DNS (*.apps.internal) → Ingress → Service → Pods. One namespace per app for isolation. HPA/KEDA scale pods (scale-to-zero for idle apps); Karpenter scales nodes. Pure-static apps are served from object storage + CDN, bypassing the cluster entirely.

App-to-app rule — apps call each other's APIs via the gateway, never each other's database. Shared data goes through the broker as a registered resource. Every call is identity-checked and audited.

The AI / agentic layer

A single platform agent orchestrates specialized sub-agents across the whole app lifecycle, calling the same platform APIs a human would — inside the user's RBAC, with sensitive actions gated by human approval (HITL).

flowchart TB
    O["Agent Orchestratorplans · routes · merges results"]
    O --> GEN["GeneratorNL → app"]
    O --> GUARD["Guardianvalidate"]
    O --> FIX["Fix agentauto-fix on failure"]
    O --> HEAL["Self-heal agent"]
    GEN --> MCP["MCP tool gateway + policyblocks unauthorized actions · user-scoped RBAC"]
    GUARD --> MCP
    FIX --> MCP
    HEAL --> MCP
    MCP --> PRIM["Platform primitives:Control API · structured errors · component registry · governed broker"]

| Lifecycle stage | What the agent does | Tools it calls | |---|---|---| | Generate | Prompt → working app; wires data & reuses existing components | generate_app · broker.data · registry | | Build | Detect stack, build image, fix on failure | build · use_skill | | Validate | Guardian: security, permission & policy scan | guardian_scan · Trivy · Semgrep | | Deploy | Write manifest, roll out, roll back | deploy · rollback | | Run & heal | Watch apps; restart / recover / rollback | health_watch · restart | | Reuse | Discover & assemble existing blocks | registry.search · MCP connectors | | Observe | Answer "why is it slow?" in plain language | logs.query · metrics |

Capabilities ship up a maturity ladder: 1 Validate → 2 Auto-fix → 3 Authoring → 4 Observability Q&A → 5 Self-heal → 6 Multi-agent reuse.

Data model (platform metadata only)

The platform stores metadata only — business data stays in the connected sources, reached through the broker.

erDiagram
    APPS ||--o{ ENVIRONMENTS : has
    APPS ||--o{ DEPLOYMENTS : has
    ENVIRONMENTS ||--o{ DEPLOYMENTS : targets
    DEPLOYMENTS ||--o{ BUILDS : produces
    APPS ||--o{ APP_RESOURCES : links
    DATA_RESOURCES ||--o{ APP_RESOURCES : "granted to"
    ENVIRONMENTS ||--o{ SECRETS : scopes
    APPS {
        uuid id PK
        string slug
        string build_type "low_code | code_deployed | hybrid"
        string lifecycle
    }
    DEPLOYMENTS {
        uuid id PK
        string commit_sha
        string status
        boolean is_current "rollback flips this"
    }
    BUILDS {
        uuid id PK
        string status
        string logs_ref
    }
    DATA_RESOURCES {
        uuid id PK
        string type
        string connection_ref "credentials live in vault"
    }

Full model (~16 tables) adds users/teams, shares, components (reuse registry), permissions, auditlogs and usagerecords — see [docs/data-model.md](docs/data-model.md).

Tech stack

| Concern | Choice | Why | |---|---|---| | Runtime substrate | Kubernetes (EKS Auto Mode on AWS; kind locally) | One substrate for all apps; namespace isolation; local→cloud is config, not rewrite | | Deploy mechanism | GitOps — Argo CD | Desired state in Git = versioned, audited, instant rollback | | Image builds | BuildKit + Cloud Native Buildpacks (Dockerfile supported) | Rootless, cached, auto-detects stacks | | Control plane | Spring Boot 3.3 / Java 21 + Flyway + PostgreSQL | Strong typing for the system of record | | AI services | Python (generator · Guardian · agents), MCP for tools | Polyglot by design; services talk HTTP | | Console | React + TypeScript | Built purely on the public control API | | Edge & identity | Identity-aware proxy + SSO (OIDC/SAML), ALB, wildcard DNS + auto-TLS | Every request authenticated before it reaches an app | | State & secrets | PostgreSQL (Aurora), Redis/Valkey queue, Secrets Manager + ESO | Metadata-only platform DB; credentials never in app code | | Observability | OpenTelemetry → Prometheus/Grafana; audit → SIEM | Event timeline as data — consumable by humans and agents |

What's in this repo (Milestone 0)

forge-ai-platform/
├─ services/control-plane/   # Spring Boot control-plane API — the brain
│  └─ src/main/java/io/forge/platform/
│     ├─ domain/             # App · Environment · Deployment · Build (+ enums)
│     ├─ repo/               # Spring Data repositories
│     ├─ service/            # AppService · DeploymentService (is_current logic)
│     └─ web/                # controllers · DTOs · global error handler (stable error codes)
├─ packages/db/migration/    # canonical Flyway SQL (apps · environments · deployments · builds)
├─ deploy/local/             # docker-compose: Postgres + Redis + local image registry
├─ samples/hello-python/     # FastAPI sample app — deployed by the pipeline in M1
├─ apps/cli/                 # `forge` CLI (M1)
├─ docs/                     # architecture deep-dive · ADRs · data model · roadmap
└─ Makefile                  # make infra · make api · make smoke

Run it locally

Prerequisites: Docker + Compose, JDK 21, Maven.

make infra    # start Postgres + Redis + local registry
make api      # run the control plane (Flyway creates the schema on boot)
make smoke    # create an app and list apps
# create an app (also creates its dev environment)
curl -s localhost:8080/apps -H 'content-type: application/json' \
  -d '{"slug":"hello","name":"Hello App","buildType":"CODE_DEPLOYED"}' | jq

# record a deployment
APP_ID=$(curl -s localhost:8080/apps | jq -r '.[0].id')
curl -s -X POST localhost:8080/apps/$APP_ID/deployments \
  -H 'content-type: application/json' -d '{"commitSha":"local-dev"}' | jq

# rollback = flip is_current to the previous deployment
curl -s -X POST localhost:8080/apps/$APP_ID/rollback | jq

| Method | Path | Purpose | |---|---|---| | POST | /apps | Create an app (+ its dev environment) | | GET | /apps · /apps/{id} | List / fetch apps | | POST | /apps/{id}/deployments | Record a deployment (wired to the real pipeline in M1) | | GET | /deployments/{id} | Deployment status + build records | | POST | /apps/{id}/rollback | Instant rollback (flip is_current) | | GET | /health | Liveness |

Roadmap

  • [x] M0 — Local foundation: control-plane API + core schema + local infra (this repo)
  • [ ] M1 — Walking skeleton: forge deploy ./hello-python → BuildKit build → local registry → Argo CD on kind → app live on a URL → forge rollback
  • [ ] M2 — Cloud lift: Terraform to EKS Auto Mode, Aurora, ECR, ALB + ACM + Route 53, SSO — same code, config swap
  • [ ] M3 — SDK & broker: keyless client SDK + governed connector broker (Path A data)
  • [ ] M4 — AI layer: generator · Guardian · auto-fix, up the maturity ladder
  • [ ] M5 — Governance at scale: catalog, marketplace, usage/cost showback

Design docs

| Doc | Contents | |---|---| | [docs/architecture.md](docs/architecture.md) | Full architecture deep-dive: 8-layer system view, build/deploy/run walkthroughs, gateway & broker, AI layer | | [docs/data-model.md](docs/data-model.md) | Complete metadata schema (~16 tables) with rationale | | [docs/adr/](docs/adr/) | Architecture Decision Records — K8s vs serverless, GitOps, BuildKit/Buildpacks, polyglot services, metadata-only DB, AI as layer 7 | | [docs/roadmap.md](docs/roadmap.md) | Milestone plan with definitions of done |

Author

Md Jasim Uddin — platform architecture & implementation. This repository is a public, sanitized reference of a platform design I authored; all company-specific details have been removed.

License

[MIT](LICENSE)

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.