SuperSkill
Local project memory, rule-pack routing and worktree cache tools for coding agents
Plans, scaffolds and maintains multi-language full-stack projects from a catalogue of parts
By Ibrahim Elkamali (individual) TypeScript Local · stdio Developer tools
49 popularity score ★ 818 ↓ 297/wk
Opens the app, which asks before it adds the server.
claude mcp add better-fullstack -- npx -y create-better-fullstack@latest mcp{
"mcpServers": {
"better-fullstack": {
"command": "npx",
"args": [
"-y",
"create-better-fullstack@latest",
"mcp"
]
}
}
}{
"mcpServers": {
"better-fullstack": {
"command": "npx",
"args": [
"-y",
"create-better-fullstack@latest",
"mcp"
]
}
}
}{
"servers": {
"better-fullstack": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"create-better-fullstack@latest",
"mcp"
]
}
}
}[mcp_servers.better-fullstack]
command = "npx"
args = ["-y", "create-better-fullstack@latest", "mcp"]gemini mcp add --scope user better-fullstack npx -- -y create-better-fullstack@latest mcpBTS_TELEMETRY_DISABLED |
Optional: Set to 1 to turn off the anonymous usage telemetry. Any other value turns it on, overriding the saved preference. |
|---|
Better Fullstack is a project generator for full-stack apps, and its npm package create-better-fullstack has an mcp subcommand that starts a local stdio MCP server. Through it a coding agent can browse the catalogue of frameworks, databases, auth, API and deploy choices (its makers call them Stack Parts), check that a combination works together, preview the file tree in memory, and then write the project to disk. Generated projects can be in TypeScript, Rust, Python, Go, Java and other ecosystems, or mix several in one repository.
The server also covers what happens after the first scaffold. It reads the bts.jsonc file a generated project keeps, and offers tools to repair config drift, refresh templates, add or remove parts, swap a primary frontend, backend or database, and adopt an older project. Most changes are split into a plan tool that returns a review token and an apply tool that only accepts that unchanged token; applied changes are recorded as recovery points that can be listed, verified and restored.
You get 40 tools in all, generated from a single operations table in apps/cli/src/operations/index.ts, plus four read-only resources like docs://stack-options. You won't find any of them listed in the README. Each operation in the source carries a safety level of read, action or destructive. Seven sit at destructive: pruning recovery points, restoring an old transaction, and five apply steps that overwrite project files. Tool calls also go through the CLI's telemetry wrapper in apps/cli/src/mcp.ts, so official releases report anonymous usage events by default once a notice has been shown.
| Runtime | Node.js |
|---|---|
| Runs on | macOS, Windows, Linux |
Node.js with npx (or pnpm dlx, yarn dlx or bunx, per the docs' launcher table). The command fetches create-better-fullstack@latest from npm on start. No account or sign-in. Bun is needed only when a generated project picks Bun as its runtime or package manager. Running bfs_check_project needs the toolchains of the generated project (for example Go, Rust or Python) on the machine.
Write tools never install dependencies or run git: the agent has to run the returned install commands itself. bfs_check_project runs the project's generated targets, and those build tools may write lock files, caches or artifacts. Template-refresh reviews merge exactly only up to 32 KiB per file; larger files return metadata and no token. Adopting an older project leaves it marked as unverified lineage. The lifecycle tools work on projects it generated or adopted (tracked in bts.jsonc), not on arbitrary codebases. The docs' commands use @latest, so the tool set can change between runs.
Suits developers who want an agent to start a new full-stack project from tested templates rather than writing boilerplate, and who will keep extending it through the same generator. It runs locally with no sign-in, but it writes into project folders and one tool runs build commands, so it fits a machine where the agent already has write access to code. Pick something else to work on an existing app that was not made with Better Fullstack, or when you only need a template once: the plain CLI or the web Stack Builder do that without an MCP client.
27 only read, 6 change things, 7 can delete or overwrite. A ? marks an optional parameter.
bfs_get_guidancebfs_get_schemacategory?: stringecosystem?: enumbfs_list_optionscategory?: stringecosystem?: enumbfs_search_optionsquery: stringecosystem?: enumbfs_explain_optionoption: stringwith?: arrayecosystem?: enumbfs_list_presetsbfs_list_starter_tracksid?: enumecosystem?: enumevidence?: enumruntime?: enumdeploymentTarget?: enumpackageManager?: enumdatabase?: enumauth?: enumworkspaceShape?: enumbfs_recommend_stackbrief: stringecosystem?: enumprojectName?: stringbfs_check_compatibilityecosystem: enumfrontend?: arraybackend?: stringruntime?: stringdatabase?: stringorm?: stringapi?: stringauth?: stringpayments?: stringuiLibrary?: stringcssFramework?: stringbfs_plan_projectbfs_create_project changesprojectName: stringtargetDir?: stringbfs_get_project_statusprojectDir: stringbfs_check_project changesprojectDir: stringbfs_plan_doctor_fixprojectDir: stringbfs_apply_doctor_fix changesprojectDir: stringreviewToken: stringbfs_plan_genprojectDir: stringkind?: enumname: stringbfs_apply_gen deletesprojectDir: stringkind?: enumname: stringreviewToken: stringbfs_check_recipesprojectDir: stringname?: stringbfs_get_recipe_historyprojectDir: stringbfs_get_project_contextprojectDir: stringbfs_plan_registry_addprojectDir: stringsource: stringbfs_apply_registry_add deletesprojectDir: stringsource: stringreviewToken: stringbfs_plan_part_removalprojectDir: stringtarget: stringbfs_apply_part_removal deletesprojectDir: stringtarget: stringreviewToken: stringacknowledgeArchitectureChange?: booleanbfs_plan_project_adoptionprojectDir: stringbfs_confirm_project_adoption changesprojectDir: stringconfirmationToken: stringbfs_plan_project_updateprojectDir: stringbfs_apply_project_update deletesprojectDir: stringreviewToken: stringacknowledgeUnprovenManifestV1?: booleanbfs_list_project_recovery_pointsprojectDir: stringbfs_get_project_recovery_pointprojectDir: stringtransactionId: stringbfs_verify_project_recovery_pointprojectDir: stringtransactionId: stringbfs_prune_project_recovery_points deletesprojectDir: stringolderThanDays?: integerkeep?: integerapply?: booleanreviewToken?: stringbfs_recover_project_transaction deletesprojectDir: stringtransactionId: stringbfs_plan_primary_role_replacementprojectDir: stringtarget: stringreplacement: stringbfs_apply_primary_role_replacement deletesprojectDir: stringtarget: stringreplacement: stringreviewToken: stringacknowledgeArchitectureChange?: booleanbfs_plan_stack_updatebfs_apply_stack_update changesbfs_plan_additionprojectDir: stringpart?: arrayaddons?: arraywebDeploy?: enumserverDeploy?: enumbfs_add_feature changesprojectDir: stringpart?: arrayaddons?: arraywebDeploy?: enumserverDeploy?: enumpackageManager?: enumbfs_get_capability_evidenceecosystem?: enumcategory?: stringoptionId?: stringreceiptJson?: stringdocs://capability-evidence-levelsdocs://compatibility-rulesdocs://stack-optionsdocs://getting-started