Skip to content

hsiangjenli/python-mcp-template

Repository files navigation

Python MCP Template

A DevOps-friendly template with CI/CD, Docker, and Documentation-as-Code (DaC) for building MCP server

πŸš€ Core Idea

This template leverages fastmcp and FastAPI to seamlessly integrate MCP functionality while inheriting the original OpenAPI specifications.

🌟 Features

  • CI/CD Integration: Automate your workflows with GitHub Actions.
  • Dockerized Environment: Consistent and portable development and production environments.
  • Documentation-as-Code: Automatically generate and deploy documentation using MkDocs. This process also utilizes the openapi.json file to ensure API documentation is up-to-date.
  • FastAPI Integration: Build robust APIs with OpenAPI support.

πŸ› οΈ Getting Started

Local Development

  1. Install dependencies:
uv sync
  1. Run the MCP server:
# stdio
uv run fastmcp run mcp_tools/main.py
# HTTP (Due to CORS middleware conflicts, additional setup is required)
uv run uvicorn mcp_tools.main_http:starlette_app --host 127.0.0.1 --port 8000

Docker

  1. Build the Docker image:

    docker build -t python-mcp-template:latest .
  2. Run the container:

    docker run -i --rm -p 8000:8000 python-mcp-template:latest
  3. Run MCP Server:

{
  "mcpServers": {
    "python-mcp-template": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-p",
        "8000:8000",
        "python-mcp-template:latest"
      ]
    }
  }
}

πŸ“š Documentation

  • Documentation is built using MkDocs and deployed to GitHub Pages.

  • To build the documentation locally:

    chmod +x scripts/build_docs.sh
    scripts/build_docs.sh
    mkdocs build

About

πŸš€ A DevOps-friendly template with CI/CD, Docker, and Documentation-as-Code (DaC) for building MCP server .

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published