Skip to main content

Add your description here

Project description

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)

Project details


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

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file iflow_mcp_dataworkshop_simple_mcp_server-0.1.0.tar.gz.

File metadata

File hashes

Hashes for iflow_mcp_dataworkshop_simple_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a0559e3f3cf701ddf0715df68002611c7774d48564aa0a583269b34e6067c683
MD5 44df361e4918f34247a0f8b312ae36f2
BLAKE2b-256 ab92dbb9efd450212a7a45dfa35bc1173753a541d471200bc3d96d6caf30dd8c

See more details on using hashes here.

File details

Details for the file iflow_mcp_dataworkshop_simple_mcp_server-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for iflow_mcp_dataworkshop_simple_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd95e642e3546a0a0b28bc0cfef6fb3943309a4e54f109465e615628e05fae2d
MD5 5ca055fb10b15044012664ce3b5e083b
BLAKE2b-256 115c3c5a7f5778fe8d2066e0376caa6dc6a2e0bf4eadadc369271a051c8280db

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page