Skip to main content
Glama
by hsiangjenli

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

  • https://gofastmcp.com/deployment/http

  • https://github.com/jlowin/fastmcp/issues/840

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
One-click Deploy
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hsiangjenli/mcp-slidev'

If you have feedback or need assistance with the MCP directory API, please join our Discord server