@gizmodata/gizmosql-mcp 0.2.1 → 0.3.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/CHANGELOG.md CHANGED
@@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.3.0] - 2026-09-03
11
+
12
+ ### Added
13
+ - **Multiple connections.** Up to two additional servers in the extension
14
+ settings (*Connection 2* / *Connection 3*, mapped to `GIZMOSQL_2_*` /
15
+ `GIZMOSQL_3_*`), and any number via `GIZMOSQL_CONNECTIONS=name,...` with
16
+ `GIZMOSQL_<NAME>_*` variables. New tools `list_connections` and
17
+ `use_connection`; every other tool takes an optional `connection`
18
+ argument. `GIZMOSQL_CONNECTION_NAME` names the primary connection
19
+ (default `default`). `server_info` reports all connections.
20
+
21
+ ### Changed
22
+ - Table DDL resource URIs now include the connection:
23
+ `gizmosql://{connection}/schema/{catalog}/{schema}/{table}` (previously
24
+ `gizmosql://schema/...`).
25
+
26
+ ## [0.2.2] - 2026-09-03
27
+
28
+ ### Added
29
+ - Each release now also attaches an unversioned `gizmosql-mcp.mcpb` (and
30
+ `.sha256`), so the stable link
31
+ https://github.com/gizmodata/gizmosql-mcp/releases/latest/download/gizmosql-mcp.mcpb
32
+ always downloads the newest bundle. The README links to it.
33
+
10
34
  ## [0.2.1] - 2026-09-03
11
35
 
12
36
  ### Fixed
package/README.md CHANGED
@@ -18,6 +18,8 @@ Windows x64.
18
18
 
19
19
  | Tool | What it does |
20
20
  | --- | --- |
21
+ | `list_connections()` | Configured GizmoSQL connections and which one is current (never credentials) |
22
+ | `use_connection(name)` | Makes a connection the default for subsequent calls |
21
23
  | `list_catalogs` | Catalogs (attached databases) visible to the user |
22
24
  | `list_schemas(catalog?)` | Schemas, optionally in one catalog |
23
25
  | `list_tables(catalog?, schema?, like?)` | Tables and views with their type; `like` is a SQL LIKE pattern |
@@ -29,8 +31,13 @@ Windows x64.
29
31
  | `server_info()` | GizmoSQL/DuckDB versions, redacted connection URI, effective limits, extension version |
30
32
  | `login_sso(wait_seconds?)` | Browser-based OAuth/SSO sign-in. Only registered when SSO is enabled |
31
33
 
