dataworkshop/simple-mcp-server
If you are the rightful owner of simple-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A simple Model Context Protocol (MCP) server built with FastMCP, featuring utility tools for UUID generation, temperature conversion, and text statistics.
Simple MCP Server
A simple Model Context Protocol (MCP) server built with FastMCP, featuring three utility tools.
Tools
- generate_uuid - Generates a random UUID (version 4 or 1)
- convert_temperature - Converts temperature between Celsius and Fahrenheit
- text_statistics - Calculates basic text statistics (characters, words, lines)
Installation
Install dependencies using uv:
uv sync
Usage
Running the Server
Start the MCP server with HTTP transport:
uv run server.py
The server will start on http://localhost:8000/mcp by default.
Testing with FastMCP Client
Run the FastMCP-based client:
uv run client_fastmcp.py
Testing with httpx Client
Run the pure httpx client (no MCP libraries required):
uv run client_httpx.py
Testing with curl Client
Run the bash script using only curl and jq:
./client_curl.sh
Requirements for curl client:
curl(for HTTP requests)jq(for JSON parsing)- Standard Unix tools (
grep,sed,awk,tr)
Project Structure
server.py- MCP server with three utility toolsclient_fastmcp.py- Client using FastMCP libraryclient_httpx.py- Client using only httpx for direct HTTP requestsclient_curl.sh- Bash script client using curl and jqmain.py- Original template file (not used)
Example Output
All three clients will:
- Connect to the server
- List available tools
- Test generate_uuid (generates a UUID v4)
- Test convert_temperature (converts 0°C to Fahrenheit → 32.0°F)
- Test text_statistics (counts characters, words, and lines in sample text)
Example:
Test 1: Generate UUID
Result: 98f99e94-7357-4dd4-85eb-76819fad3ada
Test 2: Convert temperature (0°C to Fahrenheit)
Result: 32.0
Test 3: Text statistics
Result: {"characters":47,"words":9,"lines":3}
Technical Details
- Transport: Streamable HTTP (MCP protocol over HTTP)
- Endpoint:
/mcp - Response Format: Server-Sent Events (SSE)
- Session Management: Server assigns session ID via
Mcp-Session-Idheader
Client Implementations
-
FastMCP Client (
client_fastmcp.py):- Uses official MCP Python SDK
- Handles SSE automatically
- Full protocol support
-
httpx Client (
client_httpx.py):- Pure Python with only httpx dependency
- Manual JSON-RPC implementation
- Custom SSE parsing
-
curl Client (
client_curl.sh):- Bash script using curl and jq
- Demonstrates raw HTTP requests
- No Python dependencies required
Requirements
- Python 3.13+
- fastmcp
- httpx (included as fastmcp dependency)