Scaffolds production-ready MCP servers in Python using FastMCP, handling the full cycle from tool definitions to deployment. Walks through defining tools, resources, and prompts, then generates proper module-level server instances (critical for FastMCP Cloud), adds type annotations for schema generation, and runs pre-deploy checks for common failures like hardcoded secrets or malformed requirements files. Includes test harnesses using the FastMCP client and deployment configs for Cloud, Docker, and self-hosted setups. The troubleshooting table is genuinely useful since FastMCP's module-level requirement and async patterns trip people up constantly. Covers companion CLI scripts for richer terminal workflows that complement MCP's structured interface.

skills.sh installs
1.4K
GitHub stars
1.1K
last updated
Aug 21, 2026

Install

$ npx -y skills add jezweb/claude-skills --skill mcp-builder --agent claude-code

Installs into .claude/skills of the current project.

Files

MCP Builder

Build a working MCP server from a description of the tools you need. Produces a deployable Python server using FastMCP.

Workflow

Step 1: Define What to Expose

Ask what the server needs to provide:

  • Tools -- Functions Claude can call (API wrappers, calculations, file operations)
  • Resources -- Data Claude can read (database records, config, documents)
  • Prompts -- Reusable prompt templates with parameters

A brief like "MCP server for querying our customer database" is enough.

Step 2: Scaffold the Server

pip install fastmcp

Create the server file. The server instance MUST be at module level:

from fastmcp import FastMCP

# MUST be at module level for FastMCP Cloud
mcp = FastMCP("My Server")

@mcp.tool()
async def search_customers(query: str) -> str:
    """Search customers by name or email."""
    # Implementation here
    return f"Found customers matching: {query}"

@mcp.resource("customers://{customer_id}")
async def get_customer(customer_id: str) -> str:
    """Get customer details by ID."""
    return f"Customer {customer_id} details"

if __name__ == "__main__":
    mcp.run()

Sponsors

Details

Repository
github.com/jezweb/claude-skills
Categories
Backend & APIs, Testing & QA, Security, DevOps & CI/CD, AI & Agent Building, Release Management, Debugging, Python, Cloud & Infrastructure
First seen
May 16, 2026

More from jezweb/claude-skills

All 166
1ruvnet avatarsecurity-auditruvnet/rufloComprehensive security scanning and vulnerability detection. Includes input validation, path traversal prevention, CVE detection, and secure coding pattern enfo1.4Kskills.sh installs
2mcollina avataroauthmcollina/skillsImplements OAuth 2.0/2.1 authorization flows in Fastify applications — configures authorization code with PKCE, client credentials, device flow, refresh token r1.4Kskills.sh installs
3knowsuchagency avatarmcp2cliknowsuchagency/mcp2cliTurn any MCP server, OpenAPI spec, or GraphQL endpoint into a CLI. Use this skill when the user wants to interact with an MCP server, OpenAPI/REST API, or Graph1.4Kskills.sh installs
4jezweb avatarshopify-productsjezweb/claude-skillsCreate and manage Shopify products via the Admin GraphQL API or CSV import. Workflow: gather data, choose method, execute, verify. Use whenever the user wants t1.4Kskills.sh installs
5upstash avatardocumentation-lookupupstash/context7This skill should be used when the user asks about libraries, frameworks, API references, or needs code examples. Activates for setup questions, code generation1.4Kskills.sh installs
6binance avatarconvertbinance/binance-skills-hubBinance Convert request using the Binance API. Authentication requires API key and secret key.1.3Kskills.sh installs