The Demo HTTP MCP Server provides tools for data fetching, request handling, and session tracking, plus advice generation capabilities.
• Get Weather: Retrieve current weather for any location with customizable temperature units (celsius default)
• Get Current Time: Obtain the current time in standardized format
• Access Request Context: Interact with request headers (e.g., Authorization
) using a username parameter
• Track Tool Usage: View a list of all tools called during the current session
• Generate Advice: Get structured advice on topics with optional actionable steps
• Multiple Connectivity: Operates over HTTP (Starlette/Uvicorn) or stdio for broad MCP client compatibility
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) orpip
Install
Using uv
(recommended):
Using pip
(alternative):
Run (HTTP mode)
Starts a Starlette app and mounts the MCP server under /mcp
on port 8000.
Example .cursor/mcp.json
:
Usage with Gemini
:
Run (stdio mode)
Use with Cursor or other MCP clients
Example .cursor/mcp.json
entry to connect via stdio:
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 }
(readsAuthorization
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-app
→app.main:run_http
run-stdio
→app.main:run_stdio
Development
Common tasks (using uv
):
Implementation notes
- The Starlette app is defined in
app/main.py
and mountshttp_mcp.server.MCPServer
at/mcp
. - Tool inputs/outputs are validated with Pydantic v2 models; async tool
functions receive a typed
ToolArguments
withinputs
,context
, and (in HTTP mode)request
. - A simple
Context
keeps track of called tool names during a session.
License
MIT — see LICENSE
.
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.
- Requirements
- Install
- Run (HTTP mode)
- Run (stdio mode)
- Use with Cursor or other MCP clients
- What this server exposes
- Project scripts
- Development
- Implementation notes
- License
Related Resources
Related MCP Servers
- -securityFlicense-qualityAn 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
- AsecurityFlicenseAqualityA 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 -12
- AsecurityAlicenseAqualitymcp server for weather information queryLast updated -2Apache 2.0