bootstrap-personalize
Skill0 starsChanged 7 months agoApache-2.0View on GitHub
Personalize and rename this FastMCP-Blueprint template into a real project. Use when: bootstrapping a new MCP server from this template, renaming the package or CLI command, customizing the server name/description, choosing an auth mode, removing sample/placeholder code, or setting up a project for real use. Asks questions then updates pyproject.toml, package paths, config.py, server.py, __main__.py, .env.example, README, and AGENTS docs consistently.
- Reads credentials
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 6 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 21
Ask the following questions.
- Distinctive: line 64
Only do this if the package name is actually changing.
- Very specific: line 70
Update src/<pkg>/tools/hello_world.py and its imports
- Distinctive: line 73
Update all other test files
- Very specific: line 75
Update Dockerfile — replace the CLI command in the CMD instruction
- Distinctive: line 81
If the user asked to remove the sample tool:
- Very specific: line 84
Remove its import from __main__.py
- Very specific: line 85
Remove it from tests/conftest.py
- Very specific: line 86
Add a placeholder comment in __main__.py where it was imported
- Distinctive: line 88
If the user wants to keep it, leave it untouched.
- Very specific: line 92
If auth mode is disabled (the default), make no changes to server.py or config.py beyond normal renames.
- Very specific: line 94
If auth mode is remote or oauth_proxy:
- Distinctive: line 96
Add a note in README.md pointing to the auth section
- Very specific: line 97
Leave the wiring in server.py as-is.
- Distinctive: line 101
After applying all changes, run the following and confirm they pass:
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Bootstrap and Personalize the Blueprint
Transforms this FastMCP-Blueprint template into a project-specific MCP server by asking a short set of questions and then updating every relevant file consistently.
When to use
- First time setting up this template for a real project
- Renaming the package, CLI command, or display name
- Changing the MCP server description or default instructions
- Enabling or disabling auth in the base configuration
- Removing the
hello_worldsample tool once real tools exist
Step 1 — Interview the user
Ask the following questions. Wait for all answers before making any changes. Use the vscode_askQuestions tool if available.
| # | Question | Default |
| 1 | Project display name — shown in README, pyproject.toml, and MCP identity | FastMCP-Blueprint |
| 2 | Python package name — src/<pkg>/ folder, imports, hatchling config (snake_case) | fastmcp_blueprint |
| 3 | CLI command name — entry point in pyproject.toml (kebab-case) | fastmcp-blueprint |
| 4 | Short description — one sentence for pyproject.toml description field | current value |
| 5 | MCP server instructions — natural-language description the LLM sees at runtime | This server provides MCP tools and resources. |
| 6 | Auth mode — disabled, remote, or oauth_proxy | disabled |
| 7 | Remove hello_world sample tool? — yes or no | no |
Derive these automatically from the answers:
PACKAGE_NAME— snake_case version of the Python package nameCLI_NAME— kebab-case CLI commandCLASS_OR_IMPORT_PREFIX— matches the package name in allfrom fastmcp_blueprint...imports
Step 2 — Confirm before changing
Show the user a summary table of every change that will be made. Ask for confirmation before proceeding.
Example summary:
Display name: FastMCP-Blueprint → My Weather MCP
Package name: fastmcp_blueprint → my_weather_mcp
CLI command: fastmcp-blueprint → my-weather-mcp
Description: A FastMCP blueprint… → Provides real-time weather data via MCP.
Instructions: This server provides… → You can ask me about weather conditions…
Auth: disabled → disabled
Remove sample: no → yesStep 3 — Apply changes
Consult ./references/file-substitutions.md for the exact list of substitutions and which files to update.
Apply changes in this order to avoid import-before-rename problems:
- Rename the package directory using the terminal:
Only do this if the package name is actually changing.mv src/CURRENT_PACKAGE_NAME src/NEW_PACKAGE_NAME - Update
pyproject.toml - Update
src/<pkg>/__main__.py - Update
src/<pkg>/config.py - Update
src/<pkg>/server.py - Update
src/<pkg>/tools/hello_world.pyand its imports - Update
src/<pkg>/routes/health.pyand its imports - Update
tests/conftest.py - Update all other test files
- Update
.env.example - Update
Dockerfile— replace the CLI command in theCMDinstruction - Update
README.md - Update
AGENTS.md
Step 4 — Handle the hello_world tool
If the user asked to remove the sample tool:
- Delete
src/<pkg>/tools/hello_world.py - Delete
tests/test_hello_world.py - Remove its import from
__main__.py - Remove it from
tests/conftest.py - Add a placeholder comment in
__main__.pywhere it was imported
If the user wants to keep it, leave it untouched.
Step 5 — Handle auth mode
If auth mode is disabled (the default), make no changes to server.py or config.py beyond normal renames.
If auth mode is remote or oauth_proxy:
- Uncomment the relevant
AUTH_PROVIDERblock in.env.example - Add a note in
README.mdpointing to the auth section - Leave the wiring in
server.pyas-is; it already handles both modes
Step 6 — Validate
After applying all changes, run the following and confirm they pass:
ruff check .
ruff format --check .
pytest -vFix any import errors or test failures caused by the renames before declaring the workflow complete.
Step 7 — Report results
Tell the user:
- Which files were changed
- Whether tests passed
- What the next step is (for example: add your first tool, see
add-tool)
In this repository12 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- add-resourceSkill
- add-routeSkill
- add-toolSkill
- auth-setupSkill
- deployment-profileSkill
- docs-syncSkill
- observability-setupSkill
- release-readinessSkill
- rename-projectSkill
- test-scaffoldSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

