agentleFS
BufferoverflovvBufferoverflovv/FastMCP-Blueprint/.github/skills/bootstrap-personalize/SKILL.md

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
  1. Very specific:

    Ask the following questions.

    line 21
  2. Distinctive:

    Only do this if the package name is actually changing.

    line 64
  3. Very specific:

    Update src/<pkg>/tools/hello_world.py and its imports

    line 70
  4. Distinctive:

    Update all other test files

    line 73
  5. Very specific:

    Update Dockerfile — replace the CLI command in the CMD instruction

    line 75
  6. Distinctive:

    If the user asked to remove the sample tool:

    line 81
  7. Very specific:

    Remove its import from __main__.py

    line 84
  8. Very specific:

    Remove it from tests/conftest.py

    line 85
  9. Very specific:

    Add a placeholder comment in __main__.py where it was imported

    line 86
  10. Distinctive:

    If the user wants to keep it, leave it untouched.

    line 88
  11. Very specific:

    If auth mode is disabled (the default), make no changes to server.py or config.py beyond normal renames.

    line 92
  12. Very specific:

    If auth mode is remote or oauth_proxy:

    line 94
  13. Distinctive:

    Add a note in README.md pointing to the auth section

    line 96
  14. Very specific:

    Leave the wiring in server.py as-is.

    line 97
  15. Distinctive:

    After applying all changes, run the following and confirm they pass:

    line 101

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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_world sample 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.

#QuestionDefault
1Project display name — shown in README, pyproject.toml, and MCP identityFastMCP-Blueprint
2Python package name — src/<pkg>/ folder, imports, hatchling config (snake_case)fastmcp_blueprint
3CLI command name — entry point in pyproject.toml (kebab-case)fastmcp-blueprint
4Short description — one sentence for pyproject.toml description fieldcurrent value
5MCP server instructions — natural-language description the LLM sees at runtimeThis server provides MCP tools and resources.
6Auth mode — disabled, remote, or oauth_proxydisabled
7Remove hello_world sample tool? — yes or nono

Derive these automatically from the answers:

  • PACKAGE_NAME — snake_case version of the Python package name
  • CLI_NAME — kebab-case CLI command
  • CLASS_OR_IMPORT_PREFIX — matches the package name in all from 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  →  yes

Step 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:

  1. Rename the package directory using the terminal:
    mv src/CURRENT_PACKAGE_NAME src/NEW_PACKAGE_NAME
    Only do this if the package name is actually changing.
  2. Update pyproject.toml
  3. Update src/<pkg>/__main__.py
  4. Update src/<pkg>/config.py
  5. Update src/<pkg>/server.py
  6. Update src/<pkg>/tools/hello_world.py and its imports
  7. Update src/<pkg>/routes/health.py and its imports
  8. Update tests/conftest.py
  9. Update all other test files
  10. Update .env.example
  11. Update Dockerfile — replace the CLI command in the CMD instruction
  12. Update README.md
  13. 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__.py where 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_PROVIDER block in .env.example
  • Add a note in README.md pointing to the auth section
  • Leave the wiring in server.py as-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 -v

Fix 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)

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.