Local MCP server for querying Excel files (heavy merged cells, multi-language text) via DuckDB and substring search. No LLM/embedding required.
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":"search-excel-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.
# search-excel-mcp Local MCP server that lets any MCP client (Claude Code, Cursor, Claude Desktop, Cline, …) query complex Excel files (heavy merged cells, large size, multi-language text including CJK) via SQL and substring search — **no API keys, no embeddings, no GPU**. Built with [FastMCP](https://github.com/jlowin/fastmcp) + [DuckDB](https://duckdb.org) + [openpyxl](https://openpyxl.readthedocs.io) + [pyarrow](https://arrow.apache.org/). --- ## Why this exists Documentation-style Excel files (external design docs, report specs, requirements sheets) typically have thousands of merged cells per sheet, 20–100 MB per file, and multi-language text where most FTS tokenizers fail. Standard RAG (embeddings + vector store) needs an LLM or embedding model that you can't always run locally. Your MCP client is the reasoning layer; this server just gives it accurate structured access to cells via DuckDB. ## Install ```bash pip install search-excel-mcp # or run without install: uvx search-excel-mcp ``` ## Configure your MCP client Add to the client's MCP config file. Common locations: | Client | Config path | |---|---| | Claude Code | `~/.claude/mcp.json` (global) or `<project>/.mcp.json` (project-local) | | Cursor | `~/.cursor/mcp.json` (global) or `<project>/.cursor/mcp.json` (project-local) | | Claude Desktop (macOS) | `~/Library/Application Support/Claude/claude_desktop_config.json` | | Cline / other | see your client's docs | Config entry (same JSON shape for all): ```json { "mcpServers": { "search-excel": { "command": "uvx", "args": ["search-excel-mcp"], "env": { "SEARCH_EXCEL_DATA_DIR": "/absolute/path/to/your/excel/folder" } } } } ``` Only `SEARCH_EXCEL_DATA_DIR` is required. The DuckDB cache is placed under your OS-standard app data folder (e.g. `~/Library/Application Support/search-excel-mcp/data.duckdb` on macOS) — override with `SEARCH_EXCEL_DB` if you want it elsewhere. Restart your MCP client → the `se…
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.