gogcli-mcp-drive 2.23.2 → 2.24.0

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.
@@ -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": "2.23.2"
10
+ "version": "2.24.0"
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": "2.23.2",
18
+ "version": "2.24.0",
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": "2.23.2",
4
+ "version": "2.24.0",
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
@@ -31743,6 +31743,7 @@ function formatAuthHealth(raw, now) {
31743
31743
  // ../gogcli-mcp/src/tools/auth.ts
31744
31744
  function registerAuthToolsWith(server, defaultServices) {
31745
31745
  const servicesDescribe = `Services to authorize: "all" or comma-separated list (e.g. "sheets,gmail,calendar"). Default: "${defaultServices}". Prefer the narrowest set you need \u2014 requesting a service whose Google API is not enabled on the OAuth client's project makes Google reject the WHOLE request with invalid_scope.`;
31746
+ const extraScopesDescribe = "Additional raw OAuth scope URIs to request, comma-separated, on top of the ones `services` implies. Use for scopes no service covers \u2014 e.g. https://www.googleapis.com/auth/bigquery.readonly, required before gog_sheets_datasource_* can read BigQuery-backed Connected Sheets. Leave unset otherwise: an extra scope whose API is not enabled on the OAuth client project makes Google reject the WHOLE authorization with invalid_scope.";
31746
31747
  server.registerTool("gog_auth_list", {
31747
31748
  description: "List the Google accounts stored in gogcli, with their scopes. This reads local configuration only \u2014 it does not contact Google and does NOT tell you whether an account still works: a signed-out account whose refresh token expired or was revoked is listed here exactly like a healthy one, scopes and all. Use gog_auth_health to check whether an account can actually authenticate.",
31748
31749
  annotations: { readOnlyHint: true },
@@ -31792,11 +31793,14 @@ function registerAuthToolsWith(server, defaultServices) {
31792
31793
  annotations: { destructiveHint: true },
31793
31794
  inputSchema: {
31794
31795
  email: external_exports.string().describe("Google account email to authorize"),
31795
- services: external_exports.string().optional().default(defaultServices).describe(servicesDescribe)
31796
+ services: external_exports.string().optional().default(defaultServices).describe(servicesDescribe),
31797
+ extraScopes: external_exports.string().optional().describe(extraScopesDescribe)
31796
31798
  }
31797
- }, async ({ email: email3, services = defaultServices }) => {
31799
+ }, async ({ email: email3, services = defaultServices, extraScopes }) => {
31798
31800
  try {
31799
- return rawTextResult(await run(["auth", "add", email3, "--services", services], {
31801
+ const args = ["auth", "add", email3, "--services", services];
31802
+ if (extraScopes) args.push(`--extra-scopes=${extraScopes}`, "--force-consent");
31803
+ return rawTextResult(await run(args, {
31800
31804
  interactive: true,
31801
31805
  timeout: 3e5
31802
31806
  }));
@@ -31808,14 +31812,14 @@ function registerAuthToolsWith(server, defaultServices) {
31808
31812
  description: "Begin REMOTE/headless Google authorization (step 1 of 2). Returns a sign-in URL to open in any browser \u2014 no local server or terminal on the gogcli host is needed, so this works over the hosted connector where the interactive gog_auth_add cannot. Hand the URL to the user; after they sign in, the browser is redirected to a localhost URL that fails to load \u2014 that is expected. They copy that full redirected URL (from the address bar) and you pass it to gog_auth_add_complete. The link is valid for 10 minutes. If you pass a custom `services` here, pass the SAME value to gog_auth_add_complete or the second step will not match this one.",
31809
31813
  inputSchema: {
31810
31814
  email: external_exports.string().describe("Google account email to authorize"),
31811
- services: external_exports.string().optional().default(defaultServices).describe(servicesDescribe)
31815
+ services: external_exports.string().optional().default(defaultServices).describe(servicesDescribe),
31816
+ extraScopes: external_exports.string().optional().describe(`${extraScopesDescribe} Pass the SAME value to gog_auth_add_complete.`)
31812
31817
  }
31813
- }, async ({ email: email3, services = defaultServices }) => {
31818
+ }, async ({ email: email3, services = defaultServices, extraScopes }) => {
31814
31819
  try {
31815
- return rawTextResult(await run(
31816
- ["auth", "add", email3, "--remote", "--step", "1", "--services", services, "--force-consent"],
31817
- { redactMode: "tokens" }
31818
- ));
31820
+ const args = ["auth", "add", email3, "--remote", "--step", "1", "--services", services, "--force-consent"];
31821
+ if (extraScopes) args.push(`--extra-scopes=${extraScopes}`);
31822
+ return rawTextResult(await run(args, { redactMode: "tokens" }));
31819
31823
  } catch (err) {
31820
31824
  return errorResult(errorText(err));
31821
31825
  }
@@ -31830,25 +31834,28 @@ function registerAuthToolsWith(server, defaultServices) {
31830
31834
  ),
31831
31835
  services: external_exports.string().optional().default(defaultServices).describe(
31832
31836
  `Services authorized \u2014 MUST match the value passed to gog_auth_add_url. Default: "${defaultServices}".`
31837
+ ),
31838
+ extraScopes: external_exports.string().optional().describe(
31839
+ "Extra OAuth scope URIs \u2014 MUST match the value passed to gog_auth_add_url, for the same reason `services` must: the two steps have to describe the same grant."
31833
31840
  )
31834
31841
  }
31835
- }, async ({ email: email3, redirectUrl, services = defaultServices }) => {
31842
+ }, async ({ email: email3, redirectUrl, services = defaultServices, extraScopes }) => {
31836
31843
  try {
31837
- return rawTextResult(await run(
31838
- [
31839
- "auth",
31840
- "add",
31841
- email3,
31842
- "--remote",
31843
- "--step",
31844
- "2",
31845
- "--auth-url",
31846
- redirectUrl,
31847
- "--services",
31848
- services,
31849
- "--force-consent"
31850
- ]
31851
- ));
31844
+ const args = [
31845
+ "auth",
31846
+ "add",
31847
+ email3,
31848
+ "--remote",
31849
+ "--step",
31850
+ "2",
31851
+ "--auth-url",
31852
+ redirectUrl,
31853
+ "--services",
31854
+ services,
31855
+ "--force-consent"
31856
+ ];
31857
+ if (extraScopes) args.push(`--extra-scopes=${extraScopes}`);
31858
+ return rawTextResult(await run(args));
31852
31859
  } catch (err) {
31853
31860
  return errorResult(errorText(err));
31854
31861
  }
@@ -32089,7 +32096,7 @@ var failIfNotEmptyParam = external_exports.boolean().optional().describe(
32089
32096
  );
32090
32097
 
32091
32098
  // ../gogcli-mcp/src/server.ts
32092
- var VERSION = true ? "2.23.2" : "0.0.0";
32099
+ var VERSION = true ? "2.24.0" : "0.0.0";
32093
32100
 
32094
32101
  // ../gogcli-mcp/src/auth-log.ts
32095
32102
  var FAILURES = /* @__PURE__ */ new Set([
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": "2.23.2",
6
+ "version": "2.24.0",
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": "2.23.2",
3
+ "version": "2.24.0",
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>",
package/server.json CHANGED
@@ -7,12 +7,12 @@
7
7
  "source": "github",
8
8
  "subfolder": "packages/gogcli-mcp-drive"
9
9
  },
10
- "version": "2.23.2",
10
+ "version": "2.24.0",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "gogcli-mcp-drive",
15
- "version": "2.23.2",
15
+ "version": "2.24.0",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },