gogcli-mcp 2.19.0 → 2.19.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 +1 -1
- package/dist/lib.js +1 -1
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/worker.ts +1 -1
- package/tests/remote-runner.test.ts +37 -0
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
},
|
|
8
8
|
"metadata": {
|
|
9
9
|
"description": "Google Sheets (and more) for Claude via gogcli — read, write, and manage spreadsheets",
|
|
10
|
-
"version": "2.19.
|
|
10
|
+
"version": "2.19.1"
|
|
11
11
|
},
|
|
12
12
|
"plugins": [
|
|
13
13
|
{
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"displayName": "gogcli",
|
|
16
16
|
"source": "./",
|
|
17
17
|
"description": "Google Sheets (and more) for Claude via gogcli — read, write, and manage spreadsheets",
|
|
18
|
-
"version": "2.19.
|
|
18
|
+
"version": "2.19.1",
|
|
19
19
|
"author": {
|
|
20
20
|
"name": "Chris Hall"
|
|
21
21
|
},
|
package/dist/index.js
CHANGED
|
@@ -33072,7 +33072,7 @@ function registerTasksTools(server) {
|
|
|
33072
33072
|
}
|
|
33073
33073
|
|
|
33074
33074
|
// src/server.ts
|
|
33075
|
-
var VERSION = true ? "2.19.
|
|
33075
|
+
var VERSION = true ? "2.19.1" : "0.0.0";
|
|
33076
33076
|
var BASE_TOOL_REGISTRARS = [
|
|
33077
33077
|
registerApiTools,
|
|
33078
33078
|
registerAuthTools,
|
package/dist/lib.js
CHANGED
|
@@ -24978,7 +24978,7 @@ function registerTasksTools(server) {
|
|
|
24978
24978
|
}
|
|
24979
24979
|
|
|
24980
24980
|
// src/server.ts
|
|
24981
|
-
var VERSION = true ? "2.19.
|
|
24981
|
+
var VERSION = true ? "2.19.1" : "0.0.0";
|
|
24982
24982
|
var BASE_TOOL_REGISTRARS = [
|
|
24983
24983
|
registerApiTools,
|
|
24984
24984
|
registerAuthTools,
|
package/manifest.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"manifest_version": "0.3",
|
|
4
4
|
"name": "gogcli-mcp",
|
|
5
5
|
"display_name": "gogcli",
|
|
6
|
-
"version": "2.19.
|
|
6
|
+
"version": "2.19.1",
|
|
7
7
|
"description": "Google Sheets (and more) for Claude via gogcli — read, write, and manage spreadsheets",
|
|
8
8
|
"author": {
|
|
9
9
|
"name": "Chris Hall",
|
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"source": "github",
|
|
8
8
|
"subfolder": "packages/gogcli-mcp"
|
|
9
9
|
},
|
|
10
|
-
"version": "2.19.
|
|
10
|
+
"version": "2.19.1",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"identifier": "gogcli-mcp",
|
|
15
|
-
"version": "2.19.
|
|
15
|
+
"version": "2.19.1",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
18
18
|
},
|
package/src/worker.ts
CHANGED
|
@@ -38,7 +38,7 @@ import { gogAuth, type GogProps } from './connector-auth.js';
|
|
|
38
38
|
// connector with all ~360 tools at once. Add whichever paths you want as separate
|
|
39
39
|
// connectors in claude.ai (each authorizes with the same connector key).
|
|
40
40
|
|
|
41
|
-
const VERSION = '2.19.
|
|
41
|
+
const VERSION = '2.19.1'; // x-release-please-version
|
|
42
42
|
|
|
43
43
|
// Build an McpAgent subclass whose init() registers `registrars` onto its server,
|
|
44
44
|
// each handler wrapped in the ALS scope carrying the per-session Fly executor.
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { readdirSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
1
4
|
import { describe, it, expect, vi, afterEach } from 'vitest';
|
|
2
5
|
import { useRemoteGogRunner } from '../src/remote-runner.js';
|
|
3
6
|
import { runExecutor } from '../src/runner.js';
|
|
@@ -51,3 +54,37 @@ describe('useRemoteGogRunner', () => {
|
|
|
51
54
|
expect((init.headers as Record<string, string>).Authorization).toBe('Bearer secret');
|
|
52
55
|
});
|
|
53
56
|
});
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* The seam is opt-in PER BIN — `useRemoteGogRunner()` is a call in each
|
|
60
|
+
* package's `index.ts`, and a package that omits it spawns the binary no
|
|
61
|
+
* matter what the host sets. That shipped: 2.19.0 wired base, sheets, docs,
|
|
62
|
+
* drive and gmail, and left calendar, classroom, contacts and slides behind,
|
|
63
|
+
* so those four answered every tool call on mcp-host with "gog executable not
|
|
64
|
+
* found" — a host with no binary and no way to ask for the backend.
|
|
65
|
+
*
|
|
66
|
+
* Nothing caught it because each package's suite covers its TOOLS, and
|
|
67
|
+
* `src/index.ts` is excluded from the coverage gate in every package (it is
|
|
68
|
+
* the bin: it boots a server and cannot be imported under test). So this
|
|
69
|
+
* asserts on the source text instead, across the whole workspace — the one
|
|
70
|
+
* check that scales to the next sub-package, which will otherwise be added by
|
|
71
|
+
* copying an index.ts that predates the seam.
|
|
72
|
+
*/
|
|
73
|
+
describe('every package bin', () => {
|
|
74
|
+
const packagesDir = fileURLToPath(new URL('../../', import.meta.url));
|
|
75
|
+
const bins = readdirSync(packagesDir)
|
|
76
|
+
.filter((name) => name.startsWith('gogcli-mcp'))
|
|
77
|
+
.map((name) => [name, join(packagesDir, name, 'src', 'index.ts')] as const);
|
|
78
|
+
|
|
79
|
+
it('finds every package (guards the glob itself against silently matching nothing)', () => {
|
|
80
|
+
expect(bins.length).toBeGreaterThanOrEqual(9);
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
it.each(bins)('%s installs the remote executor before starting the server', (_name, path) => {
|
|
84
|
+
const source = readFileSync(path, 'utf8');
|
|
85
|
+
expect(source).toContain('useRemoteGogRunner()');
|
|
86
|
+
// Order matters as much as presence: `runMcp` starts serving, so a call
|
|
87
|
+
// placed after it could be beaten by a tool call and fall back to spawning.
|
|
88
|
+
expect(source.indexOf('useRemoteGogRunner()')).toBeLessThan(source.indexOf('runMcp({'));
|
|
89
|
+
});
|
|
90
|
+
});
|