Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-csv-analystShow me the total revenue grouped by region in /data/sales.csv"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-csv-analyst
MCP server for querying and analyzing CSV files
Give Claude (or any MCP client) the ability to load, query, filter, aggregate, and analyze CSV data.
Features
csv_describe - Load a CSV and get schema, row count, column types, and statistics
csv_filter - Filter rows by column conditions (eq, gt, lt, contains, etc.)
csv_aggregate - Compute sum, avg, min, max, count, median on numeric columns
csv_group_by - Group by a column and aggregate another
csv_sample - Get sample rows with offset/limit
csv_unique - Get unique values and their counts for any column
Quick Start
With Claude Desktop
Add to your claude_desktop_config.json:
With Claude Code
Manual Install
Tools
csv_describe
Load a CSV file and get an overview of its structure.
Parameters:
file_path(string) - Absolute path to CSV file
csv_filter
Filter rows by a column condition.
Parameters:
file_path(string) - Path to CSVcolumn(string) - Column to filter onoperator(enum) -eq,neq,gt,gte,lt,lte,contains,starts_withvalue(string) - Value to comparelimit(number, optional) - Max rows to return (default 50)sort_by(string, optional) - Column to sort bysort_dir(enum, optional) -ascordesc
csv_aggregate
Compute an aggregate on a numeric column.
Parameters:
file_path(string) - Path to CSVcolumn(string) - Numeric columnoperation(enum) -sum,avg,min,max,count,median
csv_group_by
Group rows and compute an aggregate.
Parameters:
file_path(string) - Path to CSVgroup_column(string) - Column to group byagg_column(string) - Column to aggregateoperation(enum) -sum,avg,count,min,max
csv_sample
Get sample rows from a CSV.
Parameters:
file_path(string) - Path to CSVcount(number, optional) - Number of rows (default 10)offset(number, optional) - Starting row offset
csv_unique
Get unique values with counts.
Parameters:
file_path(string) - Path to CSVcolumn(string) - Column namelimit(number, optional) - Max values (default 50)
Example Conversation
You: Analyze the sales data in /data/sales.csv
Claude: Let me look at the structure of your CSV first... Uses csv_describe to examine the file
The file has 10,000 rows with columns: date, product, region, quantity, price, total. Let me compute some key metrics... Uses csv_group_by to sum total by region Uses csv_aggregate to get the overall average price
License
MIT