excelonline_get_tablesLABSCO SUMMARY
The spreadsheet answers without leaving the cloud.
The everyday failure here is version drift: someone downloads the workbook, asks the question of a copy, and the copy is a week old. Querying Excel Online live means the answer reflects the sheet as it stands, and SELECT-only means the assistant cannot rewrite a cell while it is looking. Setup is the usual CData shape — licensed driver, Maven build, one browser authentication — and it is per source, so a second workbook system means a second properties file, not a second stack.
What it is
A local, read-only MCP server that exposes Excel Online as a relational SQL model. It wraps CData's JDBC driver for Excel Online, which presents workbooks and their sheets as tables, so an assistant can find the right sheet and query it live rather than working from a downloaded copy.
What you get
- The tables available in Excel Online, returned as CSV with a header row —
get_tables - The columns on a chosen table, so a query uses the real headers —
get_columns - A SQL SELECT executed against live workbook data —
run_query - Tool names prefixed with the server name from your properties file, so multiple CData servers coexist in one client
- A
Tablessetting that only picks which tables also get a ready-made description (blank means none); it does not limit what the tools can list or query, so limit the connection or the account it signs in with
Requirements
An Excel Online account, plus CData's JDBC driver for Excel Online downloaded and licensed separately — java -jar cdata.jdbc.excelonline.jar --license takes your name, email and TRIAL or a license key. Java and Maven: mvn clean install builds the runnable JAR. Then a .prp file with the prefix, server name and version, the driver JAR path, the driver class cdata.jdbc.excelonline.ExcelOnlineDriver, and the JDBC connection string from the driver's connection-string utility, which opens a browser for the OAuth step. The client entry runs java with the JAR and the .prp path. Communication is over stdio, so client and server must be on the same machine. MIT licensed.
Setup effort
Build from source — git clone https://github.com/cdatasoftware/excel-online-mcp-server-by-cdata.git
USE CASES
Answering a question from a shared workbook
Query the sheet where it lives, so the number reflects the current state rather than a downloaded copy.
Finding which sheet holds what
List the tables and inspect the columns before writing anything substantive.
Comparing a spreadsheet to a system of record
Run this beside another CData server in the same client and ask a question that spans both.
3 tools
Listed in project docs. Your client may show a different list.
excelonline_get_columnsexcelonline_run_queryBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation. The tool names carry a prefix from your config, most likely excelonline, as in excelonline_get_tables. All three only read, despite a sentence promising write access. The Tables setting does not limit what the tools reach; your connection's access does.
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/cdatasoftware/excel-online-mcp-server-by-cdata.git
cd excel-online-mcp-server-by-cdata
mvn clean installDownload and install the CData JDBC Driver for Excel Online from https://www.cdata.com/drivers/excelonline/download/jdbc
License the driver: java -jar cdata.jdbc.excelonline.jar --license (enter name, email, and "TRIAL" or a license key)
Run java -jar cdata.jdbc.excelonline.jar with no arguments to open the Connection String utility, test the connection, copy the connection string
Write a .prp file (e.g. excel-online.prp) containing Prefix=excelonline, ServerName, ServerVersion, DriverPath, DriverClass=cdata.jdbc.excelonline.ExcelOnlineDriver, JdbcUrl, Tables
Tables only picks which tables also get a ready-made description for your assistant, and empty means none; the server can still list and query every table your connection string reaches, so to keep data out of reach, limit that connection or the account it signs in with.
Add the mcpServers entry below to claude_desktop_config.json, pointing java at CDataMCP-jar-with-dependencies.jar and at the .prp file, then fully quit and reopen the client
MCP Clients
Claude Desktop — macOS, Linux
{
"mcpServers": {
"excel-online": {
"command": "<YOUR_PATH_TO_JAVA>",
"args": [
"-jar",
"<YOUR_PATH_TO_CDATA_MCP_JAR_WITH>",
"<YOUR_PATH_TO_EXCEL_ONLINE>"
]
}
}
}