mcp-csv-database
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | Port for HTTP transport (default: 3000) | 3000 |
| transport | No | Transport type: stdio (default), sse, streamable-http | stdio |
| csv-folder | No | Alternative way to specify CSV folder path | |
| folder_path | No | Path to folder containing CSV files (positional argument) | |
| table-prefix | No | Optional prefix for table names (e.g., 'sales_') |
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 |
|---|---|
| get_database_schemaA | Get the current database schema showing all loaded tables and their structure |
| list_loaded_tablesA | List all currently loaded tables with their source CSV files |
| load_csv_folderA | Load all CSV files from a folder into a temporary SQLite database. Args: folder_path: Path to folder containing CSV files table_prefix: Optional prefix for table names Returns: Status message with details of loaded files |
| execute_sql_queryA | Execute any SQL query on the loaded database. Args: query: Any SQL query to execute (SELECT, INSERT, UPDATE, DELETE, CREATE, etc.) limit: Maximum number of rows to return for SELECT queries (default: 100) Returns: Query results formatted as XML or execution status |
| get_table_infoB | Get detailed information about a specific table. Args: table_name: Name of the table to inspect Returns: Detailed table information including schema and sample data |
| create_indexA | Create an index on a table column for better query performance. Args: table_name: Name of the table column_name: Name of the column to index index_name: Optional custom index name Returns: Status message |
| backup_databaseB | Create a backup of the current database to a file. Args: backup_path: Path where to save the backup file Returns: Status message |
| export_table_to_csvB | Export a table to a CSV file. Args: table_name: Name of the table to export output_path: Path for the output CSV file include_header: Whether to include column headers Returns: Status message |
| get_query_planB | Get the execution plan for a query to understand performance. Args: query: SQL query to analyze Returns: Query execution plan |
| clear_databaseC | Clear the temporary database and remove all loaded tables. Returns: Status message |
| get_column_statsB | Get statistical summary for a specific column. Args: table_name: Name of the table column_name: Name of the column to analyze Returns: Statistical summary including count, nulls, unique values, and distribution info |
| find_duplicatesA | Find duplicate rows in a table. Args: table_name: Name of the table to check columns: Comma-separated column names to check for duplicates, or "all" for all columns Returns: Information about duplicate rows found |
| analyze_missing_dataA | Analyze missing data patterns in a table. Args: table_name: Name of the table to analyze Returns: Summary of missing data patterns across all columns |
| get_data_summaryC | Get a comprehensive summary of the table data. Args: table_name: Name of the table to summarize Returns: Quick overview with key insights about the data |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| analyze_data_prompt | Generate a prompt for analyzing data in a specific table. Args: table_name: Name of the table to analyze analysis_type: Type of analysis (summary, trends, insights, etc.) |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
Most tools have clearly distinct purposes, but there is some overlap among info tools (get_table_info, get_database_schema, get_data_summary) that could cause confusion if an agent doesn't read descriptions carefully.
All tool names follow a consistent verb_noun pattern (e.g., load_csv_folder, find_duplicates, get_column_stats), making it easy to predict functionality from the name.
14 tools cover the core operations of a CSV database server (loading, querying, analysis, management, export) without being excessive or sparse.
The tool surface covers loading, querying, analysis, schema inspection, indexing, backup, and export. Missing dedicated tools for dropping tables or bulk data modifications, but these can be handled via execute_sql_query.