
Python Mcp Server Generator
Scaffold a production-ready Python MCP server with tools, transport choice, and uv-based project layout so your coding agent can call your APIs.
Overview
Python MCP Server Generator is an agent skill for the Build phase that scaffolds a complete Python MCP server with uv, FastMCP, typed tools, and stdio or HTTP transport.
Install
npx skills add https://github.com/github/awesome-copilot --skill python-mcp-server-generatorWhat is this skill?
- Bootstraps projects with uv init and mcp[cli] dependencies
- Supports stdio (local) and streamable-http (remote) transports via FastMCP
- Enforces @mcp.tool() decorators with type hints and docstring-driven schemas
- Includes Pydantic/TypedDict structured outputs and async I/O patterns
- Covers error handling, validation, .gitignore, and __main__ entry execution
- 5 implementation requirement areas: structure, dependencies, transport, tools, error handling
Adoption & trust: 9.6k installs on skills.sh; 34.6k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want agents to call your logic over MCP but lack a consistent Python project layout, SDK wiring, and tool schema patterns.
Who is it for?
Solo builders shipping custom agent tools or internal APIs as MCP servers on Python with uv.
Skip if: Teams that only need a one-off script with no MCP exposure, or non-Python stacks where another generator fits better.
When should I use this skill?
You need a new Python MCP server project with tools, resources, and proper uv-based configuration.
What do I get? / Deliverables
You get an executable MCP server repo with dependencies, decorated tools, transport config, and validation hooks ready to extend and deploy.
- uv-initialized MCP project tree
- server.py with FastMCP and decorated tools
- Python .gitignore and runnable __main__ entry
Recommended Skills
Journey fit
MCP servers are built during the product phase when you wire custom capabilities into Claude Code, Cursor, or Codex. Canonical shelf is agent-tooling because the deliverable is an MCP server package, not app UI or generic backend CRUD.
How it compares
Use instead of copying random MCP snippets—this skill enforces uv structure, FastMCP patterns, and schema-first tools in one pass.
Common Questions / FAQ
Who is python-mcp-server-generator for?
Indie developers and small teams building agent-facing integrations in Python who want a repeatable MCP server starter.
When should I use python-mcp-server-generator?
During Build agent-tooling when you need a new MCP server; after you have a clear tool idea and before you harden auth, hosting, and CI.
Is python-mcp-server-generator safe to install?
Review the Security Audits panel on this Prism page and inspect generated shell commands and network exposure before running in production.
SKILL.md
READMESKILL.md - Python Mcp Server Generator
# Generate Python MCP Server Create a complete Model Context Protocol (MCP) server in Python with the following specifications: ## Requirements 1. **Project Structure**: Create a new Python project with proper structure using uv 2. **Dependencies**: Include mcp[cli] package with uv 3. **Transport Type**: Choose between stdio (for local) or streamable-http (for remote) 4. **Tools**: Create at least one useful tool with proper type hints 5. **Error Handling**: Include comprehensive error handling and validation ## Implementation Details ### Project Setup - Initialize with `uv init project-name` - Add MCP SDK: `uv add "mcp[cli]"` - Create main server file (e.g., `server.py`) - Add `.gitignore` for Python projects - Configure for direct execution with `if __name__ == "__main__"` ### Server Configuration - Use `FastMCP` class from `mcp.server.fastmcp` - Set server name and optional instructions - Choose transport: stdio (default) or streamable-http - For HTTP: optionally configure host, port, and stateless mode ### Tool Implementation - Use `@mcp.tool()` decorator on functions - Always include type hints - they generate schemas automatically - Write clear docstrings - they become tool descriptions - Use Pydantic models or TypedDicts for structured outputs - Support async operations for I/O-bound tasks - Include proper error handling ### Resource/Prompt Setup (Optional) - Add resources with `@mcp.resource()` decorator - Use URI templates for dynamic resources: `"resource://{param}"` - Add prompts with `@mcp.prompt()` decorator - Return strings or Message lists from prompts ### Code Quality - Use type hints for all function parameters and returns - Write docstrings for tools, resources, and prompts - Follow PEP 8 style guidelines - Use async/await for asynchronous operations - Implement context managers for resource cleanup - Add inline comments for complex logic ## Example Tool Types to Consider - Data processing and transformation - File system operations (read, analyze, search) - External API integrations - Database queries - Text analysis or generation (with sampling) - System information retrieval - Math or scientific calculations ## Configuration Options - **For stdio Servers**: - Simple direct execution - Test with `uv run mcp dev server.py` - Install to Claude: `uv run mcp install server.py` - **For HTTP Servers**: - Port configuration via environment variables - Stateless mode for scalability: `stateless_http=True` - JSON response mode: `json_response=True` - CORS configuration for browser clients - Mounting to existing ASGI servers (Starlette/FastAPI) ## Testing Guidance - Explain how to run the server: - stdio: `python server.py` or `uv run server.py` - HTTP: `python server.py` then connect to `http://localhost:PORT/mcp` - Test with MCP Inspector: `uv run mcp dev server.py` - Install to Claude Desktop: `uv run mcp install server.py` - Include example tool invocations - Add troubleshooting tips ## Additional Features to Consider - Context usage for logging, progress, and notifications - LLM sampling for AI-powered tools - User input elicitation for interactive workflows - Lifespan management for shared resources (databases, connections) - Structured output with Pydantic models - Icons for UI display - Image handling with Image class - Completion support for better UX ## Best Practices - Use type hints everywhere - they're not optional - Return structured data when possible - Log to stderr (or use Context logging) to avoid stdout pollution - Clean up resources properly - Validate inputs early - Provide clear error messages - Test tools independently before LLM integration Generate a complete, production-ready MCP server with type safety, proper error handling, and comprehensive documentation.