Skip to main content
Glama

Demo HTTP MCP Server

test-http-mcp

Demo Model Context Protocol (MCP) server implemented in Python using the http-mcp package. It can run over HTTP (Starlette/Uvicorn) or over stdio, exposing example Tools and Prompts to any MCP-capable client.

Requirements

  • Python 3.13
  • uv (recommended) or pip

Install

Using uv (recommended):

uv run python -V # will create a venv and sync deps from pyproject

Using pip (alternative):

python3.13 -m venv .venv source .venv/bin/activate pip install .

Run (HTTP mode)

Starts a Starlette app and mounts the MCP server under /mcp on port 8000.

uv run run-app # → http://localhost:8000/mcp

Example .cursor/mcp.json:

{ "mcpServers": { "test-http-mcp": { "type": "http", "url": "http://localhost:8000/mcp/", "headers": { "Authorization": "Bearer $TEST_TOKEN" } } } }

Usage with Gemini:

{ "mcpServers": { "test": { "httpUrl": "http://localhost:8000/mcp/", "timeout": 5000, "headers": { "Authorization": "Bearer TEST_TOKEN" } } } }

Run (stdio mode)

Use with Cursor or other MCP clients

Example .cursor/mcp.json entry to connect via stdio:

{ "mcpServers": { "test_studio": { "command": "uv", "args": ["run", "run-stdio"], "env": { "AUTHORIZATION_TOKEN": "Bearer TEST_TOKEN" } } } }

What this server exposes

  • Tools (see app/tools.py):
    • get_weather(location: str, unit: str = "celsius") -> { weather: str }
    • get_time() -> { time: str }
    • tool_that_access_request(username: str) -> { message: str } (reads Authorization from the incoming request headers)
    • get_called_tools() -> { called_tools: string[] }
  • Prompts (see app/prompts.py):
    • get_advice(topic: str, include_actionable_steps: bool = false) → returns a single user message template

Project scripts

Two console entry points are defined in pyproject.toml:

  • run-appapp.main:run_http
  • run-stdioapp.main:run_stdio

Development

Common tasks (using uv):

uv run ruff check . # lint uv run mypy . # type check uv run pytest # tests uv run mdformat . # format markdown

Implementation notes

  • The Starlette app is defined in app/main.py and mounts http_mcp.server.MCPServer at /mcp.
  • Tool inputs/outputs are validated with Pydantic v2 models; async tool functions receive a typed ToolArguments with inputs, context, and (in HTTP mode) request.
  • A simple Context keeps track of called tool names during a session.

License

MIT — see LICENSE.

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

A demonstration MCP server that provides example tools for weather queries, time retrieval, and request handling, along with advice prompts. Supports both HTTP and stdio modes for testing MCP client integrations.

  1. Requirements
    1. Install
      1. Run (HTTP mode)
        1. Run (stdio mode)
          1. Use with Cursor or other MCP clients
            1. What this server exposes
              1. Project scripts
                1. Development
                  1. Implementation notes
                    1. License

                      Related MCP Servers

                      • -
                        security
                        A
                        license
                        -
                        quality
                        A test server implementing all features of the MCP protocol, including prompts, tools, resources, and sampling, designed for testing MCP clients rather than practical applications.
                        Last updated -
                        Python
                        MIT License
                      • -
                        security
                        F
                        license
                        -
                        quality
                        An MCP server implementation that allows users to fetch and display weather information for specified cities, including temperature, humidity, wind speed, and weather descriptions.
                        Last updated -
                        1
                        Python
                        • Linux
                        • Apple
                      • A
                        security
                        F
                        license
                        A
                        quality
                        A simple MCP server that provides a tool to fetch current weather information for cities using the Open-Meteo API, communicating through stdin/stdout.
                        Last updated -
                        1
                        2
                        TypeScript
                      • A
                        security
                        A
                        license
                        A
                        quality
                        mcp server for weather information query
                        Last updated -
                        2
                        Python
                        Apache 2.0

                      View all related MCP servers

                      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/yeison-liscano/demo_http_mcp'

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