googlecalendar_get_tablesLABSCO SUMMARY
The licensed driver does the hard part.
Three tools is the whole surface, and that is the point — the JDBC driver turns Google Calendars into ordinary tables, so the model writes SELECT statements instead of learning an API shape. What you trade for that is a driver install and a licensing step before the first query, and a server that only reads: there is no write, update, or delete path here.
What it is
A local Java server that puts Google Calendars behind three SQL tools. CData's JDBC Driver for Google Calendars exposes the service as relational tables, and this server wraps the driver so a model can find a table, read its columns, and run a SELECT against live data without anyone writing the API calls.
What you get
googlecalendar_get_tablesreturns the tables the driver exposes, as CSV with a header rowgooglecalendar_get_columnsreturns the columns on one table, in the same CSV shapegooglecalendar_run_queryexecutes a SQL SELECT statement- The
googlecalendarpart is thePrefixyou set in the property file (Prefix=googlecalendarin the sample), so several CData servers can sit in one client without their tool names colliding - 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
Build it yourself: clone the repository and run mvn clean install, which produces CDataMCP-jar-with-dependencies.jar. Install the CData JDBC Driver for Google Calendars separately and license it — java -jar cdata.jdbc.googlecalendar.jar --license, then name, email, and TRIAL or your key. Write a google-calendars.prp file carrying DriverClass=cdata.jdbc.googlecalendar.GoogleCalendarDriver and the JDBC URL from the driver's connection-string utility, and launch the server as java -jar CDataMCP-jar-with-dependencies.jar google-calendars.prp. Transport is stdio, so the server runs on the same machine as the client.
Setup effort
Build from source — clone the repository, then point your client at the binary
USE CASES
Answering a question about live Google Calendars data
Ask in plain language; the model locates the table, checks its columns, then writes the SELECT itself.
Finding out what is actually available
List the tables and their columns first, so you know what can be asked before you ask it.
Running several CData sources in one client
Give each property file its own Prefix so the tool names stay distinct across servers.
3 tools
Listed in project docs. Your client may show a different list.
googlecalendar_get_columnsgooglecalendar_run_queryBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation. Tool names start with the Prefix in the .prp file, so the sample Prefix=googlecalendar gives googlecalendar_get_tables, googlecalendar_get_columns and googlecalendar_run_query. The server is read-only (run_query executes SELECT only).
Where it runs
Both documented setups run the server on your machine.
INSTALLATION
Connect your client
Clone the repository, then point your client at the binary. This one is built from source rather than installed with a single command.
Server setup
git clone https://github.com/cdatasoftware/google-calendars-mcp-server-by-cdata.git
cd google-calendars-mcp-server-by-cdata
mvn clean installDownload and install the CData JDBC Driver for Google Calendars from https://www.cdata.com/drivers/googlecalendar/download/jdbc
License the driver: java -jar cdata.jdbc.googlecalendar.jar --license (enter name, email, and "TRIAL" or a license key)
Run java -jar cdata.jdbc.googlecalendar.jar with no arguments to open the Connection String utility, test the connection, copy the connection string
Write a .prp file (e.g. google-calendars.prp) containing Prefix=googlecalendar, ServerName, ServerVersion, DriverPath, DriverClass=cdata.jdbc.googlecalendar.GoogleCalendarDriver, 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 — Windows, macOS, Linux
{
"mcpServers": {
"google-calendars": {
"command": "<YOUR_PATH_TO_JAVA>",
"args": [
"-jar",
"<YOUR_PATH_TO_CDATA_MCP_JAR_WITH>",
"<YOUR_PATH_TO_GOOGLE_CALENDARS>"
]
}
}
}