MCP Hub
Back to servers

Data Processing MCP Server

A FastMCP server for data processing tasks including CSV, JSON, text analysis, and numeric statistics, enabling users to parse, summarise, filter, convert, and analyze data through MCP tools.

glama
Updated
Apr 28, 2026

Data Processing MCP Server

A FastMCP 3.0 server exposing data-processing tools, resources, and prompts over HTTP.


Quick Start

1. Install dependencies

pip install -r requirements.txt

2. Run the server

# Simple one-liner (stdio→http)
python server.py

# Or via the FastMCP CLI
fastmcp run server.py:mcp --transport http --port 8000

The server starts at http://localhost:8000/mcp


Tools

CSV

ToolDescription
parse_csvParse CSV text → list of dicts
summarise_csvDescriptive statistics for every numeric column
filter_csv_rowsReturn rows where column == value
csv_to_jsonConvert CSV → JSON array string

JSON

ToolDescription
flatten_jsonFlatten nested JSON with dot-notation keys
json_to_csvConvert a JSON array of objects → CSV
extract_json_keysList every unique key path in a JSON document

Text

ToolDescription
word_frequencyTop-N word counts in plain text
text_statisticsCharacters, words, sentences, paragraphs
find_and_replaceFind & replace with an optional case-insensitive mode

Numeric

ToolDescription
compute_statsMin, max, mean, median, stdev, variance for a list of numbers

Resources

URIDescription
info://serverServer metadata and capability map
examples://csvReady-to-use sample CSV string
examples://jsonReady-to-use sample nested JSON

Prompts

NameDescription
analyse_datasetFull end-to-end analysis workflow for any dataset
clean_and_convertData cleaning + format conversion workflow

Endpoints

PathMethodDescription
/mcpPOST/GETMCP protocol (StreamableHTTP)
/healthGETHealth check (always unauthenticated)

Production (Uvicorn + multiple workers)

# stateless_http=True is required for multi-worker setups
FASTMCP_STATELESS_HTTP=true uvicorn server:mcp.http_app() \
  --host 0.0.0.0 --port 8000 --workers 4

Or create app.py:

from server import mcp
app = mcp.http_app(stateless_http=True)   # for multi-worker deployments

Then:

uvicorn app:app --host 0.0.0.0 --port 8000 --workers 4

Connect from a client

import asyncio
from fastmcp import Client

client = Client("http://localhost:8000/mcp")

async def main():
    async with client:
        result = await client.call_tool("summarise_csv", {
            "csv_text": "name,score\nAlice,88\nBob,72\nCarol,95"
        })
        print(result)

asyncio.run(main())

Install into Claude Desktop

fastmcp install server.py:mcp --name "Data Processing Server"

Reviews

No reviews yet

Sign in to write a review