CS

CSV Editor MCP Server for AI Data Manipulation

Transform AI workflows with an MCP server that enables Claude, ChatGPT, and other assistants to manipulate CSV data via simple commands.

Overview

CSV Editor is an MCP (Model Context Protocol) server that lets AI assistants (Claude, ChatGPT, and others that speak MCP) directly manipulate tabular data. Instead of having an assistant return instructions that you must translate into spreadsheet operations, CSV Editor exposes a collection of programmatic CSV/dataframe tools that the assistant can call as operations. This makes data cleaning, transformation, validation, profiling, and export workflows safe, auditable, and repeatable.

Designed for developers who want to integrate data-aware assistants into their tooling, the server supports large files through chunked processing, session-based isolation for multiple users, auto-save strategies, and full undo/redo history. The project source and examples are available on GitHub: https://github.com/santoshray02/csv-editor.

Features

  • MCP-native server: expose data operations to any MCP-compatible assistant.
  • 40+ tools for CSV and tabular operations (load, filter, group, join, pivot, export).
  • Multi-format IO: CSV, JSON, Excel, Parquet, HTML, Markdown.
  • Data cleaning utilities: remove duplicates, type coercion, missing value imputation.
  • Analysis utilities: descriptive statistics, correlation, outlier detection, profiling.
  • Validation: schema checks, pattern validation, quality scoring.
  • Session management: multi-user isolated sessions with snapshots.
  • History and recovery: full undo/redo with snapshot diffs.
  • Auto-save strategies: configurable automatic persistence and export.
  • Performance: streaming/chunked processing for GB+ datasets via Pandas-backed operations.

Key differentiators (quick comparison)

CapabilityCSV Editor (MCP)Traditional tools
AI integrationNative MCP operations callable by assistantsManual file handoff or plugin scripts
HistoryFull undo/redo, snapshots per sessionTypically none or limited
Multi-user sessionsIsolated sessions per userSingle-user files
Auto-saveConfigurable automatic strategiesManual saves required
Large filesChunked/stream processingMemory-limited on large files
Validation & scoringBuilt-in schema & quality checksExternal tools required

Installation / Configuration

Install and run locally or install via Smithery for direct integration with some assistant clients.

Install with Smithery (for Claude Desktop integrations)

npx -y @smithery/cli install @santoshray02/csv-editor --client claude

Quick local run (recommended fast path)

# Optional: install uv runtime if not present
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone and run
git clone https://github.com/santoshray02/csv-editor.git
cd csv-editor
uv sync
uv run csv-editor

Example Claude Desktop MCP configuration (macOS)

{
  "mcpServers": {
    "csv-editor": {
      "command": "uv",
      "args": ["tool", "run", "csv-editor"],
      "env": {
        "CSV_MAX_FILE_SIZE": "1073741824"
      }
    }
  }
}

Other clients (Continue, Cline, Windsurf, Zed) should be configured using an MCP client config file. See the repository’s MCP_CONFIG.md for step-by-step examples.

Available Tools

CSV Editor exposes a collection of tools grouped by purpose. The assistant can call these tools via MCP messages to perform deterministic operations.

Examples of tool categories:

  • IO: load_csv, load_csv_from_url, export_csv, export_parquet, export_json
  • Cleaning: remove_duplicates, fill_missing_values, change_column_type
  • Transformation: filter_rows, add_computed_column, group_by_aggregate, join_tables
  • Analysis: get_statistics, get_correlation_matrix, detect_outliers, profile_table
  • Validation: validate_schema, check_data_quality, find_anomalies
  • Session & History: snapshot, undo, redo, list_sessions

Common tool examples (semantic summary)

CommandWhat it does
load_csv(“file.csv”)Load CSV into a new session and return session id
filter_rows(condition)Filter rows matching conditions, stored as a new snapshot
get_statistics(columns=[…])Return descriptive stats for selected columns
export_csv(format=“excel”, file_path=“out.xlsx”)Export session to specified format

Note: The server keeps a history of operations as snapshots — operations are non-destructive until exported or persisted by the configured auto-save strategy.

Use Cases

Data analyst workflow

# (Assistant-driven sequence)
session = load_csv("daily_sales.csv")
remove_duplicates(session_id=session.id)
change_column_type(session.id, "date", "datetime")
fill_missing_values(session.id, strategy="median", columns=["revenue"])
get_statistics(session.id, columns=["revenue", "quantity"])
export_csv(session.id, format="excel", file_path="clean_sales.xlsx")

ETL pipeline (assistant coordinates multi-step transform)

load_csv_from_url("https://api.example.com/data.csv", session_id="ingest-1")
filter_rows(session_id="ingest-1", conditions=[{"column":"status","operator":"==","value":"active"}])
add_computed_column(session_id="ingest-1", name="quarter", formula="Q{(month-1)//3 + 1}")
export_parquet(session_id="ingest-1", output_path="warehouse/quarterly.parquet")

Data quality and validation

validate_schema(session.id, schema={
  "customer_id": {"type":"integer","required":True},
  "email": {"type":"string","pattern":"^[^@]+@[^@]+\\.[^@]+$"}
})
quality_report = check_data_quality(session.id)
# quality_report includes missing %, duplicates, outliers, overall score

Available Resources

  • Source code and issues: https://github.com/santoshray02/csv-editor
  • MCP reference and client examples: see MCP_CONFIG.md in the repo
  • Runtime: Python 3.8+ with Pandas; uses FastMCP for MCP handling

If you’re integrating this with an assistant, configure a dedicated MCP server entry in your assistant client and experiment with small datasets to learn the tool names and snapshot behavior before processing large production data.