excel-normalizer
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
English | įŽäŊ䏿
đ Excel Semantic Normalizer
Any Excel, any headers, any column order â canonical fields â Canonical JSON â template export
Maps columns by meaning, not position. Hybrid retrieval, LLM adjudication, template export, and a human-feedback loop â with graceful offline fallback.

⨠Why this exists
Procurement / supply-chain spreadsheets in the wild use whatever headers each vendor likes: åå / č´§įŠåį§° / Product / Name all mean the same thing, and column order changes per file. This service parses any .xlsx, resolves each column to one of 19 canonical fields (product, price, supplier, material, âĻ), and outputs clean, typed, validated Canonical JSON â plus it can render results back into your own Excel templates.
Related MCP server: Excel MCP Server
đ Quick start
Requirements: Python âĨ 3.10. API keys optional â the service runs fully offline.
git clone <repo-url>
cd excel-normalizer
pip install -r requirements.txt # or: pip install -e ".[dev]"
cp .env.example .env # optional: add API keys for higher accuracy
uvicorn app.main:app --reload --port 8000Then:
Interactive API docs: http://127.0.0.1:8000/docs
Health check: http://127.0.0.1:8000/health
Live dashboard: http://127.0.0.1:8000/dashboard
One-call example
curl -X POST "http://127.0.0.1:8000/v1/table/normalize" \
-F "file=@tests/sample_éč´æįģ.xlsx"import requests
resp = requests.post(
"http://127.0.0.1:8000/v1/table/normalize",
files={"file": open("tests/sample_éč´æįģ.xlsx", "rb")},
)
data = resp.json()
# data["columns"] â per-column canonical field mapping + confidence
# data["records"] â normalized, typed records with _meta.issues traceabilityđ§ How it works
Phase | What it does | Status |
P1 Rule engine | Header exact/fuzzy alias matching + Hungarian assignment + row alignment + type coercion | â |
P2 Hybrid retrieval | Dense + BM25 + rule recall â RRF fusion â reranker (remote bge-m3 or local fallback) | â |
P3 LLM adjudication | Strict-JSON LLM verdict on low-confidence columns, with conservative overturn guard | â |
P4 Template export | Parse | â |
P5 Feedback loop | Human corrections â SQLite â auto-reflow into knowledge base with regression gate + auto-rollback | â |
MCP server | 9 tools for Claude / Cursor / Windsurf integration | â |
Accuracy (130 unseen-header eval set, anti-cheat verified zero overlap): offline 96.2% â remote reranker 96.9% â with LLM adjudication 98.5%.
Graceful degradation: no API keys â local char-ngram + rapidfuzz. Keys configured â remote embeddings/rerank with retry-then-fallback. LLM never overrides a confident mapping unless strictly more confident.
đ Canonical fields (19)
product_name* ¡ origin ¡ price ¡ quantity ¡ spec ¡ delivery_date ¡ supplier ¡ sku ¡ unit ¡ amount ¡ material ¡ weight ¡ tax_rate ¡ delivery_location ¡ payment_method ¡ remark ¡ freight ¡ vessel ¡ warehouse
* required. Full dictionary with 500+ aliases: docs/SCHEMA_DICTIONARY.md
đ API overview
Group | Endpoints |
Normalize |
|
Schema |
|
Export |
|
Feedback |
|
Observability |
|
Rules |
|
Full examples: docs/USAGE.md (Chinese).
đ§Ē Testing & evaluation
pytest tests/ -v # 146 tests, fully offline
pytest tests/eval/test_p2_accuracy.py # regression gate: âĨ85% + anti-cheat
python -m tests.eval.run_p2_eval # per-field accuracy report
python -m tests.eval.kb_expand_llm --dry-run --llm # LLM alias expansion with 4-gate safetyđŗ Docker
docker compose up --buildđ¤ Contributing
PRs welcome. Requirements: tests for new features, full pytest green, and knowledge-base additions must pass the anti-cheat (zero eval overlap) + no-accuracy-regression gates.
Fork â branch (
feat/xxx) â commit â PR
đ License
đ More
This server cannot be deployed
Maintenance
Related MCP Connectors
Standardize, reshape, and normalize messy data â CSV, Excel, Parquet, S3, databases.
Convert PDF, Word, Excel, PowerPoint, e-mails and web pages to clean Markdown for LLMs.
An agent-first office suite Claude & ChatGPT read and write over one MCP URL.
ParseHub.dev is a hosted document-to-records service with a remote MCP server. Agents can upload a CSV, PDF, or Word file, summarize and analyze CSV data (filter, sort, group_by, and more), read text from PDF and Word files, extract attendees, agenda items, and action items from meeting notes, ask a question about an uploaded document, and store files as database records to list and read later. Each account sees only its own files and records. **Endpoint:** `https://parsehub.dev/mcp` (Streamable HTTP, stateless) **Auth:** API key in the `X-API-Key` header (keys start with `mcp_`), or `Authorization: Bearer <API key or JWT>`. Every request without credentials returns 401. **Plans:** Free (100 API requests/month, 1 document upload), or 5,000 requests/month on the $9/month or $42/year plan. Every MCP request counts toward the allowance. **Tools:** upload_csv, summarize_csv, analyze_csv, upload_document, read_document, extract_meeting_notes, ask_document, database_status, list_database_documents, get_database_document, store_document, extract_stored_meeting_notes, export_database (administrators only). Not affiliated with ParseHub (parsehub.com), the web-scraping tool. ParseHub.dev does not scrape websites. By Poietes LLC. Docs: https://parsehub.dev/guide#connect-via-mcp
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server for semantic spreadsheet operations that lets LLMs create and edit Excel workbooks by describing spreadsheet intent.42MIT
- AlicenseBqualityCmaintenanceEnables LLMs to work with Excel and CSV files through structured tools for workbook operations, formatting, charts, ETL, analysis, and more.695MIT
- FlicenseNot gradedqualityCmaintenanceEnables reading, normalizing, validating, merging, and exporting data from Excel, CSV, JSON, and SQLite sources into a unified schema, with tools exposed via FastMCP.1-
- FlicenseNot gradedqualityCmaintenanceExposes Excel operations (open/close files, read/write cells, create sheets, apply formulas, and run existing VBA macros by name) to AI agents like Claude Desktop or Claude Code via MCP.-