groove-dev 0.17.7 → 0.17.8
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/node_modules/@groove-dev/daemon/integrations-registry.json +10 -8
- package/node_modules/@groove-dev/daemon/src/integrations.js +39 -0
- package/node_modules/@groove-dev/gui/dist/assets/{index-CsymvgNh.js → index-D5dtDQf0.js} +22 -22
- package/node_modules/@groove-dev/gui/dist/index.html +1 -1
- package/node_modules/@groove-dev/gui/src/views/IntegrationsStore.jsx +45 -7
- package/package.json +1 -1
- package/packages/daemon/integrations-registry.json +10 -8
- package/packages/daemon/src/integrations.js +39 -0
- package/packages/gui/dist/assets/{index-CsymvgNh.js → index-D5dtDQf0.js} +22 -22
- package/packages/gui/dist/index.html +1 -1
- package/packages/gui/src/views/IntegrationsStore.jsx +45 -7
|
@@ -99,12 +99,13 @@
|
|
|
99
99
|
"transport": "stdio",
|
|
100
100
|
"command": "npx",
|
|
101
101
|
"args": ["-y", "@gongrzhe/server-calendar-autoauth-mcp"],
|
|
102
|
-
"authType": "
|
|
102
|
+
"authType": "google-autoauth",
|
|
103
|
+
"oauthKeysDir": ".calendar-mcp",
|
|
103
104
|
"envKeys": [],
|
|
104
105
|
"setupSteps": [
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"Done —
|
|
106
|
+
"One-time: link your Google Cloud OAuth app (shared across all Google integrations)",
|
|
107
|
+
"Click 'Sign in with Google' — a browser opens for authorization",
|
|
108
|
+
"Done — the MCP server handles token refresh automatically"
|
|
108
109
|
],
|
|
109
110
|
"featured": false,
|
|
110
111
|
"downloads": 0,
|
|
@@ -124,12 +125,13 @@
|
|
|
124
125
|
"transport": "stdio",
|
|
125
126
|
"command": "npx",
|
|
126
127
|
"args": ["-y", "@gongrzhe/server-gmail-autoauth-mcp"],
|
|
127
|
-
"authType": "
|
|
128
|
+
"authType": "google-autoauth",
|
|
129
|
+
"oauthKeysDir": ".gmail-mcp",
|
|
128
130
|
"envKeys": [],
|
|
129
131
|
"setupSteps": [
|
|
130
|
-
"
|
|
131
|
-
"
|
|
132
|
-
"Done —
|
|
132
|
+
"One-time: link your Google Cloud OAuth app (shared across all Google integrations)",
|
|
133
|
+
"Click 'Sign in with Google' — a browser opens for authorization",
|
|
134
|
+
"Done — the MCP server handles token refresh automatically"
|
|
133
135
|
],
|
|
134
136
|
"featured": false,
|
|
135
137
|
"downloads": 0,
|
|
@@ -467,6 +467,12 @@ export class IntegrationStore {
|
|
|
467
467
|
const entry = this.registry.find((s) => s.id === integrationId);
|
|
468
468
|
if (!entry) throw new Error(`Integration not found: ${integrationId}`);
|
|
469
469
|
|
|
470
|
+
// For google-autoauth integrations, write the gcp-oauth.keys.json file
|
|
471
|
+
// that the MCP server expects before it can start the OAuth browser flow
|
|
472
|
+
if (entry.authType === 'google-autoauth') {
|
|
473
|
+
this._writeGoogleOAuthKeys(entry);
|
|
474
|
+
}
|
|
475
|
+
|
|
470
476
|
const command = entry.command || 'npx';
|
|
471
477
|
const args = entry.args || ['-y', entry.npmPackage];
|
|
472
478
|
|
|
@@ -531,6 +537,39 @@ export class IntegrationStore {
|
|
|
531
537
|
};
|
|
532
538
|
}
|
|
533
539
|
|
|
540
|
+
/**
|
|
541
|
+
* Write gcp-oauth.keys.json for Google auto-auth MCP servers.
|
|
542
|
+
* These servers need a Google Cloud OAuth client file at a specific path
|
|
543
|
+
* before they can open the browser for user consent.
|
|
544
|
+
*/
|
|
545
|
+
_writeGoogleOAuthKeys(entry) {
|
|
546
|
+
const clientId = this.getCredential('google-oauth', 'GOOGLE_CLIENT_ID');
|
|
547
|
+
const clientSecret = this.getCredential('google-oauth', 'GOOGLE_CLIENT_SECRET');
|
|
548
|
+
if (!clientId || !clientSecret) {
|
|
549
|
+
throw new Error('Google OAuth not configured. Click "Sign in with Google" to set up your Google Cloud credentials first.');
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
const keysContent = JSON.stringify({
|
|
553
|
+
installed: {
|
|
554
|
+
client_id: clientId,
|
|
555
|
+
client_secret: clientSecret,
|
|
556
|
+
auth_uri: 'https://accounts.google.com/o/oauth2/auth',
|
|
557
|
+
token_uri: 'https://oauth2.googleapis.com/token',
|
|
558
|
+
redirect_uris: ['http://localhost'],
|
|
559
|
+
},
|
|
560
|
+
}, null, 2);
|
|
561
|
+
|
|
562
|
+
// Write to the directory the MCP server expects (e.g., ~/.gmail-mcp/)
|
|
563
|
+
const keysDir = entry.oauthKeysDir;
|
|
564
|
+
if (keysDir) {
|
|
565
|
+
const homedir = process.env.HOME || process.env.USERPROFILE || '~';
|
|
566
|
+
const dirPath = resolve(homedir, keysDir);
|
|
567
|
+
mkdirSync(dirPath, { recursive: true });
|
|
568
|
+
const keysPath = resolve(dirPath, 'gcp-oauth.keys.json');
|
|
569
|
+
writeFileSync(keysPath, keysContent, { mode: 0o600 });
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
|
|
534
573
|
// --- Internal ---
|
|
535
574
|
|
|
536
575
|
_isInstalled(integrationId) {
|