Forge Engine
app.forgeengine/forge · v0.1.1 · MCP 2025-11-25
Design source-of-truth for AI coding agents to read a project's systems and propose changes back.
Reachability
reachable
checked 2026-07-14 04:18 UTC
Registry status active
Tools pinned 49
27c958c32491
Tools last changed
unchanged since first capture 2026-07-14
Provenance
Registry namespace app.forgeengine
(domain verified by the official registry)
Repository
github.com/alongkornonline2019/forge-mcp
Website
https://forgeengine.app/
Remote endpoints
https://mmvdabzadclebfxyzudg.supabase.co/functions/v1/forge-mcp (streamable-http)
Observed changes
| When (UTC) | Event | Detail |
|---|---|---|
| 2026-07-14 03:05 | first capture | 49 tools pinned |
Pinned tool definitions (49)
| Tool | Description |
|---|---|
| get_help | Forge how-to on demand (no project needed): propose→adopt, what a System is, Balance Lab formats, sign-in. Call when unsure. |
| get_workflow | Run FIRST in a new repo (no project): first-connect routine + the working-agreement block to ADD to AGENTS.md/CLAUDE.md now (tell the user in one line; remove if they object). |
| import_from_code | One-command codebase import: recipe + batch id — propose one Context overview + one System per real module; the owner adopts all at once. |
| design_ui_from_systems | Recipe to design the UI from Systems (user request only): steps + batch id — confirm canvas aspect, then screens + PLACED elements + edges in one batch. |
| post_log | Append a build-log entry to Activity — what you built/decided (commit-note style). |
| get_project_context | FULL design dump — LARGE, last resort; prefer get_project_meta + list_*/get_*/search. |
| list_projects | Projects your key reaches (id, name, role); pass an id as project_id to switch. |
| get_project_meta | START HERE. Tiny overview: counts, members, task claims + working_now (avoid collisions), forge_workflow_version. |
| get_briefing | ONE-CALL orientation before you build: pass `files` you're about to edit (or a `task`) → the systems that own them, each with Goal + Acceptance + build status/files/last_commit/drift + coupled_systems (code neighbors an edit may break)... |
| get_system | ONE system's full spec (Goal/Boundary/Acceptance, markdown, sources, status) + pending Inbox changes touching it. |
| list_systems | All systems, compact: id, name, status, 1-line goal. |
| get_build_region | System→code map per built system: implementing files, status, drift flag, last_commit. Mapped files gone from the repo? report_drift. |
| report_drift | Flag CODE DRIFT — mapped files no longer match the repo. Advisory; a fresh report_build_status clears it. |
| get_history | DESIGN MEMORY: recorded decisions/logs/rejections with who/when. Read BEFORE changing a system's direction; empty = no recorded WHY — don't invent one. |
| get_impact | BLAST RADIUS of a system (deterministic): upstream context, siblings, dependent screens/milestones, files, code-coupled systems, pending Inbox, recent activity. Run BEFORE changing it. |
| get_rejections | Owner's DECLINED list — check at session start; follow each entry's guidance, then resolve_rejection(title). |
| resolve_rejection | Report you REVERTED a declined change (unlocks the owner's Clear). Call after realigning the build. |
| list_screens | All screens, compact: id, name, purpose, status. |
| get_screen | ONE screen's layout: canvas `resolution` (use THESE px), elements x/y/w/h, links, popups. Read before editing a screen. has_reference_image:true → get_screen_image shows you the actual image. |
| get_screen_image | A screen's reference image (HUD background) as an actual IMAGE you can see — reads the stored file inline (signed-URL fallback past 4MB). |
| update_element | Move/resize/relabel an element — DIRECT, live. element_id (preferred) or screen+label; x+y also places an unplaced one. |
| withdraw_proposal | Remove YOUR OWN still-pending Inbox item (id from the propose response / get_inbox). |
| delete_entity | PROPOSE a delete → Inbox (owner adopts; nothing deleted now). id preferred or exact name; flow_edge may use from+to. |
| dedupe | Remove duplicate-named entries (keep first) — DIRECT, destructive. |
| reorder | Reorder milestones / tasks / elements — DIRECT. order = ids in new order; omitted keep relative order. |
| list_milestones | All milestones, compact: id, name, weeks, order, done/total. |
| get_milestone | ONE milestone: goal, weeks, difficulty, systems, every task (id/name/done/status/effort). |
| list_activity | Change history {who, change, entity, kind, when}, newest first; filter kind/who/query. |
| get_inbox | PENDING Inbox (the owner's triage queue). Check BEFORE proposing — avoid duplicates. Read-only. |
| search | Keyword search — compact hits {kind, id, name} + snippet. |
| propose_system | Propose a NEW system → Inbox. spec = ## Goal / ## Boundary (Owns · Doesn't own) / ## Acceptance. Exists? use update_system. (Alias: create_proposal.) |
| propose_context | Propose a new/updated Idea note → Inbox. Title-match to update; send the COMPLETE revised text. |
| propose_dna | Propose Project DNA and/or Tech Notes → Inbox (at least one). |
| update_system | Propose a system UPDATE → Inbox diff. get_system first; send the FULL revised spec. new_title renames; context_title+context bundles the Idea update. |
| get_balance | Read Balance Lab: stat tables, boards with EVALUATED values, scenarios. |
| propose_balance_table | Propose a stat-doc TABLE → Inbox. csv (header; `key%` = percent; first column = name) OR schema+rows. Adopting REPLACES same-named. |
| propose_balance_board | Propose a node board → Inbox. Kinds const|formula|item|sheet|loadout|picker|pool|process|note|frame; formulas reference blocks by NAME; omit x/y = auto-layout. Adopting REPLACES same-named. |
| propose_milestone | Propose a NEW milestone (+ optional tasks) → Inbox. |
| report_milestone_progress | Mark existing-milestone tasks done → Inbox progress card (owner adopts the ticks). |
| report_build_status | Report a SYSTEM's status (todo|in-progress|implemented) — DIRECT, live. ALWAYS pass files (full list — it REPLACES); non-todo with no files shows done-but-EMPTY. 'implemented' counts as VERIFIED only when every UNIT-TESTABLE ##... |
| propose_flow_edge | SECONDARY (user-driven UI): propose a link between two existing screens → Inbox. |
| propose_element | SECONDARY (user-driven UI): propose an element onto a screen → Inbox. ALWAYS pass x/y/w/h (px on the screen's `resolution` from get_screen); no coords = unplaced pile. |
| propose_screen | SECONDARY (user-driven UI): propose a NEW screen → Inbox. parent = popup over that screen; purpose grounds AI suggestions. Whole UI? design_ui_from_systems first. |
| report_screen_status | Report a SCREEN's status (todo|in-progress|implemented) → Inbox. |
| rename_screen | Rename a screen IN PLACE — DIRECT; links/elements follow (id-referenced). |
| update_milestone | Edit milestone goal/weeks/difficulty/name — DIRECT. new_name renames (never delete+recreate). |
| add_task | Add a task to a milestone — DIRECT. assignee:"me" claims on creation. |
| next_task | DISPATCHER (multi-agent): atomically pick + claim the next task to build — walks milestones in order, skips human-only tasks and any task whose systems share code files with a task another agent already holds or is actively touching, so... |
| update_task | Edit a task or CLAIM it — DIRECT. assignee:"me"+status:"in-progress" claims (errors if held; force:true for stale); done:true or assignee:"" releases. |
Status badge
[](https://toolpin.dev/servers/app.forgeengine/forge)
Maintain this server? Add the badge to your README — it links your users to this live status page.