boilerforge
Click on "Deploy 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., "@boilerforgerun doctor on current project"
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.
boilerforge
Architecture governance wedge for AI-built codebases — doctor-first health checks and guardrails for production teams.
Boilerforge is now doctor-first. Instead of starting from a boilerplate registry, you start by checking architecture quality:
boilerforge doctor .It scores your project, detects stack metadata, validates governance guardrails, and gives actionable recommendations.
Quickstart
npx -y @cometforge/boilerforge@latest doctor .CI gate:
boilerforge doctor . --ci --min-score 70Badge snippet:
boilerforge doctor . --badgeExample output:
Related MCP server: code-guardian
Commands
boilerforge doctor [path]
Architecture health report with weighted score (/100).
Flags:
--jsonoutput machine-readable JSON--cifail with non-zero exit if below threshold--min-score <number>threshold for--ci(default 70)--badgeprint markdown badge snippet + score
boilerforge analyze [path]
Detect stack metadata:
language/runtime
framework
package manager
baseline project metadata
boilerforge validate [path]
Evaluate architecture guardrails and return:
pass/fail
score
categorized issues (
critical,warning,info)recommendations
boilerforge extract [path] [--name <template-name>]
Extract current project into local template registry:
writes
.boilerforge-template.yamlin source projectcreates template under
~/.boilerforge/registry/<template-name>/copies sane files only (excludes
.git,node_modules,dist, build artifacts, env secrets)
boilerforge create <template-name> [target-path]
Scaffold a project from local registry template and write lockfile (boilerforge.lock.json).
boilerforge upgrade [path]
Upgrade project based on lockfile + local template version:
compares locked template version vs latest local registry
applies migration hooks in order when present (
writeFile,appendFile,deleteFile,copyFromTemplate,patchJSON)writes updated lockfile
Doctor Rule Engine (100 points)
CI workflow exists — 12
Env schema validation present — 10
Typecheck script exists — 10
Test script + test files exist — 12
Lint configured — 10
Security headers configured (web stacks) — 10
Centralized logging present — 8
Observability hook present (Sentry/OpenTelemetry/etc) — 8
Dependency hygiene — 10
Docs baseline (README + setup) — 10
Outputs include:
score
/100detected stack summary
categorized issues
actionable recommendations
Local Registry Model
Registry root:
~/.boilerforge/registryTemplate layout:
<template>/
template.yaml
files/
migrations/ (optional)template.yaml accepts YAML (not just JSON), and is strictly validated for required fields (name, version, createdAt) with clear parse/validation errors.
Lockfile (boilerforge.lock.json) stores template name/version/source for deterministic upgrades.
Lifecycle Compatibility
Existing lifecycle workflows remain supported:
boilerforge init <project-name> [--workflow=claude]
boilerforge update [--dry-run]
boilerforge protect add <category> <name>
boilerforge protect remove <category> <name>
boilerforge statusMCP Server Tools (unchanged)
list_boilerplatesget_boilerplatesearch_boilerplatesscaffold_projectcheck_project_updates
Running the package without CLI args in non-interactive MCP context still starts the MCP server.
CI/CD
GitHub Actions workflows included:
ci.yml: install, lint, typecheck, test, build,doctor --ci --min-score 70, CLI smoke checks, and npm package integrity (npm pack) verification.publish.yml: release-driven publish pipeline (lint + typecheck + test + build + doctor gate + npm publish with provenance).
Minimal CI snippet for your own repos:
- name: Architecture gate
run: boilerforge doctor . --ci --min-score 70doctor --ci exits non-zero when below threshold, so it can be used as a hard merge/release gate.
Development
git clone https://github.com/MRKT365-India/boilerforge.git
cd boilerforge
npm install
npm run build
npm testAvailable Tools
5 toolscheck_project_updatesA
Check whether a scaffolded project has boilerplate updates available
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Project root directory path containing boilerforge.lock.json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the purpose ('check') but does not mention whether the operation is read-only, has side effects, performs network calls, or what the output format is. This is a significant gap for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that directly states the tool's purpose without any wasted words. It is front-loaded and immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a single parameter and no output schema, the description is minimally acceptable. However, it does not specify what the check returns (e.g., a boolean, a list of updates, or detailed information), leaving the agent to guess. This gap is partially mitigated by the high schema coverage but not fully addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the 'target' parameter (100% coverage), including its role as a project root directory containing boilerforge.lock.json. The description adds only the 'scaffolded project' context, which is minimal and not essential given the schema's clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'check' with a specific resource ('scaffolded project') and purpose ('boilerplate updates available'), making its function clear. It distinguishes itself from sibling tools like list_boilerplates, get_boilerplate, search_boilerplates, and scaffold_project by identifying a distinct action and target.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use: for scaffolded projects that may have boilerplate updates. It doesn't explicitly mention alternatives or exclusions, but the context is specific enough that the agent can infer it is not for listing, getting, searching, or scaffolding boilerplates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_boilerplateB
Get all files for a specific boilerplate
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Boilerplate name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states the action and resource, omitting any details about return format, recursion, read-only assurance, or potential side effects. The agent is left uncertain about what 'all files' entails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, minimal sentence that conveys the core purpose without extraneous words. It is crisp and front-loaded, earning full marks for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is too terse to be fully complete. It does not explain what 'all files' means, how they are returned, or any constraints, leaving important gaps for a tool with a single parameter but no structured output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents the single parameter 'name' with a description ('Boilerplate name'), and schema coverage is 100%. The tool description adds no additional parameter meaning beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb ('Get') and resource ('all files for a specific boilerplate'). It distinguishes itself from siblings like list_boilerplates and search_boilerplates, which likely operate on boilerplate metadata rather than files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not indicate prerequisites, expected context, or when not to use it, leaving the selection decision to the agent without explicit support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_boilerplatesA
List all available boilerplates in the registry
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. The verb 'List' makes the read-only nature evident and there is no hint of side effects. However, the description doesn't mention potential details like authentication requirements, pagination, or whether results are sorted. For a simple listing tool, this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that directly states the tool's function. Every word earns its place; no filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema, no annotations), the description is nearly complete for the agent's needs. It clearly states that all boilerplates in the registry will be listed. It could optionally specify the return format or the fields included for each boilerplate, but for a listing operation this omission is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description doesn't need to explain parameter semantics, and the schema correctly shows an empty properties object. No additional parameter information is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and clearly identifies the resource ('all available boilerplates in the registry'). It distinguishes itself from sibling tools like search_boilerplates by emphasizing 'all' rather than filtered results, and from get_boilerplate by referring to the full collection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a complete inventory of boilerplates is needed, but it does not explicitly state when to use alternatives like search_boilerplates for filtered queries or get_boilerplate for a single item. No exclusions or alternative guidance is provided, so the usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scaffold_projectB
Scaffold a boilerplate into a target directory
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Target directory path | |
| boilerplate | Yes | Boilerplate name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but does not disclose whether files are overwritten, whether the target directory must be empty, or any additional side effects. 'Scaffold' implies file creation, but key behavioral traits are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word adds meaning, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutation-like tool with no annotations and no output schema, so the description needs to explain more about the effects. It does not mention overwrite behavior, whether the target directory must exist or be empty, or how boilerplate names map to actual templates. The sibling tools help but are not referenced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% because both parameters have descriptions ('Target directory path' and 'Boilerplate name'). The description adds no extra meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('scaffold') and resource ('boilerplate') with a clear destination ('target directory'). It clearly distinguishes this tool from siblings like list_boilerplates, get_boilerplate, and search_boilerplates, which are read-oriented actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for generating a project from a boilerplate, but provides no explicit guidance on when to use this versus alternatives, nor any exclusions or prerequisites. The presence of sibling tools suggests context, but the description itself does not state them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_boilerplatesA
Search boilerplates by name, stack, or tags
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query to match against name, description, tags, and stack |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Search' which implies a read-only operation, but it does not explicitly confirm non-destructive behavior, describe return format, or mention any limitations like pagination or exact-match vs. partial-match behavior. The description adds minimal behavioral context beyond the core purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of eight words, front-loaded with the verb and resource. Every word is purposeful, and there is no filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with one parameter and no output schema, the description covers the core purpose. It could explicitly mention that it returns matching boilerplates, but given the simplicity and the clear 'Search' verb, the description is nearly complete. The absence of output schema slightly lowers the score from 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for the single query parameter, including a description ('match against name, description, tags, and stack'). The tool description repeats a subset ('name, stack, or tags') but omits 'description,' and does not add new meaning beyond the schema. Baseline for high schema coverage is 3, and the description does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Search' and identifies the resource 'boilerplates' along with clear filtering criteria ('by name, stack, or tags'). This clearly distinguishes it from sibling tools like list_boilerplates (which lists all), get_boilerplate (fetches one), scaffold_project (creates a project), and check_project_updates (checks updates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when the agent needs to find boilerplates matching specific criteria, but it does not explicitly state when to use this tool over list_boilerplates or other alternatives. No exclusions or when-not-to-use guidance is provided, so the usage context is only implied by the word 'Search.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.10- First observed
check_project_updates - First observed
get_boilerplate - First observed
list_boilerplates - First observed
scaffold_project - First observed
search_boilerplates
TDQS
Scored across 5 tools
Each tool targets a distinct operation: listing all, getting files, searching, scaffolding, and checking updates. The descriptions make it easy to distinguish list from search and get from scaffold, eliminating ambiguity.
All tool names follow a consistent verb_noun snake_case pattern (list_, get_, search_, scaffold_, check_), making the API predictable and easy to navigate.
With 5 tools, the server is well-scoped and each tool serves a clear purpose in the boilerplate workflow, avoiding bloat while providing essential functionality.
The set covers the main consumer workflow: discover, retrieve, scaffold, and check updates. Missing create/update/delete for boilerplates themselves, but that appears outside the server's intended read-only registry scope.
Maintenance
Related MCP Connectors
AI governance MCP server for EU AI Act compliance and jurisdiction verification
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAI-powered project governance engine for collaborative development with MCP server and CLI, file as source of truth, zero model dependency.147 npm16MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that provides code quality checks for AI coding assistants, including file size limits, ESLint, architecture compliance, anti-pattern scanning, and comment compliance.7 npmMIT
- FlicenseNot gradedqualityDmaintenanceA comprehensive MCP server for managing product initiatives, architecture decisions, requirements, and releases, enabling AI tools to interact with architectural documentation and planning.-
- AlicenseNot gradedqualityBmaintenanceMCP server that provides tools for architecture analysis, risk diagnosis, quality metrics, and regression guarding to support AI-driven code review and incremental refactoring workflows.5MIT