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:
{
"mcpServers": {
"csv-analyst": {
"command": "npx",
"args": ["-y", "mcp-csv-analyst"]
}
}
}With Claude Code
claude mcp add csv-analyst npx mcp-csv-analystManual Install
npm install -g mcp-csv-analystTools
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.