gogcli-mcp-drive 4.2.0 → 4.2.1
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.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/dist/index.js +51 -12
- package/manifest.json +1 -1
- package/package.json +2 -2
- package/server.json +2 -2
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "Extended Google Drive for Claude via gogcli — auth + full Drive support (upload, download, permissions, comments, shared drives)",
|
|
10
|
-
"version": "4.2.
|
|
10
|
+
"version": "4.2.1"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
|
13
13
|
{
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"displayName": "gogcli (Drive)",
|
|
16
16
|
"source": "./",
|
|
17
17
|
"description": "Extended Google Drive for Claude via gogcli — auth + full Drive support (upload, download, permissions, comments, shared drives)",
|
|
18
|
-
"version": "4.2.
|
|
18
|
+
"version": "4.2.1",
|
|
19
19
|
"author": {
|
|
20
20
|
"name": "Chris Hall"
|
|
21
21
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gogcli-mcp-drive",
|
|
3
3
|
"displayName": "gogcli (Drive)",
|
|
4
|
-
"version": "4.2.
|
|
4
|
+
"version": "4.2.1",
|
|
5
5
|
"description": "Extended Google Drive for Claude via gogcli — auth + full Drive support (upload, download, permissions, comments, shared drives)",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Chris Hall",
|
package/dist/index.js
CHANGED
|
@@ -8,8 +8,8 @@ var __export = (target, all) => {
|
|
|
8
8
|
// ../../node_modules/@chrischall/mcp-utils/dist/cancel/index.js
|
|
9
9
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
10
10
|
var storage = new AsyncLocalStorage();
|
|
11
|
-
function withCallSignal(signal, fn) {
|
|
12
|
-
return signal ? storage.run({ signal }, fn) : fn();
|
|
11
|
+
function withCallSignal(signal, fn, request) {
|
|
12
|
+
return signal ? storage.run({ signal, ...request ? { request } : {} }, fn) : fn();
|
|
13
13
|
}
|
|
14
14
|
function currentCallSignal() {
|
|
15
15
|
return storage.getStore()?.signal;
|
|
@@ -31,6 +31,13 @@ function killOnCancel(child, signal = "SIGTERM") {
|
|
|
31
31
|
return () => ambient.removeEventListener("abort", onAbort);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
// ../../node_modules/@chrischall/mcp-utils/dist/caller/index.js
|
|
35
|
+
import { AsyncLocalStorage as AsyncLocalStorage2 } from "node:async_hooks";
|
|
36
|
+
var storage2 = new AsyncLocalStorage2();
|
|
37
|
+
function withCallerCapabilities(capabilities, fn) {
|
|
38
|
+
return capabilities ? storage2.run(capabilities, fn) : fn();
|
|
39
|
+
}
|
|
40
|
+
|
|
34
41
|
// ../../node_modules/@modelcontextprotocol/server/dist/chunk-Br0eD_fh.mjs
|
|
35
42
|
var __create = Object.create;
|
|
36
43
|
var __defProp2 = Object.defineProperty;
|
|
@@ -34480,6 +34487,15 @@ Hint: ${err.hint}`);
|
|
|
34480
34487
|
}
|
|
34481
34488
|
throw err;
|
|
34482
34489
|
}
|
|
34490
|
+
function mcpRequestFrom(args) {
|
|
34491
|
+
const ctx = args.at(-1);
|
|
34492
|
+
if (typeof ctx !== "object" || ctx === null)
|
|
34493
|
+
return void 0;
|
|
34494
|
+
const req = ctx.mcpReq;
|
|
34495
|
+
if (typeof req !== "object" || req === null)
|
|
34496
|
+
return void 0;
|
|
34497
|
+
return typeof req.notify === "function" ? req : void 0;
|
|
34498
|
+
}
|
|
34483
34499
|
function callSignalFrom(args) {
|
|
34484
34500
|
const ctx = args.at(-1);
|
|
34485
34501
|
if (typeof ctx !== "object" || ctx === null)
|
|
@@ -34490,6 +34506,20 @@ function callSignalFrom(args) {
|
|
|
34490
34506
|
const signal = req.signal;
|
|
34491
34507
|
return signal instanceof AbortSignal ? signal : void 0;
|
|
34492
34508
|
}
|
|
34509
|
+
function declaredCapabilitiesFrom(server) {
|
|
34510
|
+
const inner = server.server;
|
|
34511
|
+
if (typeof inner !== "object" || inner === null)
|
|
34512
|
+
return void 0;
|
|
34513
|
+
const read = inner.getClientCapabilities;
|
|
34514
|
+
if (typeof read !== "function")
|
|
34515
|
+
return void 0;
|
|
34516
|
+
try {
|
|
34517
|
+
const declared = read.call(inner);
|
|
34518
|
+
return typeof declared === "object" && declared !== null ? declared : void 0;
|
|
34519
|
+
} catch {
|
|
34520
|
+
return void 0;
|
|
34521
|
+
}
|
|
34522
|
+
}
|
|
34493
34523
|
function surfaceToolHints(server) {
|
|
34494
34524
|
const register2 = server.registerTool.bind(server);
|
|
34495
34525
|
server.registerTool = (name, config2, cb) => register2(name, config2, (...args) => (
|
|
@@ -34505,15 +34535,24 @@ function surfaceToolHints(server) {
|
|
|
34505
34535
|
// Here because this is the one wrapper every tool already passes
|
|
34506
34536
|
// through: threading the signal by hand would mean editing several
|
|
34507
34537
|
// hundred handlers and missing exactly the ones nobody edits.
|
|
34508
|
-
withCallSignal(callSignalFrom(args), () =>
|
|
34509
|
-
|
|
34510
|
-
|
|
34511
|
-
|
|
34512
|
-
|
|
34513
|
-
|
|
34514
|
-
|
|
34515
|
-
|
|
34516
|
-
|
|
34538
|
+
withCallSignal(callSignalFrom(args), () => (
|
|
34539
|
+
// WHAT THE CALLER CAN DO, made ambient for the same reason and in
|
|
34540
|
+
// the same place (`caller/index.ts`). Only the 2025-era half needs
|
|
34541
|
+
// the wrapper — a 2026-07-28 request answers for itself off its own
|
|
34542
|
+
// envelope — but a guarded tool that cannot tell whether the caller
|
|
34543
|
+
// can be shown a prompt returns one the SDK then refuses to deliver,
|
|
34544
|
+
// and that refusal reaches the caller as an unexplained protocol
|
|
34545
|
+
// error it had no chance to catch.
|
|
34546
|
+
withCallerCapabilities(declaredCapabilitiesFrom(server), () => {
|
|
34547
|
+
let result;
|
|
34548
|
+
try {
|
|
34549
|
+
result = cb(...args);
|
|
34550
|
+
} catch (err) {
|
|
34551
|
+
return hintResultOrRethrow(err);
|
|
34552
|
+
}
|
|
34553
|
+
return result instanceof Promise ? result.catch(hintResultOrRethrow) : result;
|
|
34554
|
+
})
|
|
34555
|
+
), mcpRequestFrom(args))
|
|
34517
34556
|
));
|
|
34518
34557
|
}
|
|
34519
34558
|
async function createMcpServer(opts) {
|
|
@@ -35713,7 +35752,7 @@ var failIfNotEmptyParam = external_exports.boolean().optional().describe(
|
|
|
35713
35752
|
);
|
|
35714
35753
|
|
|
35715
35754
|
// ../gogcli-mcp/src/server.ts
|
|
35716
|
-
var VERSION = true ? "4.2.
|
|
35755
|
+
var VERSION = true ? "4.2.1" : "0.0.0";
|
|
35717
35756
|
|
|
35718
35757
|
// ../gogcli-mcp/src/bootstrap-auth.ts
|
|
35719
35758
|
import { join as join2 } from "node:path";
|
package/manifest.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"manifest_version": "0.3",
|
|
4
4
|
"name": "gogcli-mcp-drive",
|
|
5
5
|
"display_name": "gogcli (Drive)",
|
|
6
|
-
"version": "4.2.
|
|
6
|
+
"version": "4.2.1",
|
|
7
7
|
"description": "Extended Google Drive for Claude via gogcli — auth + full Drive support (upload, download, permissions, comments, shared drives)",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "Chris Hall",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gogcli-mcp-drive",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.1",
|
|
4
4
|
"mcpName": "io.github.chrischall/gogcli-mcp-drive",
|
|
5
5
|
"description": "Extended Google Drive MCP server via gogcli — auth + full Drive support (upload/download/permissions/comments/shared drives)",
|
|
6
6
|
"author": "Claude Code (AI) <https://www.anthropic.com/claude>",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"test:coverage": "vitest run --coverage"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@chrischall/mcp-utils": "^2.
|
|
27
|
+
"@chrischall/mcp-utils": "^2.1.0",
|
|
28
28
|
"@modelcontextprotocol/server": "^2.0.0",
|
|
29
29
|
"zod": "^4.6.1"
|
|
30
30
|
},
|
package/server.json
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"source": "github",
|
|
8
8
|
"subfolder": "packages/gogcli-mcp-drive"
|
|
9
9
|
},
|
|
10
|
-
"version": "4.2.
|
|
10
|
+
"version": "4.2.1",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"identifier": "gogcli-mcp-drive",
|
|
15
|
-
"version": "4.2.
|
|
15
|
+
"version": "4.2.1",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
18
18
|
},
|