MCP Hub
Back to servers

MCP BMI Server Template

A lightweight FastAPI-based MCP server template that provides a BMI calculation tool using SSE for discovery. It is designed for easy deployment on platforms like Render and serves as a boilerplate for building custom MCP services.

Tools
1
Updated
Aug 12, 2025

MCP BMI Server Template (FastAPI + SSE)

A minimal Model Context Protocol (MCP) server exposing a single tool: bmiCalculator.

  • Discovery endpoint (SSE): GET /mcp
  • Invocation endpoint: POST /invoke
  • Health check: GET /healthz

Quick Start (local)

pip install -r requirements.txt
export API_KEY=changeme   # optional
uvicorn main:app --host 0.0.0.0 --port 10000

Test:

# Discover tools (SSE)
curl -N -H "Accept: text/event-stream" -H "x-api-key: changeme" http://localhost:10000/mcp

# Invoke tool
curl -X POST http://localhost:10000/invoke \
  -H "Content-Type: application/json" \
  -H "x-api-key: changeme" \
  -d '{"tool":"bmiCalculator","params":{"weight":70,"height":175,"unit":"cm"}}'

Docker

docker build -t mcp-bmi .
docker run -p 10000:10000 -e API_KEY=changeme mcp-bmi

Deploy to Render (example)

  • Create a new Web Service from this repo
  • Set environment variable API_KEY (optional but recommended)
  • The service will start with the Dockerfile

Your base URL will look like:

https://<your-service>.onrender.com

Use the MCP SSE endpoint:

https://<your-service>.onrender.com/mcp

MCP Host config example

{
  "mcpServers": {
    "bmiAgent": {
      "url": "https://<your-service>.onrender.com/mcp",
      "headers": {
        "x-api-key": "changeme"
      }
    }
  }
}

Project structure

.
├── main.py
├── requirements.txt
├── Dockerfile
├── .gitignore
└── README.md

Notes

  • SSE (text/event-stream) is used for discovery. If your host requires WebSocket, add a /ws endpoint.
  • Extend by adding more tools in MCPHello.tools and dispatching in /invoke.

Reviews

No reviews yet

Sign in to write a review