@gizmodata/gizmosql-mcp 0.3.6 → 0.4.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.
@@ -1,18 +1,29 @@
1
1
  import * as http from "node:http";
2
- import type { McpConfig } from "./connection.js";
2
+ import { type McpConfig } from "./connection.js";
3
+ import { OAuthVerifier } from "./oauth.js";
3
4
  /** Runs the server on stdio (Claude Desktop / `claude mcp add`). */
4
5
  export declare function startStdio(config: McpConfig): Promise<void>;
5
6
  export interface HttpOptions {
6
7
  host: string;
7
8
  port: number;
9
+ /** Test hook: replaces the OAuth verifier built from the config. */
10
+ verifier?: OAuthVerifier;
11
+ /** Test hook: disables the SIGINT/SIGTERM handlers. */
12
+ installSignalHandlers?: boolean;
8
13
  }
9
14
  /**
10
15
  * Runs the server as stateless Streamable HTTP on `/mcp`. Every request
11
- * gets its own McpServer + transport (the SDK's stateless pattern) while
12
- * sharing the single GizmoSQL connection.
16
+ * gets its own McpServer + transport (the SDK's stateless pattern). With
17
+ * OAuth, each authenticated user also gets their own connection registry
18
+ * (a SessionStore entry) so session state never crosses users; otherwise
19
+ * one registry is shared by every client.
13
20
  *
14
- * Authentication: when GIZMOSQL_MCP_BEARER_TOKEN is set every request must
15
- * carry `Authorization: Bearer <token>`. OAuth is a future extension point:
16
- * replace `authorize()` with an OAuth token verifier.
21
+ * Authentication, one of:
22
+ * - GIZMOSQL_MCP_OAUTH_ISSUER: the server is an OAuth 2.1 resource server.
23
+ * Bearer tokens are verified against the provider's JWKS; RFC 9728
24
+ * metadata is served under /.well-known/oauth-protected-resource so
25
+ * clients discover the provider; 401 responses carry the challenge.
26
+ * - GIZMOSQL_MCP_BEARER_TOKEN: a single static token compared in constant time.
27
+ * - neither: unauthenticated (local use only).
17
28
  */
18
29
  export declare function startHttp(config: McpConfig, options: HttpOptions): Promise<http.Server>;
@@ -3,8 +3,11 @@ import { timingSafeEqual } from "node:crypto";
3
3
  import * as http from "node:http";
4
4
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
5
5
  import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
6
+ import { redactSecrets } from "./connection.js";
7
+ import { OAuthError, OAuthVerifier, protectedResourceMetadataPaths } from "./oauth.js";
6
8
  import { ConnectionRegistry } from "./registry.js";
7
9
  import { createServer } from "./server.js";
10
+ import { SessionStore } from "./sessions.js";
8
11
  import { PACKAGE_NAME, PACKAGE_VERSION } from "./version.js";
9
12
  const log = (message) => console.error(message);
10
13
  /** "host:port" for one connection, or "name=host:port, ..." for several. */
@@ -15,7 +18,7 @@ function describeTargets(config) {
15
18
  }
16
19
  return config.connections.map((c) => `${c.name}=${c.host}:${c.port}`).join(", ");
17
20
  }
