mcp-pandas
Enables data analysis on CSV/Excel files using pandas. Supports profiling, column interpretation, sandboxed code execution, and interactive chart generation.
README

MCP Pandas
A modern Model Context Protocol server for pandas-based data analysis. Point it at a CSV/Excel file and it profiles the data, explains individual columns, runs sandboxed pandas code, and renders interactive charts.
Exposes 4 tools and 2 guided prompts. Functionality inspired by
marlonluo2018/pandas-mcp-server.
Requirements
- Python 3.10+
- uv (or Docker, for the containerized setup)
Installation
uv venv
uv pip install -e ".[dev]"
Running
The server supports two transports, selected via the MCP_TRANSPORT environment variable (see Configuration).
STDIO
The server speaks MCP over stdio by default (the transport used by most MCP clients such as Claude Desktop and Claude Code):
source .venv/bin/activate
mcp-pandas
Streamable HTTP
To serve over streamable HTTP instead:
source .venv/bin/activate
MCP_TRANSPORT=http mcp-pandas
The HTTP endpoint is then available at http://0.0.0.0:8080/mcp/.
Docker
Build the image and run it in HTTP mode (the image defaults to HTTP on port 8080):
docker build -t mcp-pandas .
docker run --rm -p 8080:8080 mcp-pandas
Override any setting at runtime with -e, e.g. a different port:
docker run --rm -p 9000:9000 -e MCP_PORT=9000 mcp-pandas
Configuration
| Variable | Default | Description |
|---|---|---|
MCP_TRANSPORT |
stdio |
Transport to use: stdio or http (streamable HTTP). |
MCP_HOST |
0.0.0.0 |
Host/interface to bind when using HTTP. Use 0.0.0.0 to expose it. |
MCP_PORT |
8080 |
Port to listen on when using HTTP. |
MCP_CHARTS_DIR |
charts |
Directory where generate_chartjs writes HTML files. |
Available Tools
| Tool | Description |
|---|---|
read_metadata |
Profile a CSV/Excel file: shape, dtypes, null counts, cardinality, sample values, quality warnings and suggested operations (samples the first 100 rows). |
interpret_column_data |
Full value distribution of one or more columns (scans the whole file). |
run_pandas_code |
Execute pandas code in a restricted sandbox; optionally preload a file as df. |
generate_chartjs |
Render an interactive Chart.js HTML file (bar, line, pie) from series data. |
Guided Prompts
| Prompt | Description |
|---|---|
explore_dataset |
Walks metadata → column analysis → pandas code → visualization. |
visualize_column |
Summarizes a single column and turns its distribution into a chart. |
run_pandas_code safety
The executed code runs with a replaced __builtins__ and a pattern filter. It
must assign its output to a variable named result, and constructs that escape
the sandbox are rejected: import, open, exec, eval, and references to
os/sys/subprocess/shutil/socket/dunder attributes. pd (pandas) and
np (numpy) are available; pass file_path to preload the data as df.
Limits
- Maximum input file size: 100 MB.
read_metadataprofiles the first 100 rows for speed.interpret_column_datareturns up to 200 distinct values per column.- Supported formats:
.csv,.tsv,.txt,.xlsx,.xls.
Project layout
src/mcp_pandas/
├── server.py # FastMCP instance, registration, transport entry point
├── loader.py # shared file loading, validation, memory optimization
├── utils.py # code-safety and column validation helpers
├── charting.py # Chart.js HTML generation
├── prompts.py # guided prompts
└── tools/ # one module per tool, each exposing register(mcp)
├── metadata.py
├── columns.py
├── execution.py
└── charts.py
Development
Testing
The suite writes fixture files to a temp directory and needs no network:
pytest
License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.