AA

alejandro-ao/mcp-streamable-http

Developer tools
31ย stars 0 forks Quality 90 Trend 90

๐Ÿ“ : MCP Servers over Streamable HTTP (Step-by-Step)

Overview

๐Ÿ“ : MCP Servers over Streamable HTTP (Step-by-Step)

README

MCP Servers over Streamable HTTP โ€” Step-by-Step Guide

๐Ÿ“ Read the full article here: MCP Servers over Streamable HTTP (Step-by-Step)


This repository contains a complete, working example of how to build and run an MCP (Model Context Protocol) server using Python, mcp, and FastAPI. Youโ€™ll learn how to:

  • Expose tools and functions over HTTP using the MCP protocol
  • Connect those tools to AI assistants like Cursor
  • Use streamable HTTP as the transport
  • Mount multiple MCP servers in a FastAPI app

๐Ÿ“ Folder Structure

.
โ”œโ”€โ”€ docs/                        # Diagrams and assets (e.g., mcp-client-server.png)
โ”œโ”€โ”€ fastapi_example/            # Example mounting multiple MCP servers in FastAPI
โ”‚   โ”œโ”€โ”€ echo_server.py          # A server exposing a simple echo tool
โ”‚   โ”œโ”€โ”€ math_server.py          # A server exposing a math tool
โ”‚   โ””โ”€โ”€ server.py               # FastAPI app that mounts both echo and math servers
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ .python-version             # Python version (for tools like pyenv or uv)
โ”œโ”€โ”€ pyproject.toml              # Project config and dependencies
โ”œโ”€โ”€ readme.md                   # You're here!
โ”œโ”€โ”€ runtime.txt                 # Python runtime for platforms like Render
โ”œโ”€โ”€ server.py                   # Basic standalone MCP server using Tavily search
โ”œโ”€โ”€ uv.lock                     # Lockfile for uv dependency manager

โธป

๐Ÿ›  Quickstart

  1. Install uv (recommended Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Install dependencies and set up environment
uv venv && source .venv/bin/activate
uv pip install -r pyproject.toml
  1. Run the basic MCP server This uses the Tavily API to expose a simple web_search tool.
uv run server.py
  1. Run the FastAPI app with multiple MCP servers
uv run fastapi_example/server.py

This will mount:

โธป

๐Ÿงช Debug with MCP Inspector

  1. Install CLI support
uv add 'mcp[cli]'
  1. Launch the inspector
uv run mcp dev server.py

Then go to: http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=...

โธป

๐Ÿ”Œ Connect to Cursor

In Cursor, add your MCP server under Chat Settings > MCP Servers:

{
  "mcpServers": {
    "tavily": {
      "url": "http://localhost:8000/mcp/"
    }
  }
}

โœ… Note: You must include the trailing / in the URL.

โธป

View this README on GitHub

Install

This server does not publish a one-line install command.

Open the repository installation guide

Configuration

{ "mcpServers": { "tavily": { "url": "http://localhost:8000/mcp/" } } }