@kembec/gcal-mcp-linux-x64 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +66 -19
  2. package/bin/gcal-mcp +0 -0
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # gcal-mcp
2
2
 
3
- An MCP server that exposes Google Calendar as tools for any model that speaks the Model Context Protocol.
3
+ MCP server for Google Calendar. Single Rust binary, no daemon, handles OAuth2 PKCE itself point it at a credentials JSON, authorize once, tokens refresh silently.
4
4
 
5
- The binary talks JSON-RPC 2.0 over stdio, the same way language servers and other MCP servers do. It handles the Google OAuth2 PKCE flow itself — point it at a downloaded OAuth client JSON, run it once, and tokens are cached under `~/.config/kembec/gcal-mcp/tokens/`. The server stays small (a single Rust binary, no daemon) and reuses one refresh token per account.
5
+ [![npm](https://img.shields.io/npm/v/@kembec/gcal-mcp)](https://www.npmjs.com/package/@kembec/gcal-mcp)
6
+ [![license](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
7
+ [![platforms](https://img.shields.io/badge/platforms-macOS%20%7C%20Linux%20%7C%20Windows-lightgrey)](#)
6
8
 
7
9
  ## Install
8
10
 
@@ -10,46 +12,91 @@ The binary talks JSON-RPC 2.0 over stdio, the same way language servers and othe
10
12
  npm install -g @kembec/gcal-mcp
11
13
  ```
12
14
 
13
- The umbrella package only ships a thin Node launcher; the actual binary comes from the matching `@kembec/gcal-mcp-<platform>` optional dependency that npm picks at install time. Supported targets: `darwin-arm64`, `darwin-x64`, `linux-x64`, `win32-x64`.
15
+ Supported targets: `darwin-arm64`, `darwin-x64`, `linux-x64`, `win32-x64`.
14
16
 
15
- You can also build from source:
17
+ Or build from source:
16
18
 
17
19
  ```sh
18
- git clone <this-repo>
20
+ git clone https://github.com/Kembec/gcal-mcp.git
19
21
  cd gcal-mcp
20
22
  cargo build --release
21
- # binary at target/release/gcal-mcp
22
23
  ```
23
24
 
24
25
  ## Configure
25
26
 
26
- 1. Create an OAuth client in the Google Cloud Console. Choose "Desktop app". Download the resulting JSON.
27
- 2. Point the server at it:
27
+ 1. Create an OAuth client in the [Google Cloud Console](https://console.cloud.google.com). Choose **Desktop app**. Download the JSON.
28
+ 2. Set the env var pointing to it:
28
29
 
29
- ```sh
30
- export GOOGLE_OAUTH_CREDENTIALS=/path/to/client_secret.json
31
- ```
30
+ ```sh
31
+ export GOOGLE_OAUTH_CREDENTIALS=/path/to/client_secret.json
32
+ ```
32
33
 
33
- 3. On the first tool call that needs the API, the server opens a browser, waits for the callback on `http://127.0.0.1:8080/callback`, and writes a token file. Subsequent runs refresh silently.
34
+ 3. On the first tool call the server opens a browser for authorization, catches the callback on a random local port, and writes a token under `~/.config/kembec/gcal-mcp/tokens/`. Subsequent runs refresh silently.
34
35
 
35
36
  The Calendar scope used is `https://www.googleapis.com/auth/calendar`.
36
37
 
37
- ## Use from an MCP client
38
+ ## Add to your MCP client
39
+
40
+ ### Cursor / Claude Desktop
41
+
42
+ ```json
43
+ {
44
+ "mcpServers": {
45
+ "gcal": {
46
+ "command": "gcal-mcp",
47
+ "env": {
48
+ "GOOGLE_OAUTH_CREDENTIALS": "/path/to/client_secret.json"
49
+ }
50
+ }
51
+ }
52
+ }
53
+ ```
38
54
 
39
- Add the binary to your client config (Claude Desktop, OpenClaw, etc.) as a stdio MCP server:
55
+ Or with `npx`:
40
56
 
41
57
  ```json
42
58
  {
43
- "command": "gcal-mcp",
44
- "env": {
45
- "GOOGLE_OAUTH_CREDENTIALS": "/path/to/client_secret.json"
59
+ "mcpServers": {
60
+ "gcal": {
61
+ "command": "npx",
62
+ "args": ["-y", "@kembec/gcal-mcp"],
63
+ "env": {
64
+ "GOOGLE_OAUTH_CREDENTIALS": "/path/to/client_secret.json"
65
+ }
66
+ }
46
67
  }
47
68
  }
48
69
  ```
49
70
 
50
- The server advertises 11 tools: `list-calendars`, `list-events`, `search-events`, `get-event`, `create-event`, `update-event`, `delete-event`, `respond-to-event`, `get-freebusy`, `get-current-time`, and `manage-accounts`. Each one takes a JSON `arguments` object; required fields are validated up front and reported as `-32602` errors. `manage-accounts` is the entry point for adding or removing additional Google accounts — most other tools accept an optional `account` field to pick which stored token to use.
71
+ ## Tools
72
+
73
+ | Tool | Description |
74
+ |------|-------------|
75
+ | `list-calendars` | List all calendars on the account |
76
+ | `list-events` | List events from a calendar with optional time window |
77
+ | `search-events` | Full-text search over events |
78
+ | `get-event` | Fetch a single event by id |
79
+ | `create-event` | Create an event (RFC3339 or `YYYY-MM-DD` for all-day) |
80
+ | `update-event` | Patch an existing event |
81
+ | `delete-event` | Delete an event |
82
+ | `respond-to-event` | Accept / decline / tentative an invitation |
83
+ | `get-freebusy` | Query free/busy windows across calendars |
84
+ | `get-current-time` | Return current UTC time |
85
+ | `manage-accounts` | Add, list, or remove stored OAuth accounts |
86
+
87
+ All tools accept an optional `account` field to select which stored token to use (defaults to `"default"`).
88
+
89
+ ## Multi-account
90
+
91
+ ```json
92
+ { "name": "manage-accounts", "arguments": { "action": "add", "account_name": "work" } }
93
+ ```
94
+
95
+ Then pass `"account": "work"` to any tool.
96
+
97
+ ## Token storage
51
98
 
52
- Datetimes are RFC3339 (e.g. `2026-05-14T10:00:00-05:00`). Pass `YYYY-MM-DD` to `start`/`end` of `create-event` to make an all-day event. Pass an IANA `timezone` to attach a `timeZone` to dated events.
99
+ Tokens live in `~/.config/kembec/gcal-mcp/tokens/<account>.json` with `0600` permissions (Unix). The directory is `0700`.
53
100
 
54
101
  ## License
55
102
 
package/bin/gcal-mcp CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kembec/gcal-mcp-linux-x64",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "gcal-mcp binary for linux x64",
5
5
  "os": ["linux"],
6
6
  "cpu": ["x64"],