You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
3. In Claude settings, go to Model Context Protocol > Add MCP server
72
-
4. Enter the details above (or import a JSON file with these contents)
80
+
2. Replace `/path/to/mcp-google-calendar/mcp-server.js` with the actual path to your mcp-server.js file
81
+
3. Replace the Google API credentials with your own
82
+
4. In Claude desktop app, go to Settings > MCP Servers, or in Claude web app, use the MCP configuration panel
73
83
5. Claude will now be able to manage your Google Calendar
74
84
75
-
## MCP Endpoints
85
+
## MCP Tools
86
+
87
+
This server provides the following MCP tools:
76
88
77
-
-`/mcp/definition` - GET endpoint that returns the capabilities of this MCP server
78
-
-`/mcp/execute` - POST endpoint for executing actions on Google Calendar
89
+
### Authentication Tools
90
+
-`get_auth_url` - Get the URL for Google Calendar authentication
91
+
-`check_auth_status` - Check if the user is authenticated with Google Calendar
79
92
80
-
##Supported Actions
93
+
### Calendar Tools
81
94
82
95
### Core Calendar Operations
83
96
-`list_calendars` - List all available calendars
@@ -102,33 +115,56 @@ To use this MCP server with Claude:
102
115
103
116
All event-related actions support an optional `calendarId` parameter to work with different calendars. If not specified, the primary calendar is used by default.
104
117
105
-
## Example Usage
118
+
## Example Usage with MCP Tools
119
+
120
+
When using this MCP server with Claude or other MCP-compatible assistants, you can use the tools directly. Here are some examples:
121
+
122
+
### Authentication
123
+
124
+
```
125
+
// Get authentication URL
126
+
use_mcp_tool(
127
+
server_name: "googleCalendar",
128
+
tool_name: "get_auth_url",
129
+
arguments: {}
130
+
)
131
+
132
+
// Check authentication status
133
+
use_mcp_tool(
134
+
server_name: "googleCalendar",
135
+
tool_name: "check_auth_status",
136
+
arguments: {}
137
+
)
138
+
```
106
139
107
140
### List Calendars
108
-
```json
109
-
{
110
-
"action": "list_calendars",
111
-
"parameters": {}
112
-
}
141
+
```
142
+
use_mcp_tool(
143
+
server_name: "googleCalendar",
144
+
tool_name: "list_calendars",
145
+
arguments: {}
146
+
)
113
147
```
114
148
115
149
### List Events
116
-
```json
117
-
{
118
-
"action": "list_events",
119
-
"parameters": {
150
+
```
151
+
use_mcp_tool(
152
+
server_name: "googleCalendar",
153
+
tool_name: "list_events",
154
+
arguments: {
120
155
"calendarId": "primary",
121
156
"timeMin": "2023-01-01T00:00:00Z",
122
157
"maxResults": 10
123
158
}
124
-
}
159
+
)
125
160
```
126
161
127
162
### Create Event
128
-
```json
129
-
{
130
-
"action": "create_event",
131
-
"parameters": {
163
+
```
164
+
use_mcp_tool(
165
+
server_name: "googleCalendar",
166
+
tool_name: "create_event",
167
+
arguments: {
132
168
"calendarId": "primary",
133
169
"summary": "Team Meeting",
134
170
"description": "Weekly team sync",
@@ -142,25 +178,27 @@ All event-related actions support an optional `calendarId` parameter to work wit
142
178
"timeZone": "America/Los_Angeles"
143
179
}
144
180
}
145
-
}
181
+
)
146
182
```
147
183
148
184
### Get Event
149
-
```json
150
-
{
151
-
"action": "get_event",
152
-
"parameters": {
185
+
```
186
+
use_mcp_tool(
187
+
server_name: "googleCalendar",
188
+
tool_name: "get_event",
189
+
arguments: {
153
190
"calendarId": "primary",
154
191
"eventId": "event_id_here"
155
192
}
156
-
}
193
+
)
157
194
```
158
195
159
196
### Update Event
160
-
```json
161
-
{
162
-
"action": "update_event",
163
-
"parameters": {
197
+
```
198
+
use_mcp_tool(
199
+
server_name: "googleCalendar",
200
+
tool_name: "update_event",
201
+
arguments: {
164
202
"calendarId": "primary",
165
203
"eventId": "event_id_here",
166
204
"summary": "Updated Meeting Title",
@@ -175,122 +213,41 @@ All event-related actions support an optional `calendarId` parameter to work wit
175
213
"timeZone": "America/Los_Angeles"
176
214
}
177
215
}
178
-
}
216
+
)
179
217
```
180
218
181
219
### Delete Event
182
-
```json
183
-
{
184
-
"action": "delete_event",
185
-
"parameters": {
220
+
```
221
+
use_mcp_tool(
222
+
server_name: "googleCalendar",
223
+
tool_name: "delete_event",
224
+
arguments: {
186
225
"calendarId": "primary",
187
226
"eventId": "event_id_here"
188
227
}
189
-
}
228
+
)
190
229
```
191
230
192
231
### Find Duplicate Events
193
-
```json
194
-
{
195
-
"action": "find_duplicates",
196
-
"parameters": {
232
+
```
233
+
use_mcp_tool(
234
+
server_name: "googleCalendar",
235
+
tool_name: "find_duplicates",
236
+
arguments: {
197
237
"calendarId": "primary",
198
238
"timeMin": "2023-01-01T00:00:00Z",
199
239
"timeMax": "2023-12-31T23:59:59Z",
200
240
"similarityThreshold": 0.7
201
241
}
202
-
}
203
-
```
204
-
205
-
### List Recurring Instances
206
-
```json
207
-
{
208
-
"action": "list_recurring_instances",
209
-
"parameters": {
210
-
"calendarId": "primary",
211
-
"eventId": "recurring_event_id_here",
212
-
"timeMin": "2023-01-01T00:00:00Z",
213
-
"maxResults": 25
214
-
}
215
-
}
216
-
```
217
-
218
-
### Create Event Exception
219
-
```json
220
-
{
221
-
"action": "create_event_exception",
222
-
"parameters": {
223
-
"calendarId": "primary",
224
-
"recurringEventId": "recurring_event_id_here",
225
-
"originalStartTime": "2023-01-15T09:00:00-07:00",
226
-
"summary": "Special Team Meeting",
227
-
"location": "Virtual Meeting Room",
228
-
"reminders": {
229
-
"useDefault": false,
230
-
"overrides": [
231
-
{ "method": "email", "minutes": 30 },
232
-
{ "method": "popup", "minutes": 15 }
233
-
]
234
-
}
235
-
}
236
-
}
237
-
```
238
-
239
-
### Delete Event Instance
240
-
```json
241
-
{
242
-
"action": "delete_event_instance",
243
-
"parameters": {
244
-
"calendarId": "primary",
245
-
"recurringEventId": "recurring_event_id_here",
246
-
"originalStartTime": "2023-01-22T09:00:00-07:00"
247
-
}
248
-
}
249
-
```
250
-
251
-
### Batch Operations
252
-
```json
253
-
{
254
-
"action": "batch_operations",
255
-
"parameters": {
256
-
"operations": [
257
-
{
258
-
"action": "get_event",
259
-
"parameters": {
260
-
"calendarId": "primary",
261
-
"eventId": "event_id_1"
262
-
}
263
-
},
264
-
{
265
-
"action": "create_event",
266
-
"parameters": {
267
-
"summary": "New Event",
268
-
"start": {
269
-
"dateTime": "2023-02-15T10:00:00-07:00",
270
-
"timeZone": "America/Los_Angeles"
271
-
},
272
-
"end": {
273
-
"dateTime": "2023-02-15T11:00:00-07:00",
274
-
"timeZone": "America/Los_Angeles"
275
-
}
276
-
}
277
-
},
278
-
{
279
-
"action": "delete_event",
280
-
"parameters": {
281
-
"eventId": "event_id_2"
282
-
}
283
-
}
284
-
]
285
-
}
286
-
}
242
+
)
287
243
```
288
244
289
245
### Advanced Search Events
290
-
```json
291
-
{
292
-
"action": "advanced_search_events",
293
-
"parameters": {
246
+
```
247
+
use_mcp_tool(
248
+
server_name: "googleCalendar",
249
+
tool_name: "advanced_search_events",
250
+
arguments: {
294
251
"calendarId": "primary",
295
252
"timeRange": {
296
253
"start": "2023-01-01T00:00:00Z",
@@ -303,18 +260,19 @@ All event-related actions support an optional `calendarId` parameter to work wit
0 commit comments