← Back to search

io.github.CSOAI-ORG/csv-analytics-mcp

CSOAI-ORG Scanned 13d ago

MCP server for csv analytics. Features load csv, query data, describe columns. From MEOK AI ...

C
71.1 / 100

Versions

1.0.1latest
first seen Jun 5, 2026
1.0.4
first seen May 19, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 6

load_csv
annotations: none low

Load a CSV file into memory for analysis. The dataset is stored under a name (defaults to filename) and can be referenced in subsequent calls. Args: file_path: Absolute path to the CSV file name: Optional name for the dataset (default: filename without extension) delimiter: Column delimiter (default: comma) encoding: File encoding (default: utf-8) Behavior: This tool is read-only and stateless — it produces analysis output without modifying any external systems, databases, or files. Safe to call repeatedly with identical inputs (idempotent). Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage. When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards. When NOT to use: Not suitable for real-time production decision-making without human review of results. Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.

name str api_key str encoding str delimiter str file_path str
query_data
annotations: none low

Query a loaded dataset with filtering, column selection, and sorting. Uses pandas query syntax for filters: - 'age > 30' - 'city == "London" and salary > 50000' - 'status.isin(["active", "pending"])' Args: name: Dataset name (from load_csv) filter_expr: Pandas query expression for filtering rows columns: List of column names to return (default: all) sort_by: Column name to sort by ascending: Sort order (default: True) limit: Max rows to return (default: 100) Behavior: This tool is read-only and stateless — it produces analysis output without modifying any external systems, databases, or files. Safe to call repeatedly with identical inputs (idempotent). Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage. When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards. When NOT to use: Not suitable for real-time production decision-making without human review of results.

name str limit int api_key str columns string sort_by str ascending bool filter_expr str
describe_columns
annotations: none low

Get detailed statistics for every column in a dataset: - Numeric columns: mean, std, min, max, median, quartiles - Categorical columns: unique count, top 5 values with frequencies Args: name: Dataset name (from load_csv) Behavior: This tool is read-only and stateless — it produces analysis output without modifying any external systems, databases, or files. Safe to call repeatedly with identical inputs (idempotent). Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage. When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards. When NOT to use: Not suitable for real-time production decision-making without human review of results. Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.

name str api_key str
aggregate
annotations: none low

Aggregate data with GROUP BY and compute metrics. Supported aggregation functions: sum, mean, min, max, count, median, std, first, last, nunique Args: name: Dataset name (from load_csv) group_by: List of columns to group by (e.g. ["department", "year"]) metrics: Dict of column -> aggregation function (e.g. {"salary": "mean", "id": "count"}) Behavior: This tool is read-only and stateless — it produces analysis output without modifying any external systems, databases, or files. Safe to call repeatedly with identical inputs (idempotent). Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage. When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards. When NOT to use: Not suitable for real-time production decision-making without human review of results.

name str api_key str metrics string group_by string
export_chart_data
annotations: none low

Export data in a chart-ready format. Output is compatible with Chart.js, Plotly, or any visualization library. Includes labels and datasets arrays. Args: name: Dataset name (from load_csv) x_column: Column for the X axis / labels y_columns: List of columns for Y axis / data series chart_type: Suggested chart type (bar, line, scatter, pie) limit: Max data points (default: 50) Behavior: This tool is read-only and stateless — it produces analysis output without modifying any external systems, databases, or files. Safe to call repeatedly with identical inputs (idempotent). Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage. When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards. When NOT to use: Not suitable for real-time production decision-making without human review of results. Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.

name str limit int api_key str x_column str y_columns string chart_type str
pivot_table
annotations: none low

Create a pivot table from a dataset. Reshapes data by grouping rows and spreading column values, similar to Excel pivot tables. Args: name: Dataset name (from load_csv) index: Column to use as row labels columns: Column whose unique values become new columns values: Column to aggregate aggfunc: Aggregation function (mean, sum, count, min, max, median, std) Behavior: This tool generates structured output without modifying external systems. Output is deterministic for identical inputs. No side effects. Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage. When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards. When NOT to use: Not suitable for real-time production decision-making without human review of results. Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.

name str index str values str aggfunc str api_key str columns str

Permissions 3

network medium
Server uses network capabilities via: urllib
filesystem low
Server uses filesystem capabilities via: os, tempfile
env_vars low
Server uses env_vars capabilities via: os.environ

Scan Findings 35

medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-3482) dependency_analyzer · 95%
low
Tool 'load_csv' has no annotations annotation_checker · 100%
low
Tool 'query_data' has no annotations annotation_checker · 100%
low
Tool 'describe_columns' has no annotations annotation_checker · 100%
low
Tool 'aggregate' has no annotations annotation_checker · 100%
low
Tool 'export_chart_data' has no annotations annotation_checker · 100%
low
Tool 'pivot_table' has no annotations annotation_checker · 100%
high
Remote transport without authentication auth_checker · 70%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
low
Cross-tool reference in 'pivot_table': Comparison: 'similar to Excel' cross_tool_detector · 30%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-3qhf-m339-9g5v) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-9h52-p55h-vw2f) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-j975-95f5-7wqh) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-jpw9-pfvf-9f58) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (GHSA-vj7q-gjh5-988w) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-1616) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-1617) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-1618) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.0.0 (PYSEC-2026-3483) dependency_analyzer · 95%
info
package.json metadata manifest_parser · 100%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: load_csv manifest_parser · 90%
info
Tool: query_data manifest_parser · 90%
info
Tool: describe_columns manifest_parser · 90%
info
Tool: aggregate manifest_parser · 90%
info
Tool: export_chart_data manifest_parser · 90%
info
Tool: pivot_table manifest_parser · 90%
info
Transport: streamable-http manifest_parser · 80%
info
Required env vars (5) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 80%
low
Permission: filesystem access detected permission_analyzer · 70%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 1 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%