From python-skills
Bootstrap Python MCP server projects and workspaces on macOS using uv and FastMCP with consistent defaults. Use when creating a new MCP server from scratch, scaffolding a single uv MCP project, scaffolding a uv workspace with package/service members, customizing scaffold defaults through layered YAML profiles, initializing pytest+ruff+mypy defaults, creating README.md, initializing git, running initial validation checks, or starting from OpenAPI/FastAPI with MCP mapping guidance.
How this skill is triggered — by the user, by Claude, or both
Slash command
/python-skills:bootstrap-python-mcp-serviceThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create FastMCP starter layouts using one direct shell entrypoint backed by the shared `bootstrap-uv-python-workspace` scaffolding scripts plus deterministic MCP overlay logic.
Create FastMCP starter layouts using one direct shell entrypoint backed by the shared bootstrap-uv-python-workspace scaffolding scripts plus deterministic MCP overlay logic.
bootstrap-python-service when the user wants a FastAPI service but not an MCP server.namemodepathpython, members, profile_map, force, initial_commit, no_git_initscripts/init_fastmcp_service.sh --name <name> --mode <project|workspace>
bootstrap-uv-python-workspace scaffolding layer, then apply the FastMCP overlay.uv run pytestuv run ruff check .uv run mypy ..env for safe defaults.env.local for machine-local or secret overridespydantic-settingsuv run scripts/assess_api_for_mcp.py ....# Project mode (default)
scripts/init_fastmcp_service.sh --name my-mcp-server
# Project mode with explicit options
scripts/init_fastmcp_service.sh --name my-mcp-server --mode project --python 3.13 --path /tmp/my-mcp-server
# Workspace mode with defaults (core-lib package + api-service service)
scripts/init_fastmcp_service.sh --name platform --mode workspace
# Workspace mode with explicit members and profile mapping
scripts/init_fastmcp_service.sh \
--name platform \
--mode workspace \
--members "core-lib,tools-service,ops-service" \
--profile-map "core-lib=package,tools-service=service,ops-service=service"
# Allow non-empty target directory
scripts/init_fastmcp_service.sh --name my-mcp-server --force
# Skip git initialization
scripts/init_fastmcp_service.sh --name my-mcp-server --no-git-init
# Create initial commit
scripts/init_fastmcp_service.sh --name my-mcp-server --initial-commit
# Generate MCP mapping guidance from OpenAPI
uv run scripts/assess_api_for_mcp.py --openapi ./openapi.yaml --out ./mcp_mapping_report.md
# Generate MCP mapping guidance from existing FastAPI app
uv run scripts/assess_api_for_mcp.py --fastapi app.main:app --out ./mcp_mapping_report.md
name: requiredmode: project or workspace; defaults to projectpath: optional target directory; defaults to ./<name>python: optional Python version; defaults to 3.13members: optional workspace member CSV for workspace modeprofile_map: optional workspace profile CSV for workspace modeforce: optional flag allowing non-empty target directoriesinitial_commit: optional flag creating an initial commit after a successful scaffoldno_git_init: optional flag disabling git initializationstatus
success: scaffold and built-in validation completedblocked: prerequisites or target-directory constraints prevented the runfailed: the script started but validation or generation failedpath_type
primary: the canonical shell entrypoint completedoutput
project3.13pytest, ruff, mypy.env, ignored .env.local, and pydantic-settingscore-lib,api-servicepackage, remaining members serviceThe shared scaffold basis follows uv FastAPI integration style:
uv add fastapi --extra standard
uv add pydantic-settings python-dotenv
uv run fastapi dev app/main.py
This skill then overlays FastMCP dependencies and server files for MCP service members.
Generated FastMCP scaffolds should keep safe defaults in .env, local or secret overrides in .env.local, and typed runtime configuration in app/config.py.
When starting from OpenAPI or FastAPI, bootstrap first, then map endpoints to MCP primitives:
scripts/assess_api_for_mcp.py.Resources, Tools, and Prompts.Use the fastmcp_docs MCP server for up-to-date framework details.
Suggested queries:
FastMCP quickstart server exampleFastMCP tools resources prompts best practicesFastMCP RouteMap TransformFastMCP from OpenAPIFastMCP from FastAPI--force is set.uv and git unless git initialization was explicitly disabled.--initial-commit is combined with --no-git-init.scripts/init_fastmcp_service.sh.bootstrap-python-service when the user wants FastAPI-only output.bootstrap-uv-python-workspace directly only when FastMCP-specific behavior is not wanted.integrate-fastapi-fastmcp when the user needs to fold this FastMCP output into an existing FastAPI app, mount an MCP server into FastAPI, or promote generated FastAPI-derived MCP output into a curated combined architecture.Use $bootstrap-python-mcp-service.
Scope boundaries:
- Work only inside <REPO_PATH>.
- Create or validate scaffold output only in <TARGET_PATH>.
- Restrict work to scaffold generation, optional mapping report generation, and verification.
Task:
1. If <MODE:PROJECT|WORKSPACE> is PROJECT, run:
`scripts/init_fastmcp_service.sh --name <MCP_SERVICE_NAME> --mode project --path <TARGET_PATH> --python <PYTHON_VERSION> <FORCE_FLAG> <GIT_INIT_MODE>`
2. If <MODE:PROJECT|WORKSPACE> is WORKSPACE, run:
`scripts/init_fastmcp_service.sh --name <MCP_SERVICE_NAME> --mode workspace --path <TARGET_PATH> --python <PYTHON_VERSION> --members "<MEMBERS_CSV>" --profile-map "<PROFILE_MAP>" <FORCE_FLAG> <GIT_INIT_MODE>`
3. If <GENERATE_MAPPING_REPORT:TRUE|FALSE> is TRUE:
- If <MAPPING_INPUT_MODE:NONE|OPENAPI|FASTAPI_IMPORT> is OPENAPI, run:
`uv run scripts/assess_api_for_mcp.py --openapi <MAPPING_INPUT_PATH> --out <TARGET_PATH>/mcp_mapping_report.md`
- If <MAPPING_INPUT_MODE:NONE|OPENAPI|FASTAPI_IMPORT> is FASTAPI_IMPORT, run:
`uv run scripts/assess_api_for_mcp.py --fastapi <MAPPING_INPUT_PATH> --out <TARGET_PATH>/mcp_mapping_report.md`
4. Run verification checks in <TARGET_PATH>:
- `uv run pytest`
- `uv run ruff check .`
- `uv run mypy .`
Output contract:
1. STATUS: PASS or FAIL
2. COMMANDS: exact commands executed
3. RESULTS: concise outcomes for scaffold and checks
4. If report generated: include report path
5. If FAIL: provide likely root cause and minimal remediation
codex exec --full-auto --sandbox workspace-write --cd "<REPO_PATH>" "<PROMPT_BODY>"
<PROMPT_BODY> template:
Use $bootstrap-python-mcp-service.
Scope is limited to scaffold generation in <TARGET_PATH>, optional mapping report generation, and verification checks.
Run only commands needed for this flow, then return STATUS, exact command transcript, concise results, and minimal remediation if failures occur.
<REPO_PATH><MCP_SERVICE_NAME><MODE:PROJECT|WORKSPACE><TARGET_PATH><PYTHON_VERSION><MEMBERS_CSV><PROFILE_MAP><FORCE_FLAG><GIT_INIT_MODE><MAPPING_INPUT_MODE:NONE|OPENAPI|FASTAPI_IMPORT><MAPPING_INPUT_PATH><GENERATE_MAPPING_REPORT:TRUE|FALSE>--config profile file.codex/profiles/bootstrap-python-mcp-service/customization.yaml~/.config/gaelic-ghost/python-skills/bootstrap-python-mcp-service/customization.yaml--bypassing-all-profiles--bypassing-repo-profile--deleting-repo-profilereferences/interactive-customization.md for schema and examples.references/mcp-mapping-guidelines.mdreferences/fastmcp-docs-lookup.mdreferences/customization.mdreferences/interactive-customization.mdscripts/init_fastmcp_service.shscripts/assess_api_for_mcp.pybootstrap-uv-python-workspace.assets/README.md.tmplnpx claudepluginhub gaelic-ghost/socket --plugin python-skillsCreates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.