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-mcp-server-google-calendar-readonly

Expose Google Calendar schedules via a read-only Model Context Protocol (MCP) endpoint, enabling natural language querying of live event data within AI workflows.

Author

cdata-mcp-server-google-calendar-readonly logo

CDataSoftware

MIT License

Quick Info

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

Tags

calendarscalendarcloudgoogle calendarscalendar datagoogle calendar

CData MCP Endpoint for Google Calendars (Read-Only)

This implementation establishes a dedicated Model Context Protocol (MCP) server, strictly for read operations, interfacing with Google Calendar data powered by the CData JDBC Driver.

:warning: Important Note: This version is strictly read-only. For a complete CRUD experience (Read, Write, Update, Delete) and a simpler deployment process, please explore the complimentary CData MCP Server for Google Calendars (beta) available for download here.

Objective

The primary goal of this read-only MCP server is to facilitate query access for Large Language Models (LLMs), such as Claude Desktop, against real-time data residing in Google Calendars. This functionality relies on the underlying power of the CData JDBC Driver for Google Calendars, which maps calendar resources into a relational SQL structure.

The server acts as a wrapper, translating natural language requests into database interactions via the MCP interface, thus eliminating the need for the LLM to generate explicit SQL.

Deployment Instructions

Phase 1: Project Setup and Compilation

  1. Obtain the source code by cloning the repository: bash git clone https://github.com/cdatasoftware/google-calendars-mcp-server-by-cdata.git cd google-calendars-mcp-server-by-cdata
  2. Compile the project using Maven: bash mvn clean install This action produces the executable artifact: CDataMCP-jar-with-dependencies.jar
  3. Acquire and install the CData JDBC Driver for Google Calendars:

Phase 2: Driver Licensing and Configuration

  1. Activate the JDBC Driver:
    • Navigate to the driver's installation subdirectory (e.g., C:\Program Files\CData\CData JDBC Driver for Google Calendars\ on Windows or /Applications/CData JDBC Driver for Google Calendars/ on macOS/Linux).
    • Execute the licensing utility: bash java -jar cdata.jdbc.googlecalendar.jar --license
    • Input your credentials and use "TRIAL" or your valid license key.
  2. Establish Data Source Connection Parameters:
    • Launch the connection string utility: bash java -jar cdata.jdbc.googlecalendar.jar
    • Configure the necessary connection settings (e.g., OAuth credentials for Google). Test the connection.
    • Record the generated JDBC connection string.
  3. Define the Server Definition File (.prp):
    • Create a configuration file (e.g., google-calendars.prp) specifying the server parameters: env Prefix=googlecalendar ServerName=CDataGoogleCalendar ServerVersion=1.0 DriverPath=ABSOLUTE_PATH_TO\cdata.jdbc.googlecalendar.jar DriverClass=cdata.jdbc.googlecalendar.GoogleCalendarDriver JdbcUrl=jdbc:googlecalendar:InitiateOAuth=GETANDREFRESH; // Use your copied string here Tables=

Integration with LLM Clients (e.g., Claude Desktop)

  1. Update Client Configuration: Modify or create the client's configuration file (e.g., claude_desktop_config.json) to register this new MCP server within the mcpServers object.

    Windows Client Registration Example: json { "mcpServers": { "googlecalendar": { "command": "PATH\TO\java.exe", "args": [ "-jar", "PATH\TO\CDataMCP-jar-with-dependencies.jar", "PATH\TO\google-calendars.prp" ] }, ... } }

    Linux/Mac Client Registration Example: json { "mcpServers": { "googlecalendar": { "command": "/PATH/TO/java", "args": [ "-jar", "/PATH/TO/CDataMCP-jar-with-dependencies.jar", "/PATH/TO/google-calendars.prp" ] }, ... } } 2. Deploy Configuration: Ensure the modified configuration file is placed in the client's application data directory: Windows: bash cp C:\PATH\TO\claude_desktop_config.json %APPDATA%\Claude\claude_desktop_config.json Linux/Mac: bash cp /PATH/TO/claude_desktop_config.json /Users/{user}/Library/Application\ Support/Claude/claude_desktop_config.json 3. Activate Server: Restart or refresh the host client application (e.g., Claude Desktop) for the new capability to load.

Standalone Server Execution

The server can be initiated independently via standard input/output (stdio): ```bash java -jar /PATH/TO/CDataMCP-jar-with-dependencies.jar /PATH/TO/google-calendars.prp

Constraint: Because the server communicates via stdio, it must run on the same host machine as the consuming client application.

Interaction Methods

Once deployed, the LLM client gains access to the underlying schema. Users should query the data using conversational prompts, such as asking about scheduled appointments, rather than invoking raw tools. Example user prompts: * "What meetings are scheduled for this afternoon?" * "List all appointments for next Tuesday."

Available Toolset & Signatures

Tool naming convention uses the configured server prefix (e.g., googlecalendar).

  • googlecalendar_get_tables - Fetches a catalog of accessible structures (tables). Schema inspection should follow using _get_columns.
  • googlecalendar_get_columns - Retrieves field definitions for a specified table, outputting CSV format.
  • googlecalendar_run_query - Executes arbitrary SQL SELECT statements against the calendar data via the JDBC interface.

JSON-RPC Call Schemas (Scripted Access)

Requests adhere to the JSON-RPC 2.0 specification.

Fetching Data Structures (Tables)

{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
        "name": "googlecalendar_get_tables",
        "arguments": {}
    }
}

Inspecting Fields (Columns)

{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
        "name": "googlecalendar_get_columns",
        "arguments": {
            "table":  "Events" 
        }
    }
}

Executing Data Retrieval (Query)

{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
        "name": "googlecalendar_run_query",
        "arguments": {
            "sql":  "SELECT StartTime, Subject FROM Events WHERE StartTime > NOW() - 7 DAY"
        }
    }
}

Troubleshooting Common Issues

  1. Server Not Visible: If the tool does not appear in Claude Desktop, fully terminate the client process (check Task Manager/Activity Monitor) and restart.
  2. Connection Failures: Verify that the connection string copied into the .prp file is valid by re-testing it using the Connection String utility.
  3. General Errors: For integration issues with the MCP server, consult the CData Community. For connection stability problems, reach out to the CData Support Desk.

Licensing and Source Compatibility

This utility is provided under the permissive MIT License (see LICENSE).

Data Source Connectivity: This server utilizes the CData JDBC ecosystem, supporting connections to hundreds of enterprise systems, including (but not limited to):

Category Examples
CRM/Sales Salesforce, HubSpot, Zoho CRM, Dynamics 365
Productivity Google Calendar, Office 365, SharePoint, Jira, Confluence
Databases PostgreSQL, Snowflake, BigQuery, SQL Server, Oracle, Cassandra
File/APIs REST, OData, CSV, JSON, SFTP, Box, Dropbox

For the complete list of supported sources, please refer to the comprehensive documentation provided by CData.

See Also

`