18
- function installShutdown(registry, extra) {
21
+ function installShutdown(closeAll, extra) {
19
22
  let closing = false;
20
23
  const shutdown = async () => {
21
24
  if (closing)
@@ -23,7 +26,7 @@ function installShutdown(registry, extra) {
23
26
  closing = true;
24
27
  try {
25
28
  await extra?.();
26
- await registry.close();
29
+ await closeAll();
27
30
  }
28
31
  finally {
29
32
  process.exit(0);
@@ -37,7 +40,7 @@ export async function startStdio(config) {
37
40
  const registry = new ConnectionRegistry(config, log);
38
41
  const server = createServer({ registry, config, transport: "stdio" });
39
42
  const transport = new StdioServerTransport();
40
- installShutdown(registry, () => server.close());
43
+ installShutdown(() => registry.close(), () => server.close());
41
44
  // When the client closes stdin the transport closes; exit cleanly.
42
45
  transport.onclose = () => {
43
46
  void registry.close().finally(() => process.exit(0));
@@ -55,22 +58,103 @@ function bearerMatches(header, expected) {
55
58
  const b = Buffer.from(expected);
56
59
  return a.length === b.length && timingSafeEqual(a, b);
57
60
  }
61
+ /** Largest JSON-RPC request body accepted on /mcp. */
62
+ const MAX_BODY_BYTES = 8 * 1024 * 1024;
63
+ function readBody(req) {
64
+ return new Promise((resolve, reject) => {
65
+ const chunks = [];
66
+ let size = 0;
67
+ req.on("data", (chunk) => {
68
+ size += chunk.length;
69
+ if (size > MAX_BODY_BYTES) {
70
+ reject(new Error(`request body exceeds ${MAX_BODY_BYTES} bytes`));
71
+ req.destroy();
72
+ return;
73
+ }
74
+ chunks.push(chunk);
75
+ });
76
+ req.on("end", () => resolve(Buffer.concat(chunks).toString("utf8")));
77
+ req.on("error", reject);
78
+ });
79
+ }
80
+ /** One audit line per JSON-RPC request: who called which method (and tool). */
81
+ function describeRequest(body) {
82
+ const messages = Array.isArray(body) ? body : [body];
83
+ const out = [];
84
+ for (const m of messages) {
85
+ if (!m || typeof m !== "object")
86
+ continue;
87
+ const method = m.method;
88
+ const id = m.id;
89
+ if (typeof method !== "string" || id === undefined)
90
+ continue; // responses and notifications
91
+ if (method === "tools/call") {
92
+ const name = m.params?.name;
93
+ out.push(`tools/call ${typeof name === "string" ? name : "?"}`);
94
+ }
95
+ else if (method === "resources/read") {
96
+ const uri = m.params?.uri;
97
+ out.push(`resources/read ${typeof uri === "string" ? uri : "?"}`);
98
+ }
99
+ else {
100
+ out.push(method);
101
+ }
102
+ }
103
+ return out;
104
+ }
105
+ /** Session key: one session per subject at the issuer. */
106
+ function sessionKey(issuer, user) {
107
+ return `${issuer}#${user.subject || user.name}`;
108
+ }
58
109
  /**
59
110
  * Runs the server as stateless Streamable HTTP on `/mcp`. Every request
60
- * gets its own McpServer + transport (the SDK's stateless pattern) while
61
- * sharing the single GizmoSQL connection.
111
+ * gets its own McpServer + transport (the SDK's stateless pattern). With
112
+ * OAuth, each authenticated user also gets their own connection registry
113
+ * (a SessionStore entry) so session state never crosses users; otherwise
114
+ * one registry is shared by every client.
62
115
  *
63
- * Authentication: when GIZMOSQL_MCP_BEARER_TOKEN is set every request must
64
- * carry `Authorization: Bearer <token>`. OAuth is a future extension point:
65
- * replace `authorize()` with an OAuth token verifier.
116
+ * Authentication, one of:
117
+ * - GIZMOSQL_MCP_OAUTH_ISSUER: the server is an OAuth 2.1 resource server.
118
+ * Bearer tokens are verified against the provider's JWKS; RFC 9728
119
+ * metadata is served under /.well-known/oauth-protected-resource so
120
+ * clients discover the provider; 401 responses carry the challenge.
121
+ * - GIZMOSQL_MCP_BEARER_TOKEN: a single static token compared in constant time.
122
+ * - neither: unauthenticated (local use only).
66
123
  */
67
124
  export async function startHttp(config, options) {
68
- const registry = new ConnectionRegistry(config, log);
69
125
  const bearer = config.mcpBearerToken;
70
- const authorize = (req) => {
71
- if (!bearer)
72
- return true;
73
- return bearerMatches(req.headers.authorization, bearer);
126
+ const oauth = config.mcpOAuth;
127
+ const verifier = options.verifier ?? (oauth ? new OAuthVerifier(oauth, { log }) : undefined);
128
+ // Per-user sessions need an identity, so they exist only with OAuth.
129
+ const sessions = verifier
130
+ ? new SessionStore(config, { idleSeconds: config.mcpSessionIdleSeconds, maxSessions: config.mcpMaxSessions, log })
131
+ : undefined;
132
+ const sharedRegistry = sessions ? undefined : new ConnectionRegistry(config, log);
133
+ // Used only for redacting log lines; secrets are the same in every registry.
134
+ const redact = (t) => redactSecrets(t, sharedRegistry ? sharedRegistry.secrets() : config.connections.flatMap((c) => [c.password]));
135
+ const metadataPaths = new Set(oauth ? protectedResourceMetadataPaths(oauth.publicUrl) : []);
136
+ const authorize = async (req) => {
137
+ if (verifier) {
138
+ try {
139
+ return { ok: true, user: await verifier.verify(req.headers.authorization) };
140
+ }
141
+ catch (err) {
142
+ if (err instanceof OAuthError) {
143
+ return {
144
+ ok: false,
145
+ status: err.status,
146
+ error: err.code,
147
+ description: err.message,
148
+ challenge: err.code === "invalid_token" ? verifier.challenge(err.code, err.message) : "",
149
+ };
150
+ }
151
+ throw err;
152
+ }
153
+ }
154
+ if (bearer && !bearerMatches(req.headers.authorization, bearer)) {
155
+ return { ok: false, status: 401, error: "invalid_token", description: "Bearer token required", challenge: "Bearer" };
156
+ }
157
+ return { ok: true };
74
158
  };
75
159
  const httpServer = http.createServer(async (req, res) => {
76
160
  const url = new URL(req.url ?? "/", "http://localhost");
@@ -79,22 +163,72 @@ export async function startHttp(config, options) {
79
163
  res.end(JSON.stringify({ ok: true, server: PACKAGE_NAME, version: PACKAGE_VERSION }));
80
164
  return;
81
165
  }
166
+ if (verifier && metadataPaths.has(url.pathname.replace(/\/+$/u, "") || "/")) {
167
+ if (req.method !== "GET" && req.method !== "HEAD") {
168
+ res.writeHead(405, { allow: "GET" });
169
+ res.end();
170
+ return;
171
+ }
172
+ res.writeHead(200, { "content-type": "application/json", "cache-control": "public, max-age=300" });
173
+ res.end(JSON.stringify(verifier.protectedResourceMetadata()));
174
+ return;
175
+ }
82
176
  if (url.pathname !== "/mcp") {
83
177
  res.writeHead(404, { "content-type": "text/plain" });
84
178
  res.end("Not found. The MCP endpoint is /mcp.");
85
179
  return;
86
180
  }
87
- if (!authorize(req)) {
88
- res.writeHead(401, { "content-type": "application/json", "www-authenticate": "Bearer" });
89
- res.end(JSON.stringify({ error: "unauthorized" }));
90
- return;
91
- }
92
181
  if (req.method !== "POST" && req.method !== "GET" && req.method !== "DELETE") {
93
182
  res.writeHead(405, { allow: "GET, POST, DELETE" });
94
183
  res.end();
95
184
  return;
96
185
  }
97
- const server = createServer({ registry, config, transport: "http" });
186
+ let auth;
187
+ try {
188
+ auth = await authorize(req);
189
+ }
190
+ catch (err) {
191
+ log(`[gizmosql-mcp] auth error: ${redact(err instanceof Error ? err.message : String(err))}`);
192
+ res.writeHead(500, { "content-type": "application/json" });
193
+ res.end(JSON.stringify({ error: "internal error" }));
194
+ return;
195
+ }
196
+ if (!auth.ok) {
197
+ const headers = { "content-type": "application/json" };
198
+ if (auth.challenge)
199
+ headers["www-authenticate"] = auth.challenge;
200
+ res.writeHead(auth.status, headers);
201
+ res.end(JSON.stringify({ error: auth.error, error_description: auth.description }));
202
+ if (auth.status === 403)
203
+ log(`[gizmosql-mcp] forbidden: ${auth.description}`);
204
+ return;
205
+ }
206
+ let parsedBody;
207
+ if (req.method === "POST") {
208
+ try {
209
+ const raw = await readBody(req);
210
+ parsedBody = raw === "" ? undefined : JSON.parse(raw);
211
+ }
212
+ catch (err) {
213
+ res.writeHead(400, { "content-type": "application/json" });
214
+ res.end(JSON.stringify({ error: "invalid_request", error_description: err instanceof Error ? err.message : String(err) }));
215
+ return;
216
+ }
217
+ const who = auth.user ? auth.user.name : "anonymous";
218
+ for (const line of describeRequest(parsedBody))
219
+ log(`[gizmosql-mcp] ${who}: ${line}`);
220
+ }
221
+ let registry;
222
+ let session;
223
+ if (sessions && verifier && auth.user) {
224
+ const acquired = sessions.acquire(sessionKey(verifier.config.issuer, auth.user), auth.user.name);
225
+ registry = acquired.registry;
226
+ session = acquired.info;
227
+ }
228
+ else {
229
+ registry = sharedRegistry;
230
+ }
231
+ const server = createServer({ registry, config, transport: "http", user: auth.user, session });
98
232
  const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined });
99
233
  res.on("close", () => {
100
234
  void transport.close();
@@ -102,26 +236,38 @@ export async function startHttp(config, options) {
102
236
  });
103
237
  try {
104
238
  await server.connect(transport);
105
- await transport.handleRequest(req, res);
239
+ await transport.handleRequest(req, res, parsedBody);
106
240
  }
107
241
  catch (err) {
108
- log(`[gizmosql-mcp] request error: ${registry.redact(err instanceof Error ? err.message : String(err))}`);
242
+ log(`[gizmosql-mcp] request error: ${redact(err instanceof Error ? err.message : String(err))}`);
109
243
  if (!res.headersSent) {
110
244
  res.writeHead(500, { "content-type": "application/json" });
111
245
  res.end(JSON.stringify({ error: "internal error" }));
112
246
  }
113
247
  }
114
248
  });
115
- installShutdown(registry, () => new Promise((resolve) => httpServer.close(() => resolve())));
249
+ const closeAll = async () => {
250
+ await sessions?.close();
251
+ await sharedRegistry?.close();
252
+ };
253
+ if (options.installSignalHandlers !== false) {
254
+ installShutdown(closeAll, () => new Promise((resolve) => httpServer.close(() => resolve())));
255
+ }
256
+ httpServer.once("close", () => void closeAll());
116
257
  await new Promise((resolve, reject) => {
117
258
  httpServer.once("error", reject);
118
259
  httpServer.listen(options.port, options.host, () => resolve());
119
260
  });
120
261
  const addr = httpServer.address();
121
262
  const shown = typeof addr === "object" && addr ? `${addr.address}:${addr.port}` : `${options.host}:${options.port}`;
263
+ const authMode = verifier
264
+ ? `oauth ${verifier.config.issuer}, per-user sessions (idle ${config.mcpSessionIdleSeconds}s, max ${config.mcpMaxSessions})`
265
+ : bearer
266
+ ? "bearer"
267
+ : "none";
122
268
  log(`[gizmosql-mcp] ${PACKAGE_NAME} ${PACKAGE_VERSION} listening on http://${shown}/mcp ` +
123
269
  `(${describeTargets(config)}, writes ${config.allowWrites ? "enabled" : "disabled"}, ` +
124
- `auth ${bearer ? "bearer" : "none"})`);
270
+ `auth ${authMode})`);
125
271
  return httpServer;
126
272
  }
127
273
  //# sourceMappingURL=transports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transports.js","sourceRoot":"","sources":["../src/transports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transports.js","sourceRoot":"","sources":["../src/transports.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gizmodata/gizmosql-mcp",
3
- "version": "0.3.6",
3
+ "version": "0.4.0",
4
4
  "description": "Model Context Protocol (MCP) server and Claude Desktop extension for GizmoSQL",
5
5
  "author": "GizmoData LLC",
6
6
  "license": "Apache-2.0",
@@ -53,6 +53,7 @@
53
53
  "@gizmodata/gizmosql-client": "^2.2.0",
54
54
  "@modelcontextprotocol/sdk": "^1.30.0",
55
55
  "apache-arrow": "^21.0.0",
56
+ "jose": "^6.2.12",
56
57
  "zod": "^4.0.0"
57
58
  },
58
59
  "devDependencies": {