Add your description here
Project description
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)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_mcp_dataworkshop_simple_mcp_server-0.1.0.tar.gz.
File metadata
- Download URL: iflow_mcp_dataworkshop_simple_mcp_server-0.1.0.tar.gz
- Upload date:
- Size: 48.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0559e3f3cf701ddf0715df68002611c7774d48564aa0a583269b34e6067c683
|
|
| MD5 |
44df361e4918f34247a0f8b312ae36f2
|
|
| BLAKE2b-256 |
ab92dbb9efd450212a7a45dfa35bc1173753a541d471200bc3d96d6caf30dd8c
|
File details
Details for the file iflow_mcp_dataworkshop_simple_mcp_server-0.1.0-py3-none-any.whl.
File metadata
- Download URL: iflow_mcp_dataworkshop_simple_mcp_server-0.1.0-py3-none-any.whl
- Upload date:
- Size: 50.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd95e642e3546a0a0b28bc0cfef6fb3943309a4e54f109465e615628e05fae2d
|
|
| MD5 |
5ca055fb10b15044012664ce3b5e083b
|
|
| BLAKE2b-256 |
115c3c5a7f5778fe8d2066e0376caa6dc6a2e0bf4eadadc369271a051c8280db
|