Forge Engine
Ce que fait ce MCP
Manages software design specifications, systems, milestones, tasks, code mappings, project decisions, UI screens, and implementation drift.
Outils
Schéma d’entrée
{'type': 'object', 'required': ['name'], 'properties': {'done': {'type': 'boolean'}, 'name': {'type': 'string', 'description': 'Task name'}, 'human': {'type': 'boolean', 'description': 'Human-only (GTM/validation/people work) — next_task & get_briefing skip it'}, 'effort': {'enum': ['S', 'M', 'L'], 'type': 'string'}, 'status': {'enum': ['in-progress', 'blocked'], 'type': 'string'}, 'assignee': {'type': 'string', 'description': '"me" claims it'}, 'milestone': {'type': 'string', 'description': 'If no id'}, 'project_id': {'type': 'string'}, 'milestone_id': {'type': 'string', 'description': 'Preferred'}}}
Schéma d’entrée
{'type': 'object', 'required': ['kind'], 'properties': {'kind': {'enum': ['milestones', 'elements'], 'type': 'string', 'description': 'What to dedupe'}, 'screen': {'type': 'string', 'description': 'For kind=elements'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['kind'], 'properties': {'id': {'type': 'string', 'description': 'Entity/task/element/edge id'}, 'to': {'type': 'string', 'description': 'flow_edge: destination screen'}, 'from': {'type': 'string', 'description': 'flow_edge: source screen'}, 'kind': {'enum': ['system', 'context', 'screen', 'milestone', 'task', 'element', 'flow_edge'], 'type': 'string', 'description': 'What to delete'}, 'name': {'type': 'string', 'description': 'Exact name/title (if no id)'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'board': {'type': 'string', 'description': 'One board (omit = all)'}, 'project_id': {'type': 'string'}, 'include_rows': {'type': 'boolean', 'description': 'false = schema only'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'task': {'type': 'string', 'description': "A task id or name — briefs its milestone's systems instead"}, 'files': {'type': 'array', 'items': {'type': 'string'}, 'description': "Repo-relative paths you're about to touch — mapped to their systems"}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'page': {'type': 'number', 'description': 'Which page of the map (default 1); the body tells you how many there are'}, 'system': {'type': 'string', 'description': 'One system by name or id — returns its acceptance-criteria detail too'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'page': {'type': 'number', 'description': 'Which part of the full document to return (default 1). The header tells you how many parts there are.'}, 'project_id': {'type': 'string'}, 'for_summary': {'type': 'boolean', 'description': 'Return the condensed summarization source (all system goals + boundaries, no tables) instead of the full document'}}}
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma d’entrée
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Default 30, max 100'}, 'query': {'type': 'string', 'description': 'Keyword filter'}, 'system': {'type': 'string', 'description': 'System id or exact name'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Preferred'}, 'name': {'type': 'string', 'description': 'If no id'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Preferred'}, 'name': {'type': 'string', 'description': 'If no id'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Preferred'}, 'name': {'type': 'string', 'description': 'If no id'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Preferred'}, 'name': {'type': 'string', 'description': 'If no id'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Preferred'}, 'name': {'type': 'string', 'description': 'If no id'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma d’entrée
{'type': 'object', 'properties': {'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'who': {'type': 'string', 'description': 'Author email substring (optional)'}, 'kind': {'type': 'string', 'description': 'system | context | milestone | screen (optional)'}, 'limit': {'type': 'number', 'description': 'Default 30, max 200'}, 'query': {'type': 'string', 'description': 'Keyword filter (optional)'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma d’entrée
{'type': 'object', 'properties': {'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'dry_run': {'type': 'boolean', 'description': 'Peek without claiming'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'What you did / decided (1–2 sentences)'}, 'entity': {'type': 'string', 'description': "System/screen/milestone it's about"}, 'version': {'type': 'string', 'description': 'e.g. "0.379.0"'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['name', 'nodes'], 'properties': {'name': {'type': 'string', 'description': 'Board name'}, 'nodes': {'type': 'array', 'items': {'type': 'object'}, 'description': 'e.g. {kind:"formula",name:"dmg",formula:"atk - mdef"}'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['title'], 'properties': {'csv': {'type': 'string', 'description': 'Header + rows; non-numeric = info'}, 'rows': {'type': 'array', 'items': {'type': 'object'}, 'description': '[{name, atk: 350, …}]'}, 'title': {'type': 'string', 'description': 'Table name'}, 'schema': {'type': 'array', 'items': {'type': 'object'}, 'description': '[{key, mode: flat|pct|text, base, min, max, desc}]'}, 'registry': {'type': 'boolean', 'description': 'true = the shared Stats registry'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['title', 'content'], 'properties': {'batch': {'type': 'string', 'description': 'import_from_code batch id'}, 'title': {'type': 'string', 'description': 'Match existing to update, or new to add'}, 'resync': {'type': 'boolean', 'description': 'This note was re-derived from the current systems — re-stamps both staleness signals on adopt'}, 'content': {'type': 'string', 'description': 'Complete text, not a delta'}, 'project_id': {'type': 'string'}, 'acknowledge_rejection': {'type': 'boolean', 'description': 'Only after a DECLINED bounce AND asking the user'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'dna': {'type': 'string', 'description': 'Omit to leave unchanged'}, 'batch': {'type': 'string', 'description': 'import_from_code batch id'}, 'project_id': {'type': 'string'}, 'tech_notes': {'type': 'string', 'description': 'Omit to leave unchanged'}}}
Schéma d’entrée
{'type': 'object', 'required': ['screen', 'label'], 'properties': {'h': {'type': 'number', 'description': 'Default 40'}, 'w': {'type': 'number', 'description': 'Default 120'}, 'x': {'type': 'number', 'description': 'Left px'}, 'y': {'type': 'number', 'description': 'Top px'}, 'note': {'type': 'string'}, 'type': {'type': 'string', 'description': 'button/bar/panel/text (default box)'}, 'label': {'type': 'string', 'description': "Element label, e.g. 'HP bar'"}, 'screen': {'type': 'string', 'description': 'Existing screen name'}, 'system': {'type': 'string', 'description': 'System it serves'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'description': 'Destination screen name'}, 'from': {'type': 'string', 'description': 'Source screen name'}, 'label': {'type': 'string', 'description': 'Transition label (optional)'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['name'], 'properties': {'goal': {'type': 'string', 'description': 'One-line goal (optional)'}, 'name': {'type': 'string', 'description': 'Milestone name'}, 'tasks': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Task names (optional)'}, 'project_id': {'type': 'string'}, 'acknowledge_rejection': {'type': 'boolean', 'description': 'Only after a DECLINED bounce AND asking the user'}}}
Schéma d’entrée
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Screen name (Title Case, English)'}, 'parent': {'type': 'string', 'description': 'Make it a POPUP over this screen'}, 'purpose': {'type': 'string', 'description': 'What this screen is for'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['title', 'spec'], 'properties': {'spec': {'type': 'string', 'description': 'Markdown: ## Goal / ## Boundary / ## Acceptance'}, 'batch': {'type': 'string', 'description': 'import_from_code batch id'}, 'files': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Implementing paths, ONE file per entry'}, 'title': {'type': 'string', 'description': 'System name (Title Case, English)'}, 'project_id': {'type': 'string'}, 'derives_from': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Context note title(s) this system derives from → wires provenance (upstream + siblings)'}, 'acknowledge_rejection': {'type': 'boolean', 'description': 'Only after a DECLINED bounce AND asking the user'}}}
Schéma d’entrée
{'type': 'object', 'required': ['name', 'new_name'], 'properties': {'name': {'type': 'string', 'description': 'Exact CURRENT name'}, 'new_name': {'type': 'string', 'description': 'New name (must not collide)'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['kind', 'order'], 'properties': {'kind': {'enum': ['milestones', 'tasks', 'elements'], 'type': 'string', 'description': 'What to reorder'}, 'order': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Ids in the new order'}, 'screen': {'type': 'string', 'description': 'For kind=elements'}, 'milestone': {'type': 'string', 'description': 'For kind=tasks (name)'}, 'project_id': {'type': 'string'}, 'milestone_id': {'type': 'string', 'description': 'For kind=tasks'}}}
Schéma d’entrée
{'type': 'object', 'required': ['status'], 'properties': {'id': {'type': 'string', 'description': 'Preferred'}, 'name': {'type': 'string', 'description': 'If no id'}, 'files': {'type': 'array', 'items': {'type': 'string'}, 'description': "ONE file per entry (optional ' — function'); prose → decisions"}, 'status': {'type': 'string', 'description': 'todo | in-progress | implemented'}, 'version': {'type': 'string', 'description': 'e.g. "0.379.0"'}, 'evidence': {'type': 'array', 'items': {'type': 'object', 'properties': {'at': {'type': 'string', 'description': 'ISO time of the pass (defaults to now); green expires after 21d'}, 'proof': {'type': 'string'}, 'passed': {'type': 'boolean', 'description': 'true = you RAN this test and it passed → counts toward TEST-GREEN'}, 'criterion': {'type': 'string'}}}, 'description': 'Map ## Acceptance bullets to a test/file: [{criterion, proof, passed?, at?}]. Re-send full set (replaces). proof-only = backed (claimed); passed:true = test-green (guarantee).'}, 'decisions': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Decisions/divergences (prose)'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Preferred'}, 'name': {'type': 'string', 'description': 'If no id'}, 'note': {'type': 'string', 'description': 'Optional — what drifted'}, 'project_id': {'type': 'string'}, 'missing_files': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Paths that no longer exist'}}}
Schéma d’entrée
{'type': 'object', 'required': ['done_tasks'], 'properties': {'id': {'type': 'string', 'description': 'Preferred'}, 'milestone': {'type': 'string', 'description': 'Milestone name (if no id)'}, 'done_tasks': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Task names that are done'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['screen', 'status'], 'properties': {'screen': {'type': 'string', 'description': 'Screen name'}, 'status': {'type': 'string', 'description': 'todo | in-progress | implemented'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['title'], 'properties': {'title': {'type': 'string', 'description': 'Exactly as get_rejections returned it'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['note'], 'properties': {'note': {'type': 'string', 'description': "The Idea note's title or id (from get_stale)"}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['query'], 'properties': {'kinds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional: system | context | milestone | task | screen | proposal'}, 'query': {'type': 'string', 'description': 'Text to search for'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['summary'], 'properties': {'summary': {'type': 'string', 'description': 'The Overview in markdown, starting at `### What this is`'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['screen'], 'properties': {'screen': {'type': 'string', 'description': 'The screen whose reference image to trace (name or id)'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'h': {'type': 'number'}, 'w': {'type': 'number'}, 'x': {'type': 'number', 'description': "px on the screen's canvas"}, 'y': {'type': 'number'}, 'note': {'type': 'string', 'description': '"" clears'}, 'type': {'type': 'string', 'description': 'e.g. button/bar/panel (optional)'}, 'label': {'type': 'string', 'description': 'Current label'}, 'screen': {'type': 'string', 'description': 'With label, if no element_id'}, 'system': {'type': 'string', 'description': 'System it serves'}, 'new_label': {'type': 'string', 'description': 'Rename (optional)'}, 'element_id': {'type': 'string', 'description': 'From get_screen (preferred)'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Preferred'}, 'goal': {'type': 'string'}, 'name': {'type': 'string', 'description': 'Current name (if no id)'}, 'weeks': {'type': 'number'}, 'new_name': {'type': 'string', 'description': 'Rename'}, 'difficulty': {'enum': ['easy', 'medium', 'hard', ''], 'type': 'string', 'description': '"" clears'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['spec'], 'properties': {'id': {'type': 'string', 'description': 'Preferred'}, 'name': {'type': 'string', 'description': 'If no id'}, 'spec': {'type': 'string', 'description': 'Full revised spec markdown'}, 'resync': {'type': 'boolean', 'description': 'This spec was re-derived from its upstream Idea — re-stamps sourceSig on adopt. Never set it on an ordinary edit.'}, 'context': {'type': 'string', 'description': 'Full revised Idea text'}, 'new_title': {'type': 'string', 'description': 'Rename in the same card'}, 'project_id': {'type': 'string'}, 'context_title': {'type': 'string', 'description': 'Idea section to also update'}, 'acknowledge_rejection': {'type': 'boolean', 'description': 'Only after a DECLINED bounce AND asking the user'}}}
Schéma d’entrée
{'type': 'object', 'required': ['task_id'], 'properties': {'done': {'type': 'boolean', 'description': 'true releases the claim'}, 'name': {'type': 'string'}, 'force': {'type': 'boolean', 'description': 'Take over a STALE claim only'}, 'human': {'type': 'boolean', 'description': 'true = human-only (next_task/get_briefing skip it); false clears'}, 'effort': {'enum': ['S', 'M', 'L', ''], 'type': 'string', 'description': '"" clears'}, 'status': {'enum': ['in-progress', 'blocked', ''], 'type': 'string', 'description': '"" clears'}, 'task_id': {'type': 'string', 'description': 'From get_milestone'}, 'assignee': {'type': 'string', 'description': '"me" claims; "" releases'}, 'project_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The pending item's id"}, 'project_id': {'type': 'string'}}}
Modifications récentes des outils
Serveurs MCP similaires
cypher-mcp
Provides named Cypher graph queries and code-orientation tools for tracing capabilities, symbols, invariants, provenance, changes…
canton-ccpedia
Searches and explains Canton Network and Daml documentation, governance proposals, forums, code examples, APIs, releases, and eco…
ALM X++ MCP Server
Supports D365 Finance and Operations development with X++ and AOT search, code analysis, Azure DevOps workflows, telemetry querie…
Kaiku
Manages team issues, comments, attachments, projects, wiki pages, and related development workflows.
api-evangelist
Provides API governance analysis, OpenAPI overlays and version diffs, security-sensitive field classification, code samples, matu…
Avalanche AVAX MCP
Searches and retrieves Avalanche documentation, community proposals, CLI guidance, Builder Console workflows, blockchain identifi…
Github
Reads public GitHub repository files, releases, commits, issues, repository metadata, user profiles, and trending repositories.
blobpedia
Provides searchable Celestia documentation, governance proposals, forum and GitHub discussions, ecosystem information, release ch…