MCP server that ingests CSV/TSV/Parquet/Excel/JSON files into any SQLAlchemy database
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"csv-ingest-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# csv-ingest-mcp [](https://pypi.org/project/csv-ingest-mcp/) [](LICENSE) MCP server for ingesting **CSV / TSV / Parquet / Excel / JSON / JSONL** files into any SQLAlchemy-supported database (Postgres, MySQL, SQLite, MSSQL, ...). Plug into Claude Desktop, Cursor, Cline, or Continue and let the LLM load tabular data on demand. ## Install ```bash uvx csv-ingest-mcp # one-shot, no global install # or pip install csv-ingest-mcp ``` ## Quick start (Claude Desktop) `~/.config/Claude/claude_desktop_config.json` (Linux) / `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS): ```json { "mcpServers": { "csv-ingest": { "command": "uvx", "args": ["csv-ingest-mcp"], "env": { "CSV_MCP_ALLOWED_DIRS": "/home/you/data", "CSV_MCP_DB_URL": "postgresql://user:pass@localhost/mydb" } } } } ``` Restart Claude Desktop. The model now has six tools. ## Tools | Tool | Purpose | |------|---------| | `ingest_file(path, table, if_exists, sheet, auto_alter, dry_run)` | Load file into table | | `upsert_file(path, table, key_columns, sheet, dedupe_source)` | Key-based replace + insert | | `list_tables()` | Database table names | | `describe_table(table)` | Schema + row count | | `ingest_async(path, table, if_exists, auto_alter)` | Queue large file via Celery | | `job_status(job_id)` | Poll Celery job | ## Configuration | Env var | Default | Purpose | |---------|---------|---------| | `CSV_MCP_ALLOWED_DIRS` | (required) | `:`-separated path allowlist | | `CSV_MCP_DB_URL` | `sqlite:///./csv_ingest.db` | SQLAlchemy DSN | | `CSV_MCP_MAX_ROWS` | `1000000` | Per-file row cap | | `CSV_MCP_CHUNK_SIZE` | `50000` | Streaming chunk rows | | `CSV_MCP_BROKER_URL` | `redis://localhost:6379/0` | Celery broker | | `CSV_MCP_RESULT_BACKEND` | `redis://localhost:6379/1` | Celery backend | | `CSV_MCP_WAT…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.