Skip to main content

Simple MCP Server

A simple Model Context Protocol (MCP) server built with FastMCP, featuring three utility tools.

Tools

  1. generate_uuid - Generates a random UUID (version 4 or 1)
  2. convert_temperature - Converts temperature between Celsius and Fahrenheit
  3. 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 tools
  • client_fastmcp.py - Client using FastMCP library
  • client_httpx.py - Client using only httpx for direct HTTP requests
  • client_curl.sh - Bash script client using curl and jq
  • main.py - Original template file (not used)

Example Output

All three clients will:

  1. Connect to the server
  2. List available tools
  3. Test generate_uuid (generates a UUID v4)
  4. Test convert_temperature (converts 0°C to Fahrenheit → 32.0°F)
  5. 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-Id header

Client Implementations

  1. FastMCP Client (client_fastmcp.py):

    • Uses official MCP Python SDK
    • Handles SSE automatically
    • Full protocol support
  2. httpx Client (client_httpx.py):

    • Pure Python with only httpx dependency
    • Manual JSON-RPC implementation
    • Custom SSE parsing
  3. 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)

Metadata

Release files for iflow-mcp_dataworkshop-simple-mcp-server 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_dataworkshop-simple-mcp-server 0.1.0
File Size Uploaded
iflow_mcp_dataworkshop_simple_mcp_server-0.1.0.tar.gz 48.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_dataworkshop-simple-mcp-server 0.1.0
File Interpreter ABI Platform
iflow_mcp_dataworkshop_simple_mcp_server-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 99.4 kB

Release files / iflow_mcp_dataworkshop_simple_mcp_server-0.1.0.tar.gz

Download URL iflow_mcp_dataworkshop_simple_mcp_server-0.1.0.tar.gz
Size 48.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a0559e3f3cf701ddf0715df68002611c7774d48564aa0a583269b34e6067c683
BLAKE2b-256 checksum
How to use checksums
ab92dbb9efd450212a7a45dfa35bc1173753a541d471200bc3d96d6caf30dd8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.8

Release files / iflow_mcp_dataworkshop_simple_mcp_server-0.1.0-py3-none-any.whl

Download URL iflow_mcp_dataworkshop_simple_mcp_server-0.1.0-py3-none-any.whl
Size 50.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cd95e642e3546a0a0b28bc0cfef6fb3943309a4e54f109465e615628e05fae2d
BLAKE2b-256 checksum
How to use checksums
115c3c5a7f5778fe8d2066e0376caa6dc6a2e0bf4eadadc369271a051c8280db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.8

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page