32
- It also exposes a resource template, `gizmosql://schema/{catalog}/{schema}/{table}`, that
33
- returns the DDL of a table or view.
34
+ Every tool except `list_connections` and `use_connection` also accepts an optional
35
+ `connection` argument naming one of the configured servers (see
36
+ [Multiple connections](#multiple-connections)).
37
+
38
+ It also exposes a resource template,
39
+ `gizmosql://{connection}/schema/{catalog}/{schema}/{table}`, that returns the DDL of a table
40
+ or view.
34
41
 
35
42
  ### Query parameters
36
43
 
@@ -59,11 +66,17 @@ Example call:
59
66
 
60
67
  ## Installation
61
68
 
69
+ Quick links: [latest `.mcpb` download](https://github.com/gizmodata/gizmosql-mcp/releases/latest/download/gizmosql-mcp.mcpb)
70
+ · [npm package](https://www.npmjs.com/package/@gizmodata/gizmosql-mcp)
71
+ · [all releases](https://github.com/gizmodata/gizmosql-mcp/releases)
72
+
62
73
  ### Claude Desktop extension (`.mcpb`)
63
74
 
64
- 1. Download `gizmosql-mcp-<version>.mcpb` from the
65
- [GitHub Releases](https://github.com/gizmodata/gizmosql-mcp/releases) page. The `.sha256`
66
- file next to it lets you verify the download.
75
+ 1. Download the latest bundle:
76
+ **[gizmosql-mcp.mcpb](https://github.com/gizmodata/gizmosql-mcp/releases/latest/download/gizmosql-mcp.mcpb)**
77
+ (checksum: [gizmosql-mcp.mcpb.sha256](https://github.com/gizmodata/gizmosql-mcp/releases/latest/download/gizmosql-mcp.mcpb.sha256)).
78
+ Every release also carries a versioned copy, `gizmosql-mcp-<version>.mcpb`, on the
79
+ [Releases](https://github.com/gizmodata/gizmosql-mcp/releases) page.
67
80
  2. Either double-click the file, or in Claude Desktop open **Settings → Extensions →
68
81
  Advanced settings → Install Extension…** and pick the file.
69
82
  3. Fill in the settings (host, port, credentials, limits). Credentials are marked sensitive
@@ -136,6 +149,7 @@ same names.
136
149
  | Variable | Default | Description |
137
150
  | --- | --- | --- |
138
151
  | `GIZMOSQL_HOST` | required | Hostname or IP of the GizmoSQL server |
152
+ | `GIZMOSQL_CONNECTION_NAME` | `default` | Name of this connection (used with the `connection` tool argument) |
139
153
  | `GIZMOSQL_PORT` | `31337` | Flight SQL port |
140
154
  | `GIZMOSQL_USERNAME` / `GIZMOSQL_PASSWORD` | | Basic authentication |
141
155
  | `GIZMOSQL_TOKEN` | | Bearer/JWT token authentication (alternative to username/password) |
@@ -150,14 +164,48 @@ same names.
150
164
  | `GIZMOSQL_OAUTH_PORT` | `31339` | OAuth HTTP port used by `login_sso` |
151
165
  | `GIZMOSQL_ENABLE_SSO` | `false` | Register the `login_sso` tool (credentials may then be left empty) |
152
166
  | `GIZMOSQL_MCP_BEARER_TOKEN` | | HTTP transport only: required bearer token |
167
+ | `GIZMOSQL_2_HOST`, `GIZMOSQL_3_HOST`, … | | Additional connections, see below |
168
+ | `GIZMOSQL_CONNECTIONS` | | Comma-separated names of further connections, see below |
153
169
 
154
- Exactly one authentication method must be configured: username and password, a token, or
155
- SSO. The default catalog/schema are optional: when set, the server runs `USE` on each new
170
+ Exactly one authentication method must be configured per connection: username and
171
+ password, a token, or SSO. The default catalog/schema are optional: when set, the server runs `USE` on each new
156
172
  session so unqualified table names resolve there; if the name does not exist the server
157
173
  still starts and reports the problem (with the catalogs it found) in `server_info`. In a
158
174
  chat, `use_schema` or a plain `USE catalog.schema` switches for the rest of the session. `GIZMOSQL_DRIVER_LIB` can point at a custom `libadbc_driver_gizmosql` build if you
159
175
  need one (see the client README).
160
176
 
177
+ ### Multiple connections
178
+
179
+ You can configure several GizmoSQL servers and switch between them without editing
180
+ credentials.
181
+
182
+ - **Claude Desktop extension.** The settings screen has two extra slots, *Connection 2* and
183
+ *Connection 3*, each with its own name, host, port, credentials, TLS flags and default
184
+ catalog/schema. Leave a slot's host blank to disable it. The primary connection's name
185
+ defaults to `default` (the **Connection name** setting changes it).
186
+ - **Environment variables.** The slots map to `GIZMOSQL_2_*` and `GIZMOSQL_3_*`
187
+ (`GIZMOSQL_2_HOST`, `GIZMOSQL_2_NAME`, `GIZMOSQL_2_USERNAME`, `GIZMOSQL_2_PASSWORD`,
188
+ `GIZMOSQL_2_TOKEN`, `GIZMOSQL_2_PORT`, `GIZMOSQL_2_PLAINTEXT`, `GIZMOSQL_2_TLS_SKIP_VERIFY`,
189
+ `GIZMOSQL_2_DEFAULT_CATALOG`, `GIZMOSQL_2_DEFAULT_SCHEMA`). For any number of servers, list
190
+ names in `GIZMOSQL_CONNECTIONS` and define each one with the same variables prefixed by the
191
+ upper-cased name, for example:
192
+
193
+ ```bash
194
+ GIZMOSQL_CONNECTIONS=prod,dev-eu
195
+ GIZMOSQL_PROD_HOST=gizmosql.prod.example.com GIZMOSQL_PROD_TOKEN=...
196
+ GIZMOSQL_DEV_EU_HOST=gizmosql.dev.example.com GIZMOSQL_DEV_EU_USERNAME=... GIZMOSQL_DEV_EU_PASSWORD=...
197
+ ```
198
+
199
+ (Non-alphanumeric characters in a name become `_` in the variable prefix; `GIZMOSQL_<NAME>_NAME`
200
+ overrides the display name.)
201
+
202
+ In a chat, `list_connections` shows what is configured, `use_connection` switches the
203
+ default for the rest of the session, and every tool accepts a per-call `connection`
204
+ argument, so "compare row counts of orders on prod and dev" works in one conversation. The
205
+ first configured connection is the initial default. Connections are opened lazily; the
206
+ row cap, timeout and read-only settings apply to all of them, while each server's user
207
+ role still governs what that connection may do.
208
+
161
209
  ## Read-only model and security
162
210
 
163
211
  By default the server refuses anything that is not a read. `sql-guard.ts` classifies each
@@ -1,7 +1,10 @@
1
1
  import { FlightSQLClient, type SqlParameters } from "@gizmodata/gizmosql-client";
2
2
  import { Table } from "apache-arrow";
3
3
  export type AuthMethod = "password" | "token" | "none";
4
- export interface McpConfig {
4
+ /** Settings for one GizmoSQL server. */
5
+ export interface ConnectionConfig {
6
+ /** Unique, case-insensitive name used in tool arguments (e.g. "default", "prod"). */
7
+ name: string;
5
8
  host: string;
6
9
  port: number;
7
10
  username?: string;
@@ -10,6 +13,16 @@ export interface McpConfig {
10
13
  plaintext: boolean;
11
14
  tlsSkipVerify: boolean;
12
15
  oauthPort: number;
16
+ /** Catalog to `USE` at session start (optional). */
17
+ defaultCatalog?: string;
18
+ /** Schema to `USE` at session start (optional). */
19
+ defaultSchema?: string;
20
+ /** Per-statement timeout applied to this connection's sessions (0 = none). */
21
+ queryTimeoutSeconds: number;
22
+ }
23
+ /** Whole-server settings plus every configured connection (the first is the initial default). */
24
+ export interface McpConfig {
25
+ connections: ConnectionConfig[];
13
26
  allowWrites: boolean;
14
27
  maxRows: number;
15
28
  maxCellChars: number;
@@ -18,10 +31,6 @@ export interface McpConfig {
18
31
  mcpBearerToken?: string;
19
32
  /** Enables the optional `login_sso` tool (OAuth/SSO browser flow). */
20
33
  enableSso: boolean;
21
- /** Catalog to `USE` at session start (optional). */
22
- defaultCatalog?: string;
23
- /** Schema to `USE` at session start (optional). */
24
- defaultSchema?: string;
25
34
  }
26
35
  export declare const DEFAULTS: {
27
36
  readonly port: 31337;
@@ -29,22 +38,38 @@ export declare const DEFAULTS: {
29
38
  readonly maxRows: 500;
30
39
  readonly maxCellChars: 200;
31
40
  readonly queryTimeoutSeconds: 60;
41
+ readonly connectionName: "default";
32
42
  };
43
+ /** Extra connection slots the Claude Desktop manifest exposes (`GIZMOSQL_2_*`, `GIZMOSQL_3_*`). */
44
+ export declare const MANIFEST_SLOTS: readonly ["2", "3"];
33
45
  export declare class ConfigError extends Error {
34
46
  constructor(message: string);
35
47
  }
48
+ /** True when an env value should be treated as absent. */
49
+ export declare function isUnset(raw: string | undefined): boolean;
36
50
  export declare function parseBoolean(name: string, raw: string | undefined, fallback: boolean): boolean;
37
51
  export declare function parseInteger(name: string, raw: string | undefined, fallback: number, { min, max }: {
38
52
  min: number;
39
53
  max?: number;
40
54
  }): number;
41
- /** True when an env value should be treated as absent. */
42
- export declare function isUnset(raw: string | undefined): boolean;
43
- /** Builds the effective configuration from environment variables. */
55
+ /** Env-variable key fragment for a connection key: `prod-eu` -> `PROD_EU`. */
56
+ export declare function envKey(key: string): string;
57
+ /**
58
+ * Builds the effective configuration from environment variables.
59
+ *
60
+ * Connections:
61
+ * - primary: `GIZMOSQL_HOST` etc. (name `GIZMOSQL_CONNECTION_NAME`, default "default");
62
+ * - manifest slots: `GIZMOSQL_2_HOST` / `GIZMOSQL_3_HOST` etc. (names `GIZMOSQL_2_NAME`,
63
+ * default "server2"/"server3");
64
+ * - any names listed in `GIZMOSQL_CONNECTIONS` (comma separated), read from
65
+ * `GIZMOSQL_<NAME>_HOST` etc. with the name upper-cased and non-alphanumerics
66
+ * replaced by `_`.
67
+ * Slots without a host are ignored. At least one connection is required.
68
+ */
44
69
  export declare function parseConfig(env?: NodeJS.ProcessEnv): McpConfig;
45
- export declare function authMethod(config: Pick<McpConfig, "username" | "password" | "token">): AuthMethod;
70
+ export declare function authMethod(config: Pick<ConnectionConfig, "username" | "password" | "token">): AuthMethod;
46
71
  /** Connection URI with the password/token never included. */
47
- export declare function redactedUri(config: McpConfig, overrideUser?: string): string;
72
+ export declare function redactedUri(config: ConnectionConfig, overrideUser?: string): string;
48
73
  /** Replaces every configured secret in `text` with `***`. */
49
74
  export declare function redactSecrets(text: string, secrets: Array<string | undefined>): string;
50
75
  export declare class QueryTimeoutError extends Error {
@@ -83,7 +108,7 @@ export interface RunOptions {
83
108
  * the connection dropped and reopened.
84
109
  */
85
110
  export declare class GizmoConnection {
86
- readonly config: McpConfig;
111
+ readonly config: ConnectionConfig;
87
112
  private readonly log;
88
113
  private client;
89
114
  private connecting;
@@ -93,7 +118,7 @@ export declare class GizmoConnection {
93
118
  private searchPath;
94
119
  /** Wall-clock at which the current client was opened (for server_info). */
95
120
  connectedAt: Date | null;
96
- constructor(config: McpConfig, log?: (message: string) => void);
121
+ constructor(config: ConnectionConfig, log?: (message: string) => void);
97
122
  /** The search path (`USE`) applied to every session. */
98
123
  currentSearchPath(): SearchPath;
99
124
  /**
@@ -8,7 +8,10 @@ export const DEFAULTS = {
8
8
  maxRows: 500,
9
9
  maxCellChars: 200,
10
10
  queryTimeoutSeconds: 60,
11
+ connectionName: "default",
11
12
  };
13
+ /** Extra connection slots the Claude Desktop manifest exposes (`GIZMOSQL_2_*`, `GIZMOSQL_3_*`). */
14
+ export const MANIFEST_SLOTS = ["2", "3"];
12
15
  export class ConfigError extends Error {
13
16
  constructor(message) {
14
17
  super(message);
@@ -17,6 +20,19 @@ export class ConfigError extends Error {
17
20
  }
18
21
  const TRUE_VALUES = new Set(["1", "true", "yes", "on"]);
19
22
  const FALSE_VALUES = new Set(["0", "false", "no", "off", ""]);
23
+ /**
24
+ * Unsubstituted MCPB template placeholders. Claude Desktop passes the
25
+ * literal `${user_config.<key>}` for optional settings the user left
26
+ * blank, which must count as "not set".
27
+ */
28
+ const TEMPLATE_PLACEHOLDER = /^\$\{[^}]*\}$/u;
29
+ /** True when an env value should be treated as absent. */
30
+ export function isUnset(raw) {
31
+ if (raw === undefined)
32
+ return true;
33
+ const v = raw.trim();
34
+ return v === "" || TEMPLATE_PLACEHOLDER.test(v);
35
+ }
20
36
  export function parseBoolean(name, raw, fallback) {
21
37
  if (isUnset(raw))
22
38
  return fallback;
@@ -37,69 +53,115 @@ export function parseInteger(name, raw, fallback, { min, max }) {
37
53
  }
38
54
  return n;
39
55
  }
40
- /**
41
- * Unsubstituted MCPB template placeholders. Claude Desktop passes the
42
- * literal `${user_config.<key>}` for optional settings the user left
43
- * blank, which must count as "not set".
44
- */
45
- const TEMPLATE_PLACEHOLDER = /^\$\{[^}]*\}$/u;
46
- /** True when an env value should be treated as absent. */
47
- export function isUnset(raw) {
48
- if (raw === undefined)
49
- return true;
50
- const v = raw.trim();
51
- return v === "" || TEMPLATE_PLACEHOLDER.test(v);
52
- }
53
56
  function nonEmpty(raw) {
54
57
  return isUnset(raw) ? undefined : raw.trim();
55
58
  }
56
- /** Builds the effective configuration from environment variables. */
57
- export function parseConfig(env = process.env) {
58
- const host = nonEmpty(env.GIZMOSQL_HOST);
59
- if (!host) {
60
- throw new ConfigError("GIZMOSQL_HOST is required (hostname or IP of the GizmoSQL server).");
59
+ /** Env-variable key fragment for a connection key: `prod-eu` -> `PROD_EU`. */
60
+ export function envKey(key) {
61
+ return key.trim().toUpperCase().replace(/[^A-Z0-9]+/gu, "_");
62
+ }
63
+ /**
64
+ * Parses one connection from `env` using variables named `<prefix>HOST`,
65
+ * `<prefix>USERNAME`, ... (prefix `GIZMOSQL_` for the primary connection,
66
+ * `GIZMOSQL_<KEY>_` for additional ones). Returns null when no host is set.
67
+ */
68
+ function parseConnection(env, prefix, defaultName, globals) {
69
+ const v = (suffix) => env[`${prefix}${suffix}`];
70
+ const host = nonEmpty(v("HOST"));
71
+ if (!host)
72
+ return null;
73
+ const label = `${prefix}HOST`;
74
+ const name = nonEmpty(v("NAME")) ?? defaultName;
75
+ if (!/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/u.test(name)) {
76
+ throw new ConfigError(`Connection name "${name}" (${prefix}NAME) must be 1-64 letters, digits, dots, dashes or underscores.`);
61
77
  }
62
- const username = nonEmpty(env.GIZMOSQL_USERNAME);
63
- const password = isUnset(env.GIZMOSQL_PASSWORD) && env.GIZMOSQL_PASSWORD !== ""
64
- ? undefined
65
- : env.GIZMOSQL_PASSWORD;
66
- const token = nonEmpty(env.GIZMOSQL_TOKEN);
67
- const enableSso = parseBoolean("GIZMOSQL_ENABLE_SSO", env.GIZMOSQL_ENABLE_SSO, false);
78
+ const username = nonEmpty(v("USERNAME"));
79
+ const rawPassword = v("PASSWORD");
80
+ const password = isUnset(rawPassword) && rawPassword !== "" ? undefined : rawPassword;
81
+ const token = nonEmpty(v("TOKEN"));
68
82
  const hasPassword = username !== undefined || (password !== undefined && password !== "");
69
83
  const hasToken = token !== undefined;
70
84
  if (hasPassword && hasToken) {
71
- throw new ConfigError("Set either GIZMOSQL_USERNAME/GIZMOSQL_PASSWORD or GIZMOSQL_TOKEN, not both.");
85
+ throw new ConfigError(`Connection "${name}": set either ${prefix}USERNAME/${prefix}PASSWORD or ${prefix}TOKEN, not both.`);
72
86
  }
73
87
  if (hasPassword && (username === undefined || password === undefined)) {
74
- throw new ConfigError("GIZMOSQL_USERNAME and GIZMOSQL_PASSWORD must be set together.");
88
+ throw new ConfigError(`Connection "${name}": ${prefix}USERNAME and ${prefix}PASSWORD must be set together.`);
75
89
  }
76
- if (!hasPassword && !hasToken && !enableSso) {
77
- throw new ConfigError("No credentials configured: set GIZMOSQL_USERNAME + GIZMOSQL_PASSWORD, or GIZMOSQL_TOKEN " +
78
- "(or GIZMOSQL_ENABLE_SSO=true to sign in with the login_sso tool).");
90
+ if (!hasPassword && !hasToken && !globals.enableSso) {
91
+ throw new ConfigError(`Connection "${name}" (${label}) has no credentials: set ${prefix}USERNAME + ${prefix}PASSWORD, or ` +
92
+ `${prefix}TOKEN (or GIZMOSQL_ENABLE_SSO=true to sign in with the login_sso tool).`);
79
93
  }
80
94
  return {
95
+ name,
81
96
  host,
82
- port: parseInteger("GIZMOSQL_PORT", env.GIZMOSQL_PORT, DEFAULTS.port, { min: 1, max: 65535 }),
97
+ port: parseInteger(`${prefix}PORT`, v("PORT"), DEFAULTS.port, { min: 1, max: 65535 }),
83
98
  username: hasPassword ? username : undefined,
84
99
  password: hasPassword ? password : undefined,
85
100
  token: hasToken ? token : undefined,
86
- plaintext: parseBoolean("GIZMOSQL_PLAINTEXT", env.GIZMOSQL_PLAINTEXT, false),
87
- tlsSkipVerify: parseBoolean("GIZMOSQL_TLS_SKIP_VERIFY", env.GIZMOSQL_TLS_SKIP_VERIFY, false),
88
- oauthPort: parseInteger("GIZMOSQL_OAUTH_PORT", env.GIZMOSQL_OAUTH_PORT, DEFAULTS.oauthPort, {
89
- min: 1,
90
- max: 65535,
91
- }),
101
+ plaintext: parseBoolean(`${prefix}PLAINTEXT`, v("PLAINTEXT"), false),
102
+ tlsSkipVerify: parseBoolean(`${prefix}TLS_SKIP_VERIFY`, v("TLS_SKIP_VERIFY"), false),
103
+ oauthPort: parseInteger(`${prefix}OAUTH_PORT`, v("OAUTH_PORT"), DEFAULTS.oauthPort, { min: 1, max: 65535 }),
104
+ defaultCatalog: nonEmpty(v("DEFAULT_CATALOG")),
105
+ defaultSchema: nonEmpty(v("DEFAULT_SCHEMA")),
106
+ queryTimeoutSeconds: globals.queryTimeoutSeconds,
107
+ };
108
+ }
109
+ /**
110
+ * Builds the effective configuration from environment variables.
111
+ *
112
+ * Connections:
113
+ * - primary: `GIZMOSQL_HOST` etc. (name `GIZMOSQL_CONNECTION_NAME`, default "default");
114
+ * - manifest slots: `GIZMOSQL_2_HOST` / `GIZMOSQL_3_HOST` etc. (names `GIZMOSQL_2_NAME`,
115
+ * default "server2"/"server3");
116
+ * - any names listed in `GIZMOSQL_CONNECTIONS` (comma separated), read from
117
+ * `GIZMOSQL_<NAME>_HOST` etc. with the name upper-cased and non-alphanumerics
118
+ * replaced by `_`.
119
+ * Slots without a host are ignored. At least one connection is required.
120
+ */
121
+ export function parseConfig(env = process.env) {
122
+ const enableSso = parseBoolean("GIZMOSQL_ENABLE_SSO", env.GIZMOSQL_ENABLE_SSO, false);
123
+ const queryTimeoutSeconds = parseInteger("GIZMOSQL_QUERY_TIMEOUT_SECONDS", env.GIZMOSQL_QUERY_TIMEOUT_SECONDS, DEFAULTS.queryTimeoutSeconds, { min: 0, max: 86400 });
124
+ const globals = { queryTimeoutSeconds, enableSso };
125
+ const connections = [];
126
+ const primary = parseConnection(env, "GIZMOSQL_", nonEmpty(env.GIZMOSQL_CONNECTION_NAME) ?? DEFAULTS.connectionName, globals);
127
+ if (primary)
128
+ connections.push(primary);
129
+ const extraKeys = MANIFEST_SLOTS.map((slot) => ({
130
+ key: slot,
131
+ defaultName: `server${slot}`,
132
+ }));
133
+ for (const listed of (nonEmpty(env.GIZMOSQL_CONNECTIONS) ?? "").split(",")) {
134
+ const key = listed.trim();
135
+ if (key)
136
+ extraKeys.push({ key: envKey(key), defaultName: key.toLowerCase() });
137
+ }
138
+ for (const { key, defaultName } of extraKeys) {
139
+ const c = parseConnection(env, `GIZMOSQL_${key}_`, defaultName, globals);
140
+ if (c)
141
+ connections.push(c);
142
+ }
143
+ if (connections.length === 0) {
144
+ throw new ConfigError("GIZMOSQL_HOST is required (hostname or IP of the GizmoSQL server).");
145
+ }
146
+ const seen = new Map();
147
+ for (const c of connections) {
148
+ const k = c.name.toLowerCase();
149
+ if (seen.has(k)) {
150
+ throw new ConfigError(`Connection name "${c.name}" is used more than once (names are case-insensitive).`);
151
+ }
152
+ seen.set(k, c.name);
153
+ }
154
+ return {
155
+ connections,
92
156
  allowWrites: parseBoolean("GIZMOSQL_ALLOW_WRITES", env.GIZMOSQL_ALLOW_WRITES, false),
93
- maxRows: parseInteger("GIZMOSQL_MAX_ROWS", env.GIZMOSQL_MAX_ROWS, DEFAULTS.maxRows, {
157
+ maxRows: parseInteger("GIZMOSQL_MAX_ROWS", env.GIZMOSQL_MAX_ROWS, DEFAULTS.maxRows, { min: 1, max: 100000 }),
158
+ maxCellChars: parseInteger("GIZMOSQL_MAX_CELL_CHARS", env.GIZMOSQL_MAX_CELL_CHARS, DEFAULTS.maxCellChars, {
94
159
  min: 1,
95
160
  max: 100000,
96
161
  }),
97
- maxCellChars: parseInteger("GIZMOSQL_MAX_CELL_CHARS", env.GIZMOSQL_MAX_CELL_CHARS, DEFAULTS.maxCellChars, { min: 1, max: 100000 }),
98
- queryTimeoutSeconds: parseInteger("GIZMOSQL_QUERY_TIMEOUT_SECONDS", env.GIZMOSQL_QUERY_TIMEOUT_SECONDS, DEFAULTS.queryTimeoutSeconds, { min: 0, max: 86400 }),
162
+ queryTimeoutSeconds,
99
163
  mcpBearerToken: nonEmpty(env.GIZMOSQL_MCP_BEARER_TOKEN),
100
164
  enableSso,
101
- defaultCatalog: nonEmpty(env.GIZMOSQL_DEFAULT_CATALOG),
102
- defaultSchema: nonEmpty(env.GIZMOSQL_DEFAULT_SCHEMA),
103
165
  };
104
166
  }
105
167
  export function authMethod(config) {
@@ -201,7 +263,7 @@ export class GizmoConnection {
201
263
  }
202
264
  /** Secrets to redact from any message that might reach a client. */
203
265
  secrets() {
204
- return [this.config.password, this.config.token, this.overrides.password, this.config.mcpBearerToken];
266
+ return [this.config.password, this.config.token, this.overrides.password];
205
267
  }
206
268
  redact(text) {
207
269
  return redactSecrets(text, this.secrets());
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import { GizmoConnection, type ConnectionConfig, type McpConfig } from "./connection.js";
2
+ export declare class UnknownConnectionError extends Error {
3
+ constructor(name: string, available: string[]);
4
+ }
5
+ export interface ConnectionSummary {
6
+ name: string;
7
+ host: string;
8
+ port: number;
9
+ tls: boolean;
10
+ auth: string;
11
+ default_catalog: string | null;
12
+ default_schema: string | null;
13
+ current: boolean;
14
+ connected: boolean;
15
+ }
16
+ /**
17
+ * Holds one lazily opened GizmoConnection per configured server. Names are
18
+ * matched case-insensitively. The first configured connection is the
19
+ * initial default; `use()` switches it for the rest of the process.
20
+ */
21
+ export declare class ConnectionRegistry {
22
+ readonly config: McpConfig;
23
+ private readonly byName;
24
+ private readonly order;
25
+ private currentName;
26
+ constructor(config: McpConfig, log?: (message: string) => void);
27
+ /** Names in configuration order. */
28
+ names(): string[];
29
+ /** Name of the current default connection. */
30
+ current(): string;
31
+ has(name: string): boolean;
32
+ /** Resolves a connection by name (case-insensitive); undefined/blank means the current default. */
33
+ get(name?: string): GizmoConnection;
34
+ /** Makes `name` the default for subsequent calls; returns its canonical name. */
35
+ use(name: string): string;
36
+ all(): GizmoConnection[];
37
+ configFor(name?: string): ConnectionConfig;
38
+ /** Every secret from every connection plus the HTTP bearer token. */
39
+ secrets(): Array<string | undefined>;
40
+ redact(text: string): string;
41
+ summaries(): ConnectionSummary[];
42
+ close(): Promise<void>;
43
+ }
@@ -0,0 +1,90 @@
1
+ // Registry of named GizmoSQL connections with a switchable default.
2
+ import { GizmoConnection, redactSecrets } from "./connection.js";
3
+ export class UnknownConnectionError extends Error {
4
+ constructor(name, available) {
5
+ super(`Unknown connection "${name}". Available connections: ${available.join(", ")}.`);
6
+ this.name = "UnknownConnectionError";
7
+ }
8
+ }
9
+ /**
10
+ * Holds one lazily opened GizmoConnection per configured server. Names are
11
+ * matched case-insensitively. The first configured connection is the
12
+ * initial default; `use()` switches it for the rest of the process.
13
+ */
14
+ export class ConnectionRegistry {
15
+ config;
16
+ byName = new Map();
17
+ order = [];
18
+ currentName;
19
+ constructor(config, log = (m) => console.error(m)) {
20
+ this.config = config;
21
+ if (config.connections.length === 0)
22
+ throw new Error("At least one connection is required.");
23
+ for (const c of config.connections) {
24
+ const conn = new GizmoConnection(c, (m) => log(config.connections.length > 1 ? `${m} [${c.name}]` : m));
25
+ this.byName.set(c.name.toLowerCase(), conn);
26
+ this.order.push(c.name);
27
+ }
28
+ this.currentName = config.connections[0].name;
29
+ }
30
+ /** Names in configuration order. */
31
+ names() {
32
+ return [...this.order];
33
+ }
34
+ /** Name of the current default connection. */
35
+ current() {
36
+ return this.currentName;
37
+ }
38
+ has(name) {
39
+ return this.byName.has(name.trim().toLowerCase());
40
+ }
41
+ /** Resolves a connection by name (case-insensitive); undefined/blank means the current default. */
42
+ get(name) {
43
+ const key = (name ?? "").trim();
44
+ if (key === "")
45
+ return this.byName.get(this.currentName.toLowerCase());
46
+ const conn = this.byName.get(key.toLowerCase());
47
+ if (!conn)
48
+ throw new UnknownConnectionError(key, this.order);
49
+ return conn;
50
+ }
51
+ /** Makes `name` the default for subsequent calls; returns its canonical name. */
52
+ use(name) {
53
+ const conn = this.get(name);
54
+ this.currentName = conn.config.name;
55
+ return this.currentName;
56
+ }
57
+ all() {
58
+ return this.order.map((n) => this.byName.get(n.toLowerCase()));
59
+ }
60
+ configFor(name) {
61
+ return this.get(name).config;
62
+ }
63
+ /** Every secret from every connection plus the HTTP bearer token. */
64
+ secrets() {
65
+ return [...this.all().flatMap((c) => c.secrets()), this.config.mcpBearerToken];
66
+ }
67
+ redact(text) {
68
+ return redactSecrets(text, this.secrets());
69
+ }
70
+ summaries() {
71
+ return this.all().map((c) => {
72
+ const auth = c.effectiveAuth();
73
+ return {
74
+ name: c.config.name,
75
+ host: c.config.host,
76
+ port: c.config.port,
77
+ tls: !c.config.plaintext,
78
+ auth: auth.method === "password" ? `password (${auth.user ?? ""})` : auth.method,
79
+ default_catalog: c.currentSearchPath().catalog ?? null,
80
+ default_schema: c.currentSearchPath().schema ?? null,
81
+ current: c.config.name === this.currentName,
82
+ connected: c.connectedAt !== null,
83
+ };
84
+ });
85
+ }
86
+ async close() {
87
+ await Promise.all(this.all().map((c) => c.close().catch(() => undefined)));
88
+ }
89
+ }
90
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}