logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

cdata-gcal-read-only-mcp-gateway logo

CDataSoftware

MIT License

Quick Info

GitHub GitHub Stars 0
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

calendarscalendareventscalendar datagoogle calendarsgoogle calendar

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:

  1. JDBC Abstraction: The CData JDBC Driver for Google Calendars maps the calendar structure into a relational SQL schema.
  2. MCP Wrapping: This server component encapsulates the driver, presenting the calendar data via a straightforward MCP interface.
  3. 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:

  1. Source Code Acquisition: bash git clone https://github.com/cdatasoftware/google-calendars-mcp-server-by-cdata.git cd google-calendars-mcp-server-by-cdata
  2. Artifact Generation: Compile the project using Maven. bash mvn clean install This action produces the necessary executable JAR: CDataMCP-jar-with-dependencies.jar.
  3. Driver Acquisition and Installation: Obtain the CData JDBC Driver for Google Calendars binaries from: https://www.cdata.com/drivers/googlecalendar/download/jdbc
  4. 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.
  5. 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.
  6. 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:

  1. Configuration Modification: Add an entry under mcpServers matching 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" ] }, ... } }

  2. 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_columns subsequently 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_tables for 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

  1. 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.
  2. Data Retrieval Failures: Double-check the connection string configuration. Utilize the utility builder to create and validate the string before embedding it in the .prp file.
  3. Connection Errors to Source: For connectivity issues, seek assistance from the CData Support Team.
  4. 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.

See Also

`