cdata-gcal-read-only-mcp-gateway
Expose Google Calendar entries as a read-only data source via a Model Context Protocol (MCP) service, enabling conversational AI workflows to query live scheduling information.
Author

CDataSoftware
Quick Info
Actions
Tags
CData MCP Server Implementation for Google Calendars (Read-Only Access)
This repository furnishes a specialized Model Context Protocol (MCP) server, developed by CData, which grants Large Language Models (LLMs) read-only access to dynamic data residing within Google Calendars. This solution leverages the robust CData JDBC Driver for Google Calendars.
:warning: Crucial Distinction: This specific package facilitates read-only interactions. For a comprehensive data manipulation toolkit (including Create, Read, Update, Delete, and Action functionalities) coupled with a simpler deployment path, please evaluate the official, feature-complete CData MCP Server for Google Calendars (beta version).
Core Functionality
The objective of this deployment is to bridge LLMs (such as those running within environments like Claude Desktop) with up-to-the-minute Google Calendar records. The underlying mechanism involves:
- JDBC Abstraction: The CData JDBC Driver for Google Calendars maps the calendar structure into a relational SQL schema.
- MCP Wrapping: This server component encapsulates the driver, presenting the calendar data via a straightforward MCP interface.
- Natural Language Querying: Consequently, AI agents can interrogate the live data using plain English prompts, bypassing the necessity for manual SQL construction.
Deployment Sequence
Follow these steps to establish the read-only service:
- Source Code Acquisition:
bash git clone https://github.com/cdatasoftware/google-calendars-mcp-server-by-cdata.git cd google-calendars-mcp-server-by-cdata - Artifact Generation: Compile the project using Maven.
bash mvn clean installThis action produces the necessary executable JAR:CDataMCP-jar-with-dependencies.jar. - Driver Acquisition and Installation: Obtain the CData JDBC Driver for Google Calendars binaries from: https://www.cdata.com/drivers/googlecalendar/download/jdbc
- Driver Licensing Procedure:
- Locate the driver installation path (e.g., on Windows:
C:\Program Files\CData\CData JDBC Driver for Google Calendars\or on Linux/Mac:/Applications/CData JDBC Driver for Google Calendars/). - Execute the licensing utility:
bash java -jar cdata.jdbc.googlecalendar.jar --license - Input your details and use "TRIAL" or your official license key when prompted.
- Locate the driver installation path (e.g., on Windows:
- Data Source Configuration String Generation:
- Initiate the utility to construct the connection string:
bash java -jar cdata.jdbc.googlecalendar.jar - Design your connection parameters (especially crucial if OAuth 2.0 authentication is involved, requiring in-browser sign-in).
- Once validation is confirmed, secure the resulting JDBC connection string.
- Initiate the utility to construct the connection string:
- PRP Configuration File Creation: Draft a properties file (e.g.,
google-calendars.prp) detailing server metadata and driver linkage:- Prefix: Identifier used for tool naming.
- ServerName: Display name for the service.
- ServerVersion: Version metadata.
- DriverPath: Absolute location of the downloaded JDBC JAR file.
- DriverClass: Fully qualified Java class name of the driver (e.g.,
cdata.jdbc.googlecalendar.GoogleCalendarDriver). - JdbcUrl: The connection string copied in the previous step.
- Tables: Specify table names if limiting access; leave empty to expose all accessible entities.
env Prefix=googlecalendar ServerName=CDataGoogleCalendar ServerVersion=1.0 DriverPath=PATH\TO\cdata.jdbc.googlecalendar.jar DriverClass=cdata.jdbc.googlecalendar.GoogleCalendarDriver JdbcUrl=jdbc:googlecalendar:InitiateOAuth=GETANDREFRESH; Tables=
Integration with Claude Desktop
Configure the client application by creating or modifying its configuration file (claude_desktop_config.json) to register the new MCP endpoint:
-
Configuration Modification: Add an entry under
mcpServersmatching the OS environment:Windows Pathing Example:
json { "mcpServers": { "{classname_dash}": { "command": "PATH\TO\java.exe", "args": [ "-jar", "PATH\TO\CDataMCP-jar-with-dependencies.jar", "PATH\TO\google-calendars.prp" ] }, ... } }Linux/Mac Pathing Example:
json { "mcpServers": { "{classname_dash}": { "command": "/PATH/TO/java", "args": [ "-jar", "/PATH/TO/CDataMCP-jar-with-dependencies.jar", "/PATH/TO/google-calendars.prp" ] }, ... } } -
Configuration File Relocation (if necessary): Ensure the configuration file is placed where the application expects it (e.g., for Claude Desktop): ```bash # Windows cp C:\PATH\TO\claude_desktop_config.json %APPDATA%\Claude\claude_desktop_config.json
# Linux/Mac cp /PATH/TO/claude_desktop_config.json /Users/{user}/Library/Application\ Support/Claude/claude_desktop_config.json ``` 3. Client Refresh: Restart the client application (fully quit and reopen, ensuring processes are terminated via Task Manager/Activity Monitor) for the new server definitions to take effect.
Standalone Server Execution
For testing outside of the integrated client environment, you can launch the server directly:
java -jar /PATH/TO/CDataMCP-jar-with-dependencies.jar /PATH/TO/Salesforce.prp
Constraint: This server communicates via standard input/output (
stdio), restricting its immediate utility to applications running on the identical host machine.
Data Interaction Guidelines
Once successfully provisioned, the AI client gains access to operational data via specialized tools. Direct invocation is generally unnecessary; simply pose questions against the accessible data model. For instance:
- "Which appointments are scheduled for me tomorrow?"
- "Summarize all events occurring next Tuesday."
Available Tool Definitions
References to {servername} below correspond to the service identifier established in the configuration file (e.g., google_calendars based on the prefix).
{servername}_get_tables: Fetches a catalog of discoverable data entities. Use{servername}_get_columnssubsequently to detail the structure of any specific entity. Output is CSV format, header row included.{servername}_get_columns: Retrieves the attribute schema for a specified entity name. Relies on{servername}_get_tablesfor entity discovery. Output is CSV format, header row included.{servername}_run_query: Executes raw SQL SELECT statements against the data layer.
JSON-RPC Command Schemas (For Scripting)
When interfacing programmatically rather than through an AI frontend, requests must adhere to the JSON-RPC 2.0 specification. Examples for the defined methods:
Fetching Entity List (google_calendars_get_tables)
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "google_calendars_get_tables",
"arguments": {}
}
}
Describing Entity Structure (google_calendars_get_columns)
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "google_calendars_get_columns",
"arguments": {
"table": "EventsTable"
}
}
}
Executing a Retrieval Statement (google_calendars_run_query)
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "google_calendars_run_query",
"arguments": {
"sql": "SELECT Subject, StartTime FROM [EventsTable] WHERE IsAllDayEvent = false"
}
}
}
Common Problem Resolution
- Server Not Visible in Client: Verify that the client application (e.g., Claude Desktop) was completely shut down and restarted, ensuring no lingering background processes remain active.
- Data Retrieval Failures: Double-check the connection string configuration. Utilize the utility builder to create and validate the string before embedding it in the
.prpfile. - Connection Errors to Source: For connectivity issues, seek assistance from the CData Support Team.
- MCP Server Feedback: For issues specific to the MCP server operation or general suggestions, engage with the CData Community.
Licensing Terms
This specialized MCP server is distributed under the permissive MIT License. Users retain the freedom to utilize, modify, and redistribute the software, contingent upon adherence to the stipulations outlined in the accompanying LICENSE file.
Comprehensive Data Connector Compatibility
This driver technology supports integration with an extensive portfolio of data sources, including (but not limited to):
| Core Systems | Cloud & Analytics | Databases & Files | Specialized Apps |
|---|---|---|---|
| Salesforce | BigQuery | PostgreSQL | Jira |
| SAP | Snowflake | SQL Server | ServiceNow |
| NetSuite | Amazon S3 | MongoDB | Marketo |
| Dynamics 365 | Google Ads | JSON | Workday |
| Microsoft Excel | Azure DevOps | Parquet | HubSpot |
... and many more, covering dozens of enterprise platforms. Consult the CData documentation for the full catalog.
