Best for
- Use when building, extending, or debugging FastMCP v3 Python MCP servers.
Jamie-BitFlight/claude_skills/plugins/fastmcp-creator/skills/fastmcp-creator/SKILL.md
Use when building, extending, or debugging FastMCP v3 Python MCP servers. Activates on FastMCP tool/resource/prompt creation, provider and transform implementation (CodeMode, Tool Search), auth setup (MultiAuth, PropelAuth, KeycloakProvider), client SDK usage, FastMCPApp and Generative UI server building, fastmcp-slim client-only installs, nginx reverse proxy deployment, Prefab Apps, OTEL observability, and testing. Grounded in local v3.3 docs — zero speculation.
Decision brief
!python3 --version 2/dev/null || python --version 2/dev/null || echo "Python not found in PATH"
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/Jamie-BitFlight/claude_skills --skill "plugins/fastmcp-creator/skills/fastmcp-creator"Inspect the Agent Skill "fastmcp-creator" from https://github.com/Jamie-BitFlight/claude_skills/blob/b70ba8737e664d9e2482912e3ddbe7ecb77e0539/plugins/fastmcp-creator/skills/fastmcp-creator/SKILL.md at commit b70ba8737e664d9e2482912e3ddbe7ecb77e0539. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
!python3 --version 2/dev/null || python --version 2/dev/null || echo "Python not found in PATH"
When user intent matches, load the reference file listed — do not rely on training data for v3 API facts.
Review the “Choose Provider Type” section in the pinned source before continuing.
Review the “Choose Transport” section in the pinned source before continuing.
Review the “Choose Auth Approach” section in the pinned source before continuing.
Permission review
The documentation asks the agent to read local files, directories, or repositories.
When user intent matches, load the reference file listed — do not rely on training data for v3 API facts.The documentation includes network, browsing, or remote request actions.
Q1 -->|Wrap remote HTTP MCP server| PC["ProxyProvider<br>create_proxy('http://remote/mcp')<br>Source: providers/proxy.mdx"]Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 95/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 64 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Python version:
!python3 --version 2>/dev/null || python --version 2>/dev/null || echo "Python not found in PATH"
Installed FastMCP version:
!uv run python -c "import fastmcp; print(f'FastMCP {fastmcp.__version__}')" 2>/dev/null || echo "FastMCP not installed — run: uv add 'fastmcp>=3.0' before scaffolding"
When user intent matches, load the reference file listed — do not rely on training data for v3 API facts.
| User intent | v3 feature | Reference file |
|---|---|---|
| Build a new FastMCP server | FastMCP(), @mcp.tool, @mcp.resource | ./references/server-core.md |
| Compose multiple servers | mount(), namespace, providers | ./references/providers.md |
| Bridge remote HTTP server to stdio | ProxyProvider, create_proxy() | ./references/providers.md |
| Serve files or skills as resources | FileSystemProvider, SkillsProvider | ./references/providers.md |
| Rename or filter tools from sub-server | ToolTransform, Namespace | ./references/transforms.md |
| Expose resources as tools | ResourcesAsTools | ./references/transforms.md |
| Search/discover tools in large catalogs | BM25SearchTransform, RegexSearchTransform | ./references/transforms.md |
| Sandbox tool execution via Python scripts | CodeMode (experimental) | ./references/transforms.md |
| Add authentication to a server | require_scopes, OAuth variants | ./references/auth.md |
| Mix OAuth + JWT token verifiers | MultiAuth | ./references/auth.md |
| Use PropelAuth for auth | PropelAuthProvider | ./references/auth.md |
| Write a FastMCP client | Client, transports, BearerAuth | ./references/client-sdk.md |
| Run long tasks without blocking | @mcp.tool(task=True) | ./references/advanced.md |
| Add multi-turn user input to a tool | Elicitation API | ./references/advanced.md |
| Deploy to production | Prefect Horizon, HTTP, stdio, nginx | ./references/deployment.md |
| Deploy behind nginx reverse proxy | SSE config, TLS, subpath mounting | ./references/deployment.md |
| Write tests for a FastMCP server | In-memory Client, pytest patterns | ./references/testing.md |
| Integrate with Anthropic/OpenAI/FastAPI | Integration patterns | ./references/integrations.md |
| Migrate from FastMCP v2 | Breaking changes, syntax fixes | ./references/migration.md |
| Add web UI to a server | Apps HTML API, Prefab Apps | ./references/apps.md |
| Return interactive UI from tools | @mcp.tool(app=True), PrefabApp | ./references/advanced.md |
| Add request/response middleware | Middleware, built-in middleware | ./references/middleware.md |
| Find real-world usage patterns | ProxyProvider, mount(), showcase | ./references/real-world-patterns.md |
| Evaluate MCP server quality | Evaluation harness, QA pairs | ./references/evaluation-guide.md |
| Build interactive app server with UI tools | FastMCPApp, @app.ui(), @app.tool() | ./references/apps.md |
| LLM writes custom UI at runtime | Generative UI | ./references/apps.md |
| Use Keycloak for enterprise auth | KeycloakProvider | ./references/auth.md |
| Install client-only, no server deps | fastmcp-slim | ./references/client-sdk.md |
| Preview app tools in browser without MCP host | fastmcp dev apps | ./references/deployment.md |
| Add OTEL tracing to a server | OTEL instrumentation | ./references/observability.md |
| Configure persistent cache or OAuth state storage | storage backends | ./references/middleware.md |
flowchart TD
Q1{What do you need?}
Q1 -->|Define tools/resources in this server| LC["LocalProvider — default<br>No mount() needed<br>Source: providers/local.mdx"]
Q1 -->|Add another FastMCP server's tools| MC["FastMCPProvider / mount()<br>mcp.mount(sub, namespace='ns')<br>Source: servers/composition.md"]
Q1 -->|Wrap remote HTTP MCP server| PC["ProxyProvider<br>create_proxy('http://remote/mcp')<br>Source: providers/proxy.mdx"]
Q1 -->|Serve files from disk as resources| FC["FileSystemProvider('path/')<br>reload=True for dev, False for prod<br>Source: providers/filesystem.mdx"]
Q1 -->|Expose Claude/Cursor skill files| SC["SkillsProvider / ClaudeSkillsProvider()<br>skill:// URI scheme<br>Source: providers/skills.mdx"]
Q1 -->|Build a custom provider| CC["Subclass Provider base class<br>Source: providers/custom.mdx"]
flowchart TD
Q1{How will clients connect?}
Q1 -->|Local tool in Claude Code / desktop app| ST["stdio — default<br>fastmcp run server.py:mcp<br>Source: deployment/running-server.mdx"]
Q1 -->|Web service or multi-client| HT["HTTP transport<br>mcp.run(transport='http', port=8000)<br>Source: deployment/http.mdx"]
Q1 -->|Testing — in-process| IT["In-memory transport<br>async with Client(mcp) as client<br>Source: patterns/testing.mdx"]
Q1 -->|Managed cloud deployment| PH["Prefect Horizon<br>fastmcp run via GitHub integration<br>Source: deployment/prefect-horizon.mdx"]
flowchart TD
Q1{Auth requirement?}
Q1 -->|No auth needed| NA["No auth — default FastMCP behavior"]
Q1 -->|Validate bearer tokens per tool| RS["require_scopes('scope')<br>@mcp.tool(auth=require_scopes('write'))<br>Source: servers/auth/token-verification.mdx"]
Q1 -->|Full OAuth2 server built-in| FO["Full OAuth server<br>Source: servers/auth/full-oauth-server.mdx"]
Q1 -->|Delegate to external IdP — Auth0, Azure| OP["OIDC proxy / OAuth proxy<br>Source: servers/auth/oidc-proxy.mdx"]
Q1 -->|Mix OAuth + JWT for hybrid clients| MA["MultiAuth — compose OAuth server<br>+ token verifiers (v3.1)<br>Source: servers/auth/multi-auth.mdx"]
Q1 -->|Use PropelAuth| PA["PropelAuthProvider<br>OAuth + token introspection (v3.1)<br>Source: integrations/propelauth.mdx"]
Q1 -->|Client calling protected server| CA["Client auth — BearerAuth / CIMDAuth / OAuthAuth<br>Source: clients/auth/*.mdx"]
from fastmcp import FastMCP
mcp = FastMCP("my-server")
@mcp.tool # RULE: no parentheses — v3 canonical syntax
def greet(name: str) -> str:
"""Return a greeting."""
return f"Hello, {name}!"
if __name__ == "__main__":
mcp.run()
from fastmcp import FastMCP
weather = FastMCP("weather")
main = FastMCP("main")
main.mount(weather, namespace="weather")
# Tools from weather become weather_<tool-name> on main
from fastmcp import FastMCP
mcp = FastMCP("task-server")
@mcp.tool(task=True) # RULE: task=True, NOT task=TaskConfig(...)
async def long_running(data: str) -> str:
"""Process data in background."""
return "done"
Before deploying: run in-process pytest using the in-memory Client transport (references/testing.md) before switching to HTTP transport. In-process tests are the fastest signal that tools behave as expected.
CONSTRAINT: These v2 patterns are deprecated or removed. Generate only the v3 form.
| v2 / wrong pattern | v3 correct pattern | Source | Why |
|---|---|---|---|
@mcp.tool() with parentheses | @mcp.tool without parentheses | quickstart.mdx | v3 unified tool config into constructor kwargs — per-decorator arguments removed |
task=TaskConfig(mode="required") | task=True | servers/tasks.mdx | TaskConfig replaced by runtime extra dependency |
require_auth | require_scopes("scope") | servers/authorization.mdx | v3 replaced binary auth flags with granular scope-based access control — require_scopes() specifies which scopes are required rather than just checking authentication |
.mcpb packaging | Prefect Horizon or stdio deploy | deployment/running-server.mdx | — |
ctx.get_state() / ctx.set_state() (synchronous) | await ctx.get_state() / await ctx.set_state() | getting-started/upgrading/from-fastmcp-2.md | State is now session-scoped and backed by a pluggable storage backend — calls must be awaited; the methods exist in v3 but are async |
All core features (tools, resources, prompts, providers, transforms, auth, tasks, elicitation, client SDK, deployment) are available in FastMCP 3.0.
The following features were added in FastMCP 3.1.0 and require fastmcp>=3.1.0:
BM25SearchTransform, RegexSearchTransform for large tool catalogsfastmcp[code-mode])transforms= kwarg — server-level FastMCP("name", transforms=[...]) constructor parameterPropelAuthProvider for PropelAuth OAuth + token introspection@mcp.tool(app=True) with declarative UI components (fastmcp[apps])-m/--module flag — fastmcp run -m my_package.server for module modeFASTMCP_TRANSPORT env var — default transport selection without CLI flaghttp_client parameter — connection pooling for token verifiersinclude_unversioned option in VersionFilterTool.from_tool() — immediate transformation at registration time [4]The following features were added in FastMCP 3.2 and require fastmcp>=3.2.0:
@app.ui()) from backend tools (@app.tool())fastmcp dev apps — browser preview for app tools without an MCP hostfastmcp realmrun_in_thread=False on @mcp.tool() — opt sync tools out of the default threadpool dispatch for thread-affine librariesssl verify parameter on Client — SSL certificate configuration for development with self-signed certsclient_log_level parameter on Client — control client-side log verbosityResponseCachingMiddleware token-partitioning security fix (v3.2.2) — cache now partitioned by access token; upgrade required for deployments with multiple users [5]The following features were added in FastMCP 3.3 and require fastmcp>=3.3.0:
fastmcp-slim[client] for consumers who only need the FastMCP client without the full server framework; import namespace is identical (from fastmcp import Client)All v3 reference files sourced from https://gofastmcp.com (published docs) and https://github.com/jlowin/fastmcp (source code):
FastMCP(), tools, resources, prompts, context, lifespan, transforms= kwargrequire_scopes, OAuth variants, token verification, MultiAuth, PropelAuth, http_client poolingClient, transports, BearerAuth, CIMD, OAuth, sampling, elicitation, fastmcp discover, fuzzy matchingFASTMCP_TRANSPORTPreserved references:
.mcp.json config, Claude Code deploymentSkill(skill: "fastmcp-creator:fastmcp-python-tests")fastmcp list / fastmcp call / fastmcp discover CLI usage:
Skill(skill: "fastmcp-creator:fastmcp-client-cli")Skill(skill: "python3-development:python3-development").mcp.json): ./references/claude-code-mcp-integration.mdFrequently asked questions
!python3 --version 2/dev/null || python --version 2/dev/null || echo "Python not found in PATH"
The source record exposes this install command: npx skills add https://github.com/Jamie-BitFlight/claude_skills --skill "plugins/fastmcp-creator/skills/fastmcp-creator". Inspect the command and pinned source before running it.
Static rules flagged read-files, network in the source; the page lists the matching lines and excerpts.
Alternatives
oaslananka/kicad-mcp-pro
Use this skill for GitHub Copilot pull request and code reviews in oaslananka/kicad-mcp-pro. Review Python MCP server changes, KiCad adapter and tool-contract changes, tests, npm/package wrappers, Tauri/Rust desktop code, GitHub Actions, security controls, documentation, generated metadata, and compatibility/release surfaces. Use it whenever reviewing a PR or diff in this repository, especially changes under src/, tests/, packages/, src-tauri/, .github/workflows/, or public MCP metadata/configur
wondelai/skills
Guided journey from a working-but-untested vibe-coded prototype to a production-ready product with tests, clean structure, a business-rules boundary, and resilience at scale. Orchestrates nine skills phase by phase - working-with-legacy-code, clean-code, refactoring-patterns, software-design-philosophy, clean-architecture, pragmatic-programmer, release-it, system-design, ddia-systems - asking the user questions at every decision point and recording results in the project docs/ folder (TESTING.md
wondelai/skills
Guided journey from a large aged codebase everyone fears to touch to one that is safe to change, legible, bounded, and resilient - paid down in place without a rewrite. Orchestrates eight skills phase by phase - working-with-legacy-code, refactoring-patterns, clean-code, software-design-philosophy, clean-architecture, pragmatic-programmer, release-it, domain-driven-design - asking the user questions at every decision point and recording results in the project docs/ folder (TESTING.md, TECH-DEBT.
MicrosoftDocs/Agent-Skills
Expert knowledge for Azure Pipelines development including troubleshooting, best practices, decision making, architecture & design patterns, limits & quotas, security, configuration, integrations & coding patterns, and deployment. Use when configuring YAML pipelines, service connections/Key Vault, multi-platform agents, Git/Slack integrations, or Web App/Kubernetes deployments, and other Azure Pipelines related development tasks. Not for Azure DevOps (use azure-devops), Azure Boards (use azure-b