csv-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CSV_MCP_ROOT | Yes | Absolute path to the CSV workspace directory | |
| CSV_MCP_MAX_ROWS | No | Maximum number of rows (default 1,000,000) | 1000000 |
| CSV_MCP_MAX_FILES | No | Maximum number of files (default 10,000) | 10000 |
| CSV_MCP_MAX_COLUMNS | No | Maximum number of columns (default 500) | 500 |
| CSV_MCP_MAX_FILE_SIZE | No | Maximum file size (default 50 MiB) | 50 MiB |
| CSV_MCP_MAX_FIELD_LENGTH | No | Maximum field length (default 1 MiB) | 1 MiB |
| CSV_MCP_MAX_RETURNED_ROWS | No | Maximum rows returned (default 1,000) | 1000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_csv_filesA | List CSV and TSV files below CSV_MCP_ROOT. |
| inspect_csvB | Inspect encoding, dialect, columns, types, malformed rows, and samples. |
| preview_csvC | Read a bounded page and optional subset of columns. |
| read_csvD | Backward-compatible alias for preview_csv. |
| query_csvC | Select, filter, and sort rows with controlled operators. |
| summarize_csvC | Group and aggregate with a fixed set of functions. |
| validate_csvB | Validate columns, row widths, types, required values, uniqueness, and categories. |
| compare_csvC | Compare two CSV files by unique key columns. |
| create_csvC | Create a CSV/TSV file with atomic output and formula-injection handling. |
| append_rowsC | Append validated rows to a new output file by default. |
| update_rowsC | Update filtered rows, returning a bounded change preview before optional output. |
| delete_rowsB | Delete filtered rows, requiring a non-empty filter and defaulting to dry-run. |
| clean_csvC | Trim, change case, and deduplicate selected columns. |
| merge_csvC | Concatenate matching files or join exactly two files by keys. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| files_resource | List available CSV files as JSON. |
TDQS
Scored across 14 tools
Each tool has a distinct purpose: listing, inspecting, previewing, querying, summarizing, validating, comparing, creating, appending, updating, deleting, cleaning, and merging CSV files. The only potential overlap is preview_csv and read_csv, but the description clarifies read_csv is a backward-compatible alias.
All tools follow a consistent verb_noun pattern in snake_case (e.g., list_csv_files, inspect_csv, query_csv). No mixed conventions or irregular naming.
14 tools is well within the ideal 3-15 range for a focused domain. Each tool addresses a specific CSV operation without redundancy, except the alias read_csv which is minimal.
Covers full CRUD lifecycle (create, read, query, update, delete) plus validation, comparison, cleaning, merging, and appending. Only minor gaps like renaming columns or exporting to other formats, but core CSV tasks are well-covered.