CSV Insights MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | HTTP bind address | 127.0.0.1 |
| PORT | No | HTTP bind address | 3000 |
| MCP_AUTH_TOKEN | No | HTTP only: require Authorization: Bearer <token> | |
| CSV_INSIGHTS_DIR | No | The only folder files are read from | working directory |
| CSV_INSIGHTS_MAX_ROWS | No | Max rows | 500000 |
| CSV_INSIGHTS_MAX_BYTES | No | Max file size | 52428800 |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_csv_filesA | List .csv/.tsv files inside the allowed directory (recursive, max depth 4). |
| profile_csvA | Return row count and, per column: inferred type (number/date/boolean/string), empty count, distinct count, samples and min/max/mean. |
| query_csvA | SQL-like SELECT over a CSV: choose columns, WHERE conditions, ORDER BY, DISTINCT, LIMIT/OFFSET. Numeric-aware comparisons. Returns at most 1000 rows. |
| summarize_csvB | Descriptive statistics: sum/mean/median/std/quartiles for numeric columns, top values for text columns, plus plain-language highlights. |
| group_byB | GROUP BY one or more columns with aggregations (count, sum, mean, min, max, median, count_distinct). Sorted by the first metric descending unless 'sort' is given. |
| pivot_tableB | Cross-tabulate: one column as rows, another as columns, aggregating a value column. Max 50 output columns. |
| clean_previewA | Preview cleaning (trim whitespace, collapse spaces, drop empty rows, dedupe, case normalisation, number normalisation) without touching the source. Set save_as to write the cleaned copy to csv-insights-output/ (never overwrites). |
| create_chartA | Aggregate a CSV and render a bar or line chart as an SVG file in csv-insights-output/. Returns the file path and the plotted data. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Most tools have distinct purposes (list, query, group_by, pivot_table, clean_preview, create_chart), but summarize_csv and profile_csv both return per-column statistics and could be confused. Descriptions help distinguish them (plain-language highlights vs. type inference/samples), so overlap is manageable.
Consistent snake_case throughout, but verb placement varies: verb_noun (list_csv_files, summarize_csv, query_csv, create_chart) mixed with noun-style names (group_by, pivot_table) and an awkward clean_preview. Still readable and predictable enough.
Eight tools is well-scoped for a CSV insight server, and each tool covers a distinct analysis capability (profiling, stats, querying, grouping, pivoting, cleaning, charting). No filler tools.
Strong coverage of the read/analyze lifecycle (list, profile, summarize, query, group, pivot, clean, chart). Minor gaps: no way to export query/group results and no cross-file join, but the core analysis surface is solid.