Calendar Autoauth MCP Server
Server for Google Calendar integration in Cluade Desktop with auto authentication support. This server enables AI assistants to manage Google Calendar events through natural language interactions.
Server for Google Calendar integration in Cluade Desktop with auto authentication support. This server enables AI assistants to manage Google Calendar events through natural language interactions.
A Model Context Protocol (MCP) server for Google Calendar integration in Cluade Desktop with auto authentication support. This server enables AI assistants to manage Google Calendar events through natural language interactions.
To install Calendar AutoAuth Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @gongrzhe/server-calendar-autoauth-mcp --client claude
a. Create a Google Cloud Project: - Go to Google Cloud Console - Create a new project or select an existing one - Enable the Google Calendar API for your project
b. Create OAuth 2.0 Credentials:
- Go to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "OAuth client ID"
- Choose either "Desktop app" or "Web application" as application type
- Give it a name and click "Create"
- For Web application, add http://localhost:3000/oauth2callback
to the authorized redirect URIs
- Download the JSON file of your client's OAuth keys
- Rename the key file to gcp-oauth.keys.json
You can authenticate in two ways:
a. Global Authentication (Recommended):
# First time: Place gcp-oauth.keys.json in your home directory's .calendar-mcp folder
mkdir -p ~/.calendar-mcp
mv gcp-oauth.keys.json ~/.calendar-mcp/
# Run authentication from anywhere
npx @gongrzhe/server-calendar-autoauth-mcp auth
b. Local Authentication:
# Place gcp-oauth.keys.json in your current directory
# The file will be automatically copied to global config
npx @gongrzhe/server-calendar-autoauth-mcp auth
The authentication process will:
- Look for gcp-oauth.keys.json
in the current directory or ~/.calendar-mcp/
- If found in current directory, copy it to ~/.calendar-mcp/
- Open your default browser for Google authentication
- Save credentials as ~/.calendar-mcp/credentials.json
Note: - After successful authentication, credentials are stored globally in
~/.calendar-mcp/
and can be used from any directory - Both Desktop app and Web application credentials are supported - For Web application credentials, make sure to addhttp://localhost:3000/oauth2callback
to your authorized redirect URIs
{
"mcpServers": {
"calendar": {
"command": "npx",
"args": [
"@gongrzhe/server-calendar-autoauth-mcp"
]
}
}
}
If you prefer using Docker:
Authentication:
docker run -i --rm
--mount type=bind,source=/path/to/gcp-oauth.keys.json,target=/gcp-oauth.keys.json
-v mcp-calendar:/calendar-server
-e CALENDAR_OAUTH_PATH=/gcp-oauth.keys.json
-e "CALENDAR_CREDENTIALS_PATH=/calendar-server/credentials.json"
-p 3000:3000
mcp/calendar auth
Usage:
{
"mcpServers": {
"calendar": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"mcp-calendar:/calendar-server",
"-e",
"CALENDAR_CREDENTIALS_PATH=/calendar-server/credentials.json",
"mcp/calendar"
]
}
}
}
The server provides several tools that can be used through the Claude Desktop:
{
"summary": "Team Meeting",
"start": {
"dateTime": "2024-01-20T10:00:00Z"
},
"end": {
"dateTime": "2024-01-20T11:00:00Z"
},
"description": "Weekly team sync",
"location": "Conference Room A"
}
{
"timeMin": "2024-01-01T00:00:00Z",
"timeMax": "2024-12-31T23:59:59Z",
"maxResults": 10,
"orderBy": "startTime"
}
{
"eventId": "event123",
"summary": "Updated Meeting Title",
"start": {
"dateTime": "2024-01-20T11:00:00Z"
},
"end": {
"dateTime": "2024-01-20T12:00:00Z"
}
}
{
"eventId": "event123"
}
~/.calendar-mcp/
)gcp-oauth.keys.json
is in either your current directory or ~/.calendar-mcp/
Check file permissions
Invalid Credentials Format
web
or installed
credentialsFor web applications, verify the redirect URI is correctly configured
Port Already in Use
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the ISC License.
gongrzhe
If you encounter any issues or have questions, please file an issue on the GitHub repository.