@astramindapp/mcp-server 0.21.0 → 0.22.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.
- package/README.md +35 -6
- package/dist/oauth-connect.d.ts +36 -0
- package/dist/oauth-connect.d.ts.map +1 -0
- package/dist/oauth-connect.js +291 -0
- package/dist/oauth-connect.js.map +1 -0
- package/dist/setup.d.ts +5 -2
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +54 -15
- package/dist/setup.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -37,19 +37,48 @@ Your AI agents forget everything between sessions. MIND fixes that. Connect any
|
|
|
37
37
|
|
|
38
38
|
## Quick Start
|
|
39
39
|
|
|
40
|
-
###
|
|
40
|
+
### Fastest: one-paste remote connect (Claude Code / Claude Desktop / claude.ai)
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
No install, no API key handling — paste one command, click **Connect** in the
|
|
43
|
+
browser, done:
|
|
43
44
|
|
|
44
|
-
|
|
45
|
+
```bash
|
|
46
|
+
claude mcp add --transport http mind https://m-i-n-d.ai/mcp
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Claude opens the m-i-n-d.ai consent page, you click **Connect**, and MIND is
|
|
50
|
+
live. Auth, key minting, and refresh are all handled by OAuth.
|
|
51
|
+
|
|
52
|
+
### Local stdio install: browser-connect setup wizard
|
|
53
|
+
|
|
54
|
+
For tools that run MCP servers locally (Claude Desktop, Cursor, Windsurf,
|
|
55
|
+
VS Code Copilot), run the setup wizard — it opens your browser, you click
|
|
56
|
+
**Connect** on m-i-n-d.ai, and it receives your API key automatically and
|
|
57
|
+
writes every tool config for you:
|
|
45
58
|
|
|
46
59
|
```bash
|
|
47
|
-
|
|
60
|
+
npx -y @astramindapp/mcp-server@latest mind-mcp-setup
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
No manual key copying. The wizard auto-detects your installed AI tools and
|
|
64
|
+
configures each one.
|
|
65
|
+
|
|
66
|
+
### Manual alternative: paste an API key
|
|
67
|
+
|
|
68
|
+
If you'd rather mint a key yourself: sign up at
|
|
69
|
+
[m-i-n-d.ai](https://m-i-n-d.ai) → Settings → Developer → Create API Key, then:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npx -y @astramindapp/mcp-server@latest mind-mcp-setup --key mind_xxx
|
|
48
73
|
```
|
|
49
74
|
|
|
50
|
-
|
|
75
|
+
or install globally and configure by hand:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
npm install -g @astramindapp/mcp-server
|
|
79
|
+
```
|
|
51
80
|
|
|
52
|
-
#### Claude Code
|
|
81
|
+
#### Claude Code (local stdio with a manual key)
|
|
53
82
|
|
|
54
83
|
```bash
|
|
55
84
|
claude mcp add mind -- env MIND_API_KEY=mind_xxx mind-mcp
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MIND MCP Setup — browser OAuth connect.
|
|
3
|
+
*
|
|
4
|
+
* Implements the loopback OAuth 2.1 Authorization Code + PKCE flow against
|
|
5
|
+
* the MIND backend (backend/routes/mcp_oauth_routes.py):
|
|
6
|
+
*
|
|
7
|
+
* 1. Start a local HTTP server on 127.0.0.1 (OS-assigned port), path /callback.
|
|
8
|
+
* 2. Dynamically register a public client (RFC 7591) at {base}/oauth/mcp/register.
|
|
9
|
+
* 3. Open {base}/oauth/mcp/authorize in the default browser — the user clicks
|
|
10
|
+
* "Connect" on the m-i-n-d.ai consent page.
|
|
11
|
+
* 4. The browser is redirected back to the loopback server with ?code=...&state=...
|
|
12
|
+
* 5. Exchange the code at {base}/oauth/mcp/token (PKCE verified) and receive a
|
|
13
|
+
* standard `mind_` API key as the access token.
|
|
14
|
+
*
|
|
15
|
+
* No dependencies beyond Node built-ins (http, crypto, child_process) and the
|
|
16
|
+
* global fetch available in Node 18+.
|
|
17
|
+
*/
|
|
18
|
+
export interface ConnectViaBrowserOptions {
|
|
19
|
+
/**
|
|
20
|
+
* Open the system browser automatically. Defaults to true; set to false
|
|
21
|
+
* (or set env MIND_CONNECT_NO_BROWSER=1) to print the URL instead.
|
|
22
|
+
*/
|
|
23
|
+
openBrowser?: boolean;
|
|
24
|
+
/** Invoked with the authorize URL once it is known (always called). */
|
|
25
|
+
onAuthorizeUrl?: (url: string) => void;
|
|
26
|
+
/** OAuth client display name shown on the consent screen. */
|
|
27
|
+
clientName?: string;
|
|
28
|
+
/** Flow timeout in milliseconds (default 5 minutes). */
|
|
29
|
+
timeoutMs?: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Run the full browser OAuth flow against a MIND backend and return the
|
|
33
|
+
* minted `mind_` API key.
|
|
34
|
+
*/
|
|
35
|
+
export declare function connectViaBrowser(baseUrl: string, options?: ConnectViaBrowserOptions): Promise<string>;
|
|
36
|
+
//# sourceMappingURL=oauth-connect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-connect.d.ts","sourceRoot":"","sources":["../src/oauth-connect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuID;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,MAAM,CAAC,CAkJjB"}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MIND MCP Setup — browser OAuth connect.
|
|
4
|
+
*
|
|
5
|
+
* Implements the loopback OAuth 2.1 Authorization Code + PKCE flow against
|
|
6
|
+
* the MIND backend (backend/routes/mcp_oauth_routes.py):
|
|
7
|
+
*
|
|
8
|
+
* 1. Start a local HTTP server on 127.0.0.1 (OS-assigned port), path /callback.
|
|
9
|
+
* 2. Dynamically register a public client (RFC 7591) at {base}/oauth/mcp/register.
|
|
10
|
+
* 3. Open {base}/oauth/mcp/authorize in the default browser — the user clicks
|
|
11
|
+
* "Connect" on the m-i-n-d.ai consent page.
|
|
12
|
+
* 4. The browser is redirected back to the loopback server with ?code=...&state=...
|
|
13
|
+
* 5. Exchange the code at {base}/oauth/mcp/token (PKCE verified) and receive a
|
|
14
|
+
* standard `mind_` API key as the access token.
|
|
15
|
+
*
|
|
16
|
+
* No dependencies beyond Node built-ins (http, crypto, child_process) and the
|
|
17
|
+
* global fetch available in Node 18+.
|
|
18
|
+
*/
|
|
19
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k;
|
|
21
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
22
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
23
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(o, k2, desc);
|
|
26
|
+
}) : (function(o, m, k, k2) {
|
|
27
|
+
if (k2 === undefined) k2 = k;
|
|
28
|
+
o[k2] = m[k];
|
|
29
|
+
}));
|
|
30
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
31
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
32
|
+
}) : function(o, v) {
|
|
33
|
+
o["default"] = v;
|
|
34
|
+
});
|
|
35
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
36
|
+
var ownKeys = function(o) {
|
|
37
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
38
|
+
var ar = [];
|
|
39
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
40
|
+
return ar;
|
|
41
|
+
};
|
|
42
|
+
return ownKeys(o);
|
|
43
|
+
};
|
|
44
|
+
return function (mod) {
|
|
45
|
+
if (mod && mod.__esModule) return mod;
|
|
46
|
+
var result = {};
|
|
47
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
48
|
+
__setModuleDefault(result, mod);
|
|
49
|
+
return result;
|
|
50
|
+
};
|
|
51
|
+
})();
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
exports.connectViaBrowser = connectViaBrowser;
|
|
54
|
+
const http = __importStar(require("http"));
|
|
55
|
+
const crypto = __importStar(require("crypto"));
|
|
56
|
+
const child_process_1 = require("child_process");
|
|
57
|
+
const DEFAULT_TIMEOUT_MS = 5 * 60 * 1000; // 5 minutes
|
|
58
|
+
const CALLBACK_PATH = "/callback";
|
|
59
|
+
const DEFAULT_CLIENT_NAME = "MIND Setup CLI";
|
|
60
|
+
function base64url(buf) {
|
|
61
|
+
return buf.toString("base64url");
|
|
62
|
+
}
|
|
63
|
+
/** RFC 7636 §4.1 — 43–128 char base64url verifier. 64 random bytes → 86 chars. */
|
|
64
|
+
function generatePkcePair() {
|
|
65
|
+
const verifier = base64url(crypto.randomBytes(64));
|
|
66
|
+
const challenge = base64url(crypto.createHash("sha256").update(verifier, "ascii").digest());
|
|
67
|
+
return { verifier, challenge };
|
|
68
|
+
}
|
|
69
|
+
function openInBrowser(url) {
|
|
70
|
+
try {
|
|
71
|
+
let child;
|
|
72
|
+
if (process.platform === "darwin") {
|
|
73
|
+
child = (0, child_process_1.spawn)("open", [url], { detached: true, stdio: "ignore" });
|
|
74
|
+
}
|
|
75
|
+
else if (process.platform === "win32") {
|
|
76
|
+
// `start` is a cmd built-in; empty "" is the window title slot.
|
|
77
|
+
child = (0, child_process_1.spawn)("cmd", ["/c", "start", "", url.replace(/&/g, "^&")], {
|
|
78
|
+
detached: true,
|
|
79
|
+
stdio: "ignore",
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
child = (0, child_process_1.spawn)("xdg-open", [url], { detached: true, stdio: "ignore" });
|
|
84
|
+
}
|
|
85
|
+
child.on("error", () => {
|
|
86
|
+
/* swallow — the URL is printed as a fallback either way */
|
|
87
|
+
});
|
|
88
|
+
child.unref();
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function htmlPage(title, heading, body, ok) {
|
|
96
|
+
const accent = ok ? "#10b981" : "#ef4444";
|
|
97
|
+
return `<!DOCTYPE html>
|
|
98
|
+
<html lang="en">
|
|
99
|
+
<head>
|
|
100
|
+
<meta charset="utf-8">
|
|
101
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
102
|
+
<title>${title}</title>
|
|
103
|
+
<style>
|
|
104
|
+
body { margin: 0; min-height: 100vh; display: flex; align-items: center; justify-content: center;
|
|
105
|
+
background: #0b0f19; color: #e5e7eb; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
|
|
106
|
+
.card { text-align: center; padding: 48px 56px; border-radius: 16px; background: #111827;
|
|
107
|
+
border: 1px solid #1f2937; box-shadow: 0 20px 60px rgba(0,0,0,.5); max-width: 440px; }
|
|
108
|
+
.badge { font-size: 44px; line-height: 1; margin-bottom: 18px; color: ${accent}; }
|
|
109
|
+
h1 { font-size: 20px; margin: 0 0 10px; font-weight: 600; }
|
|
110
|
+
p { margin: 0; color: #9ca3af; font-size: 14px; line-height: 1.6; }
|
|
111
|
+
</style>
|
|
112
|
+
</head>
|
|
113
|
+
<body>
|
|
114
|
+
<div class="card">
|
|
115
|
+
<div class="badge">${ok ? "✓" : "✕"}</div>
|
|
116
|
+
<h1>${heading}</h1>
|
|
117
|
+
<p>${body}</p>
|
|
118
|
+
</div>
|
|
119
|
+
</body>
|
|
120
|
+
</html>`;
|
|
121
|
+
}
|
|
122
|
+
const SUCCESS_PAGE = htmlPage("Connected to MIND", "✓ Connected to MIND", "You can close this tab and return to your terminal.", true);
|
|
123
|
+
function errorPage(detail) {
|
|
124
|
+
return htmlPage("MIND connection failed", "Connection failed", `${detail} — close this tab and retry from your terminal.`, false);
|
|
125
|
+
}
|
|
126
|
+
async function registerClient(base, redirectUri, clientName) {
|
|
127
|
+
const res = await fetch(`${base}/oauth/mcp/register`, {
|
|
128
|
+
method: "POST",
|
|
129
|
+
headers: { "Content-Type": "application/json" },
|
|
130
|
+
body: JSON.stringify({
|
|
131
|
+
redirect_uris: [redirectUri],
|
|
132
|
+
client_name: clientName,
|
|
133
|
+
}),
|
|
134
|
+
});
|
|
135
|
+
if (!res.ok) {
|
|
136
|
+
const text = await res.text().catch(() => "");
|
|
137
|
+
throw new Error(`Client registration failed (${res.status}): ${text.slice(0, 300)}`);
|
|
138
|
+
}
|
|
139
|
+
const data = (await res.json());
|
|
140
|
+
if (!data.client_id) {
|
|
141
|
+
throw new Error("Client registration response did not include a client_id.");
|
|
142
|
+
}
|
|
143
|
+
return data.client_id;
|
|
144
|
+
}
|
|
145
|
+
async function exchangeCode(base, code, redirectUri, clientId, verifier) {
|
|
146
|
+
const res = await fetch(`${base}/oauth/mcp/token`, {
|
|
147
|
+
method: "POST",
|
|
148
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
149
|
+
body: new URLSearchParams({
|
|
150
|
+
grant_type: "authorization_code",
|
|
151
|
+
code,
|
|
152
|
+
redirect_uri: redirectUri,
|
|
153
|
+
client_id: clientId,
|
|
154
|
+
code_verifier: verifier,
|
|
155
|
+
}).toString(),
|
|
156
|
+
});
|
|
157
|
+
const data = (await res.json().catch(() => ({})));
|
|
158
|
+
if (!res.ok || !data.access_token) {
|
|
159
|
+
const detail = data.error_description || data.error || `HTTP ${res.status}`;
|
|
160
|
+
throw new Error(`Token exchange failed: ${detail}`);
|
|
161
|
+
}
|
|
162
|
+
return data.access_token;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Run the full browser OAuth flow against a MIND backend and return the
|
|
166
|
+
* minted `mind_` API key.
|
|
167
|
+
*/
|
|
168
|
+
async function connectViaBrowser(baseUrl, options = {}) {
|
|
169
|
+
const base = baseUrl.replace(/\/+$/, "");
|
|
170
|
+
const clientName = options.clientName ?? DEFAULT_CLIENT_NAME;
|
|
171
|
+
const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
172
|
+
const shouldOpenBrowser = options.openBrowser ?? process.env.MIND_CONNECT_NO_BROWSER !== "1";
|
|
173
|
+
const { verifier, challenge } = generatePkcePair();
|
|
174
|
+
const state = base64url(crypto.randomBytes(24));
|
|
175
|
+
return new Promise((resolve, reject) => {
|
|
176
|
+
let settled = false;
|
|
177
|
+
let timer;
|
|
178
|
+
const server = http.createServer();
|
|
179
|
+
const finish = (err, key) => {
|
|
180
|
+
if (settled)
|
|
181
|
+
return;
|
|
182
|
+
settled = true;
|
|
183
|
+
if (timer)
|
|
184
|
+
clearTimeout(timer);
|
|
185
|
+
// Stop accepting connections; in-flight responses use "Connection: close"
|
|
186
|
+
// so they flush fully and the server drains on its own.
|
|
187
|
+
server.close();
|
|
188
|
+
// Drop any lingering idle keep-alive sockets so the CLI exits promptly
|
|
189
|
+
// (Node 18.2+). Responses are flushed before this runs because every
|
|
190
|
+
// handler ends the response before calling finish().
|
|
191
|
+
setImmediate(() => {
|
|
192
|
+
server.closeIdleConnections?.();
|
|
193
|
+
});
|
|
194
|
+
if (err)
|
|
195
|
+
reject(err);
|
|
196
|
+
else
|
|
197
|
+
resolve(key);
|
|
198
|
+
};
|
|
199
|
+
server.on("error", (err) => finish(new Error(`Local callback server error: ${err.message}`)));
|
|
200
|
+
server.on("request", (req, res) => {
|
|
201
|
+
void (async () => {
|
|
202
|
+
const url = new URL(req.url ?? "/", "http://127.0.0.1");
|
|
203
|
+
if (url.pathname !== CALLBACK_PATH) {
|
|
204
|
+
res.writeHead(404, { "Content-Type": "text/plain", Connection: "close" });
|
|
205
|
+
res.end("Not found");
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
const respond = (status, html) => {
|
|
209
|
+
res.writeHead(status, {
|
|
210
|
+
"Content-Type": "text/html; charset=utf-8",
|
|
211
|
+
"Cache-Control": "no-store",
|
|
212
|
+
Connection: "close",
|
|
213
|
+
});
|
|
214
|
+
res.end(html);
|
|
215
|
+
};
|
|
216
|
+
const errParam = url.searchParams.get("error");
|
|
217
|
+
if (errParam) {
|
|
218
|
+
const desc = url.searchParams.get("error_description") || errParam;
|
|
219
|
+
respond(400, errorPage(desc));
|
|
220
|
+
finish(new Error(`Authorization failed: ${desc}`));
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
const code = url.searchParams.get("code");
|
|
224
|
+
const returnedState = url.searchParams.get("state");
|
|
225
|
+
if (!code) {
|
|
226
|
+
respond(400, errorPage("No authorization code was returned"));
|
|
227
|
+
finish(new Error("Callback did not include an authorization code."));
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
if (returnedState !== state) {
|
|
231
|
+
respond(400, errorPage("State mismatch — possible cross-site request forgery"));
|
|
232
|
+
finish(new Error("State mismatch on OAuth callback — aborting (possible CSRF). Retry the connection."));
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
try {
|
|
236
|
+
const accessToken = await exchangeCode(base, code, redirectUri, clientId, verifier);
|
|
237
|
+
respond(200, SUCCESS_PAGE);
|
|
238
|
+
finish(null, accessToken);
|
|
239
|
+
}
|
|
240
|
+
catch (err) {
|
|
241
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
242
|
+
respond(502, errorPage(message));
|
|
243
|
+
finish(new Error(message));
|
|
244
|
+
}
|
|
245
|
+
})();
|
|
246
|
+
});
|
|
247
|
+
let redirectUri = "";
|
|
248
|
+
let clientId = "";
|
|
249
|
+
server.listen(0, "127.0.0.1", () => {
|
|
250
|
+
void (async () => {
|
|
251
|
+
try {
|
|
252
|
+
const { port } = server.address();
|
|
253
|
+
redirectUri = `http://127.0.0.1:${port}${CALLBACK_PATH}`;
|
|
254
|
+
clientId = await registerClient(base, redirectUri, clientName);
|
|
255
|
+
const authorizeUrl = `${base}/oauth/mcp/authorize?` +
|
|
256
|
+
new URLSearchParams({
|
|
257
|
+
response_type: "code",
|
|
258
|
+
client_id: clientId,
|
|
259
|
+
redirect_uri: redirectUri,
|
|
260
|
+
state,
|
|
261
|
+
code_challenge: challenge,
|
|
262
|
+
code_challenge_method: "S256",
|
|
263
|
+
scope: "mind:full",
|
|
264
|
+
}).toString();
|
|
265
|
+
options.onAuthorizeUrl?.(authorizeUrl);
|
|
266
|
+
if (shouldOpenBrowser) {
|
|
267
|
+
console.log("Opening your browser to connect to MIND...");
|
|
268
|
+
openInBrowser(authorizeUrl);
|
|
269
|
+
console.log("If the browser didn't open, use this link to connect:");
|
|
270
|
+
console.log(` ${authorizeUrl}`);
|
|
271
|
+
}
|
|
272
|
+
else {
|
|
273
|
+
console.log("Open this link to connect:");
|
|
274
|
+
console.log(` ${authorizeUrl}`);
|
|
275
|
+
}
|
|
276
|
+
console.log("");
|
|
277
|
+
console.log("Waiting for you to click \"Connect\" in the browser...");
|
|
278
|
+
timer = setTimeout(() => {
|
|
279
|
+
finish(new Error(`Timed out after ${Math.round(timeoutMs / 60000)} minutes waiting for the browser connection. Run the setup again to retry.`));
|
|
280
|
+
}, timeoutMs);
|
|
281
|
+
// Don't let the timer keep the process alive on its own.
|
|
282
|
+
timer.unref?.();
|
|
283
|
+
}
|
|
284
|
+
catch (err) {
|
|
285
|
+
finish(err instanceof Error ? err : new Error(String(err)));
|
|
286
|
+
}
|
|
287
|
+
})();
|
|
288
|
+
});
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=oauth-connect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth-connect.js","sourceRoot":"","sources":["../src/oauth-connect.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.d.ts
CHANGED
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
* MIND MCP Server — Interactive Setup Wizard
|
|
4
4
|
*
|
|
5
5
|
* Usage:
|
|
6
|
-
* npx @
|
|
7
|
-
* mind-mcp-setup
|
|
6
|
+
* npx -y @astramindapp/mcp-server@latest mind-mcp-setup
|
|
7
|
+
* mind-mcp-setup Browser connect (default) — opens m-i-n-d.ai,
|
|
8
|
+
* click "Connect", key arrives automatically
|
|
9
|
+
* mind-mcp-setup --key Manual mode — paste an API key instead
|
|
10
|
+
* mind-mcp-setup --key <k> Manual mode with the key inline
|
|
8
11
|
*
|
|
9
12
|
* Auto-detects installed AI tools and configures MIND as their memory layer.
|
|
10
13
|
*/
|
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG"}
|
package/dist/setup.js
CHANGED
|
@@ -4,8 +4,11 @@
|
|
|
4
4
|
* MIND MCP Server — Interactive Setup Wizard
|
|
5
5
|
*
|
|
6
6
|
* Usage:
|
|
7
|
-
* npx @
|
|
8
|
-
* mind-mcp-setup
|
|
7
|
+
* npx -y @astramindapp/mcp-server@latest mind-mcp-setup
|
|
8
|
+
* mind-mcp-setup Browser connect (default) — opens m-i-n-d.ai,
|
|
9
|
+
* click "Connect", key arrives automatically
|
|
10
|
+
* mind-mcp-setup --key Manual mode — paste an API key instead
|
|
11
|
+
* mind-mcp-setup --key <k> Manual mode with the key inline
|
|
9
12
|
*
|
|
10
13
|
* Auto-detects installed AI tools and configures MIND as their memory layer.
|
|
11
14
|
*/
|
|
@@ -47,6 +50,7 @@ const fs = __importStar(require("fs"));
|
|
|
47
50
|
const path = __importStar(require("path"));
|
|
48
51
|
const os = __importStar(require("os"));
|
|
49
52
|
const readline = __importStar(require("readline"));
|
|
53
|
+
const oauth_connect_js_1 = require("./oauth-connect.js");
|
|
50
54
|
const HOME = os.homedir();
|
|
51
55
|
function getToolConfigs() {
|
|
52
56
|
const platform = process.platform;
|
|
@@ -195,20 +199,53 @@ async function validateApiKey(apiKey, baseUrl) {
|
|
|
195
199
|
async function main() {
|
|
196
200
|
printHeader();
|
|
197
201
|
const rl = createRL();
|
|
198
|
-
// Step 1: API Key
|
|
202
|
+
// Step 1: API Key — default is browser OAuth; --key switches to manual paste
|
|
199
203
|
print("Step 1: Connect to your MIND");
|
|
200
204
|
print("─────────────────────────────");
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
205
|
+
const baseUrl = process.env.MIND_BASE_URL ?? "https://m-i-n-d.ai";
|
|
206
|
+
const cliArgs = process.argv.slice(2);
|
|
207
|
+
const keyFlagIndex = cliArgs.indexOf("--key");
|
|
208
|
+
const manualMode = keyFlagIndex !== -1;
|
|
209
|
+
let apiKey = "";
|
|
210
|
+
// --key <value> inline
|
|
211
|
+
if (manualMode) {
|
|
212
|
+
const flagValue = cliArgs[keyFlagIndex + 1];
|
|
213
|
+
if (flagValue && !flagValue.startsWith("--") && flagValue !== "setup") {
|
|
214
|
+
apiKey = flagValue.trim();
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// Existing MIND_API_KEY in the environment (kept as a convenience path)
|
|
218
|
+
if (!apiKey) {
|
|
219
|
+
apiKey = process.env.MIND_API_KEY ?? "";
|
|
220
|
+
if (apiKey) {
|
|
221
|
+
print(`Found MIND_API_KEY in environment: ${apiKey.slice(0, 12)}...`);
|
|
222
|
+
const useExisting = await ask(rl, "Use this key? (Y/n): ");
|
|
223
|
+
if (useExisting.toLowerCase() === "n") {
|
|
224
|
+
apiKey = "";
|
|
225
|
+
}
|
|
209
226
|
}
|
|
210
227
|
}
|
|
228
|
+
// DEFAULT: browser OAuth — one click on m-i-n-d.ai, key arrives automatically
|
|
229
|
+
if (!apiKey && !manualMode) {
|
|
230
|
+
print("Connecting via your browser — sign in to m-i-n-d.ai and click \"Connect\".");
|
|
231
|
+
print("(Prefer to paste a key instead? Re-run with --key)");
|
|
232
|
+
print("");
|
|
233
|
+
try {
|
|
234
|
+
apiKey = await (0, oauth_connect_js_1.connectViaBrowser)(baseUrl);
|
|
235
|
+
print("");
|
|
236
|
+
print(`✅ Connected! Received your MIND API key automatically: ${apiKey.slice(0, 12)}...`);
|
|
237
|
+
}
|
|
238
|
+
catch (err) {
|
|
239
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
240
|
+
print(`\n⚠️ Browser connect failed: ${message}`);
|
|
241
|
+
print("Or paste an API key from m-i-n-d.ai Settings → Developer:");
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
// Manual fallback (also the --key path when no inline value was given)
|
|
211
245
|
if (!apiKey) {
|
|
246
|
+
if (manualMode) {
|
|
247
|
+
print("Get a key at: https://m-i-n-d.ai → Settings → Developer → API Keys");
|
|
248
|
+
}
|
|
212
249
|
apiKey = await ask(rl, "Paste your MIND API key: ");
|
|
213
250
|
}
|
|
214
251
|
if (!apiKey) {
|
|
@@ -217,7 +254,6 @@ async function main() {
|
|
|
217
254
|
process.exit(1);
|
|
218
255
|
}
|
|
219
256
|
// Validate
|
|
220
|
-
const baseUrl = process.env.MIND_BASE_URL ?? "https://m-i-n-d.ai";
|
|
221
257
|
print("\nValidating API key...");
|
|
222
258
|
const validation = await validateApiKey(apiKey, baseUrl);
|
|
223
259
|
if (!validation.valid) {
|
|
@@ -310,7 +346,7 @@ async function main() {
|
|
|
310
346
|
}
|
|
311
347
|
// Entry point
|
|
312
348
|
const args = process.argv.slice(2);
|
|
313
|
-
if (args.includes("setup") || args.includes("--setup")) {
|
|
349
|
+
if (args.includes("setup") || args.includes("--setup") || args.includes("--key")) {
|
|
314
350
|
main().catch((err) => {
|
|
315
351
|
console.error("Setup failed:", err);
|
|
316
352
|
process.exit(1);
|
|
@@ -321,8 +357,11 @@ else {
|
|
|
321
357
|
print("MIND MCP Server Setup");
|
|
322
358
|
print("");
|
|
323
359
|
print("Usage:");
|
|
324
|
-
print(" mind-mcp-setup
|
|
325
|
-
print("
|
|
360
|
+
print(" mind-mcp-setup Run setup — browser connect by default");
|
|
361
|
+
print(" (opens m-i-n-d.ai, click \"Connect\", done)");
|
|
362
|
+
print(" mind-mcp-setup --key Paste an API key manually instead");
|
|
363
|
+
print(" mind-mcp-setup --key <k> Manual mode with the key inline");
|
|
364
|
+
print(" mind-mcp-setup setup Same as the default");
|
|
326
365
|
print("");
|
|
327
366
|
main().catch((err) => {
|
|
328
367
|
console.error("Setup failed:", err);
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astramindapp/mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"mcpName": "io.github.theastraway/mind",
|
|
5
5
|
"description": "MIND MCP Server — 28 tools. The most complete AI memory layer with the Focus → Project → Outcome → Task hierarchy (mind_focuses + extended mind_life with item_type/parent_id/focus_id and cross-account project sharing via share/list_shares/revoke_share), document folders with deterministic per-source_type routing (mind_folder_routes) and LLM content-aware picker (mind_folder_suggest), the MIND Sense Front Layer (16 typed-document templates), Agent Command Center (admin-only registry of every agent across the Astra AI fleet — heartbeat, probe, status, ownership & sharing), agent ticket queues (file, answer, triage, resolve client feedback and bugs), Featured Minds Portal (full admin CRUD over the public marketplace — model picker, public chat prompt, temperature, brand fields, Influencer Factory persona fields archetype/voice/seed-image/niche-tags/kg-scope/agent-posting, write-through to user_profiles), Influencer Factory Command Center (admin-only synthetic-persona fleet — persona CRUD, Nano Banana face anchor + image-to-image variants, ElevenLabs voice library + clone + sample, per-platform bios with LLM drafter, Blotato account registration for YouTube/IG/LinkedIn/X/Threads/Pinterest plus TikTok manual-upload), multi-MIND accounts (own and switch between many knowledge graphs), site-wide assignable tasks, personal knowledge graph with emotional intelligence, CRM, life management, social, self-training, research agent, automations. Works with Claude, GPT, Gemini.",
|
|
6
6
|
"files": [
|