@tejasanik/postgres-mcp-server 1.0.0 → 1.2.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.
Files changed (63) hide show
  1. package/README.md +90 -13
  2. package/dist/__tests__/analysis-tools.test.d.ts +2 -0
  3. package/dist/__tests__/analysis-tools.test.d.ts.map +1 -0
  4. package/dist/__tests__/analysis-tools.test.js +294 -0
  5. package/dist/__tests__/analysis-tools.test.js.map +1 -0
  6. package/dist/__tests__/db-manager.test.d.ts +2 -0
  7. package/dist/__tests__/db-manager.test.d.ts.map +1 -0
  8. package/dist/__tests__/db-manager.test.js +243 -0
  9. package/dist/__tests__/db-manager.test.js.map +1 -0
  10. package/dist/__tests__/mcp-server.test.d.ts +13 -0
  11. package/dist/__tests__/mcp-server.test.d.ts.map +1 -0
  12. package/dist/__tests__/mcp-server.test.js +131 -0
  13. package/dist/__tests__/mcp-server.test.js.map +1 -0
  14. package/dist/__tests__/schema-tools.test.d.ts +2 -0
  15. package/dist/__tests__/schema-tools.test.d.ts.map +1 -0
  16. package/dist/__tests__/schema-tools.test.js +171 -0
  17. package/dist/__tests__/schema-tools.test.js.map +1 -0
  18. package/dist/__tests__/server-tools.test.d.ts +2 -0
  19. package/dist/__tests__/server-tools.test.d.ts.map +1 -0
  20. package/dist/__tests__/server-tools.test.js +94 -0
  21. package/dist/__tests__/server-tools.test.js.map +1 -0
  22. package/dist/__tests__/sql-tools.test.d.ts +2 -0
  23. package/dist/__tests__/sql-tools.test.d.ts.map +1 -0
  24. package/dist/__tests__/sql-tools.test.js +235 -0
  25. package/dist/__tests__/sql-tools.test.js.map +1 -0
  26. package/dist/__tests__/validation.test.d.ts +2 -0
  27. package/dist/__tests__/validation.test.d.ts.map +1 -0
  28. package/dist/__tests__/validation.test.js +203 -0
  29. package/dist/__tests__/validation.test.js.map +1 -0
  30. package/dist/db-manager.d.ts +17 -4
  31. package/dist/db-manager.d.ts.map +1 -1
  32. package/dist/db-manager.js +164 -26
  33. package/dist/db-manager.js.map +1 -1
  34. package/dist/index.js +62 -26
  35. package/dist/index.js.map +1 -1
  36. package/dist/tools/analysis-tools.d.ts +1 -0
  37. package/dist/tools/analysis-tools.d.ts.map +1 -1
  38. package/dist/tools/analysis-tools.js +158 -81
  39. package/dist/tools/analysis-tools.js.map +1 -1
  40. package/dist/tools/index.js +4 -20
  41. package/dist/tools/index.js.map +1 -1
  42. package/dist/tools/schema-tools.d.ts.map +1 -1
  43. package/dist/tools/schema-tools.js +71 -40
  44. package/dist/tools/schema-tools.js.map +1 -1
  45. package/dist/tools/server-tools.d.ts +11 -1
  46. package/dist/tools/server-tools.d.ts.map +1 -1
  47. package/dist/tools/server-tools.js +23 -14
  48. package/dist/tools/server-tools.js.map +1 -1
  49. package/dist/tools/sql-tools.d.ts.map +1 -1
  50. package/dist/tools/sql-tools.js +88 -61
  51. package/dist/tools/sql-tools.js.map +1 -1
  52. package/dist/types.d.ts +19 -0
  53. package/dist/types.d.ts.map +1 -1
  54. package/dist/types.js +1 -2
  55. package/dist/utils/index.d.ts +2 -0
  56. package/dist/utils/index.d.ts.map +1 -0
  57. package/dist/utils/index.js +2 -0
  58. package/dist/utils/index.js.map +1 -0
  59. package/dist/utils/validation.d.ts +27 -0
  60. package/dist/utils/validation.d.ts.map +1 -0
  61. package/dist/utils/validation.js +133 -0
  62. package/dist/utils/validation.js.map +1 -0
  63. package/package.json +8 -2
@@ -1,18 +1,23 @@
1
1
  import { PoolClient, QueryResult, QueryResultRow } from 'pg';
2
- import { ServerConfig, ServersConfig, ConnectionState, DatabaseInfo } from './types.js';
2
+ import { ServerConfig, ServersConfig, ConnectionState, ConnectionInfo, DatabaseInfo } from './types.js';
3
3
  export declare class DatabaseManager {
4
4
  private serversConfig;
5
5
  private connectionState;
6
6
  private currentPool;
7
7
  private readOnlyMode;
8
- constructor(readOnlyMode?: boolean);
8
+ private queryTimeoutMs;
9
+ constructor(readOnlyMode?: boolean, queryTimeoutMs?: number);
9
10
  private loadServersConfig;
10
11
  getServersConfig(): ServersConfig;
11
12
  getServerNames(): string[];
12
13
  getServerConfig(serverName: string): ServerConfig | null;
13
14
  getCurrentState(): ConnectionState;
14
15
  isConnected(): boolean;
15
- switchServer(serverName: string, database?: string): Promise<void>;
16
+ getDefaultServerName(): string | null;
17
+ switchServer(serverName: string, database?: string, schema?: string): Promise<void>;
18
+ setCurrentSchema(schema: string): void;
19
+ getConnectionInfo(): ConnectionInfo;
20
+ connectToDefault(): Promise<boolean>;
16
21
  switchDatabase(database: string): Promise<void>;
17
22
  listDatabases(): Promise<DatabaseInfo[]>;
18
23
  query<T extends QueryResultRow = any>(sql: string, params?: any[]): Promise<QueryResult<T>>;
@@ -20,6 +25,14 @@ export declare class DatabaseManager {
20
25
  close(): Promise<void>;
21
26
  isReadOnly(): boolean;
22
27
  setReadOnlyMode(readOnly: boolean): void;
28
+ setQueryTimeout(timeoutMs: number): void;
23
29
  }
24
- export declare function getDbManager(readOnlyMode?: boolean): DatabaseManager;
30
+ /**
31
+ * Gets the singleton DatabaseManager instance.
32
+ * The access mode is determined by the POSTGRES_ACCESS_MODE environment variable:
33
+ * - 'readonly', 'read-only', 'ro': Read-only mode (prevents write operations)
34
+ * - 'full' (default): Full access mode (allows all operations)
35
+ */
36
+ export declare function getDbManager(): DatabaseManager;
37
+ export declare function resetDbManager(): void;
25
38
  //# sourceMappingURL=db-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-manager.d.ts","sourceRoot":"","sources":["../src/db-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AAKpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,YAAY,CAAU;gBAElB,YAAY,GAAE,OAAc;IASxC,OAAO,CAAC,iBAAiB;IAelB,gBAAgB,IAAI,aAAa;IAIjC,cAAc,IAAI,MAAM,EAAE;IAI1B,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAIxD,eAAe,IAAI,eAAe;IAIlC,WAAW,IAAI,OAAO;IAIhB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqClE,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/C,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAcxC,KAAK,CAAC,CAAC,SAAS,cAAc,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAoB3F,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAOhC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B,UAAU,IAAI,OAAO;IAIrB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;CAGhD;AAKD,wBAAgB,YAAY,CAAC,YAAY,GAAE,OAAc,GAAG,eAAe,CAK1E"}
1
+ {"version":3,"file":"db-manager.d.ts","sourceRoot":"","sources":["../src/db-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,IAAI,CAAC;AACnE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AA8CpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,cAAc,CAAS;gBAEnB,YAAY,GAAE,OAAc,EAAE,cAAc,GAAE,MAAiC;IAW3F,OAAO,CAAC,iBAAiB;IAgClB,gBAAgB,IAAI,aAAa;IAKjC,cAAc,IAAI,MAAM,EAAE;IAI1B,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAOxD,eAAe,IAAI,eAAe;IAIlC,WAAW,IAAI,OAAO;IAItB,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAW/B,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuDzF,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOtC,iBAAiB,IAAI,cAAc;IAgB7B,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAepC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/C,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAcxC,KAAK,CAAC,CAAC,SAAS,cAAc,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IA4B3F,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAOhC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B,UAAU,IAAI,OAAO;IAIrB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAIxC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAGhD;AAKD;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,eAAe,CAO9C;AAED,wBAAgB,cAAc,IAAI,IAAI,CAKrC"}
@@ -1,22 +1,56 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DatabaseManager = void 0;
4
- exports.getDbManager = getDbManager;
5
- const pg_1 = require("pg");
1
+ import { Pool } from 'pg';
2
+ import { isReadOnlySql } from './utils/validation.js';
6
3
  const DEFAULT_PORT = '5432';
7
4
  const DEFAULT_DATABASE = 'postgres';
8
- class DatabaseManager {
5
+ const DEFAULT_SCHEMA = 'public';
6
+ const DEFAULT_QUERY_TIMEOUT_MS = 30000; // 30 seconds
7
+ const MAX_QUERY_TIMEOUT_MS = 300000; // 5 minutes
8
+ /**
9
+ * Converts the ServerConfig ssl option to pg Pool ssl config format.
10
+ */
11
+ function getSslConfig(ssl) {
12
+ if (ssl === undefined || ssl === false || ssl === 'disable') {
13
+ return undefined;
14
+ }
15
+ if (ssl === true || ssl === 'require') {
16
+ // Most cloud providers need rejectUnauthorized: false for self-signed certs
17
+ return { rejectUnauthorized: false };
18
+ }
19
+ if (ssl === 'prefer' || ssl === 'allow') {
20
+ return { rejectUnauthorized: false };
21
+ }
22
+ if (typeof ssl === 'object') {
23
+ return ssl;
24
+ }
25
+ return undefined;
26
+ }
27
+ /**
28
+ * Determines the access mode from environment variable.
29
+ * POSTGRES_ACCESS_MODE can be 'readonly' or 'full' (default).
30
+ */
31
+ function getAccessModeFromEnv() {
32
+ const mode = process.env.POSTGRES_ACCESS_MODE?.toLowerCase().trim();
33
+ if (mode === 'readonly' || mode === 'read-only' || mode === 'ro') {
34
+ return true; // read-only mode
35
+ }
36
+ // Default is 'full' access (read-only = false)
37
+ return false;
38
+ }
39
+ export class DatabaseManager {
9
40
  serversConfig;
10
41
  connectionState;
11
42
  currentPool = null;
12
43
  readOnlyMode;
13
- constructor(readOnlyMode = true) {
44
+ queryTimeoutMs;
45
+ constructor(readOnlyMode = true, queryTimeoutMs = DEFAULT_QUERY_TIMEOUT_MS) {
14
46
  this.serversConfig = this.loadServersConfig();
15
47
  this.connectionState = {
16
48
  currentServer: null,
17
- currentDatabase: null
49
+ currentDatabase: null,
50
+ currentSchema: null
18
51
  };
19
52
  this.readOnlyMode = readOnlyMode;
53
+ this.queryTimeoutMs = Math.min(queryTimeoutMs, MAX_QUERY_TIMEOUT_MS);
20
54
  }
21
55
  loadServersConfig() {
22
56
  const configEnv = process.env.POSTGRES_SERVERS;
@@ -25,7 +59,21 @@ class DatabaseManager {
25
59
  return {};
26
60
  }
27
61
  try {
28
- return JSON.parse(configEnv);
62
+ const parsed = JSON.parse(configEnv);
63
+ // Validate the structure
64
+ if (typeof parsed !== 'object' || parsed === null) {
65
+ throw new Error('POSTGRES_SERVERS must be a JSON object');
66
+ }
67
+ for (const [name, config] of Object.entries(parsed)) {
68
+ if (!config || typeof config !== 'object') {
69
+ throw new Error(`Server '${name}' configuration is invalid`);
70
+ }
71
+ const serverConfig = config;
72
+ if (!serverConfig.host || typeof serverConfig.host !== 'string') {
73
+ throw new Error(`Server '${name}' must have a valid 'host' string`);
74
+ }
75
+ }
76
+ return parsed;
29
77
  }
30
78
  catch (error) {
31
79
  console.error('Error parsing POSTGRES_SERVERS:', error);
@@ -33,13 +81,18 @@ class DatabaseManager {
33
81
  }
34
82
  }
35
83
  getServersConfig() {
36
- return this.serversConfig;
84
+ // Return a copy to prevent mutation
85
+ return JSON.parse(JSON.stringify(this.serversConfig));
37
86
  }
38
87
  getServerNames() {
39
88
  return Object.keys(this.serversConfig);
40
89
  }
41
90
  getServerConfig(serverName) {
42
- return this.serversConfig[serverName] || null;
91
+ const config = this.serversConfig[serverName];
92
+ if (!config)
93
+ return null;
94
+ // Return a copy to prevent mutation
95
+ return { ...config };
43
96
  }
44
97
  getCurrentState() {
45
98
  return { ...this.connectionState };
@@ -47,7 +100,17 @@ class DatabaseManager {
47
100
  isConnected() {
48
101
  return this.currentPool !== null;
49
102
  }
50
- async switchServer(serverName, database) {
103
+ getDefaultServerName() {
104
+ for (const [name, config] of Object.entries(this.serversConfig)) {
105
+ if (config.isDefault) {
106
+ return name;
107
+ }
108
+ }
109
+ // If no default is set, return the first server
110
+ const names = this.getServerNames();
111
+ return names.length > 0 ? names[0] : null;
112
+ }
113
+ async switchServer(serverName, database, schema) {
51
114
  const serverConfig = this.getServerConfig(serverName);
52
115
  if (!serverConfig) {
53
116
  throw new Error(`Server '${serverName}' not found in configuration`);
@@ -55,9 +118,16 @@ class DatabaseManager {
55
118
  // Close existing pool if any
56
119
  if (this.currentPool) {
57
120
  await this.currentPool.end();
121
+ this.currentPool = null;
58
122
  }
59
- const dbName = database || DEFAULT_DATABASE;
60
- this.currentPool = new pg_1.Pool({
123
+ // Use provided database, server's default, or system default
124
+ const dbName = database || serverConfig.defaultDatabase || DEFAULT_DATABASE;
125
+ // Validate database name
126
+ if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(dbName)) {
127
+ throw new Error('Invalid database name. Only alphanumeric characters and underscores are allowed.');
128
+ }
129
+ const sslConfig = getSslConfig(serverConfig.ssl);
130
+ this.currentPool = new Pool({
61
131
  host: serverConfig.host,
62
132
  port: parseInt(serverConfig.port || DEFAULT_PORT, 10),
63
133
  user: serverConfig.username,
@@ -65,7 +135,13 @@ class DatabaseManager {
65
135
  database: dbName,
66
136
  max: 10,
67
137
  idleTimeoutMillis: 30000,
68
- connectionTimeoutMillis: 10000
138
+ connectionTimeoutMillis: 10000,
139
+ statement_timeout: this.queryTimeoutMs,
140
+ ...(sslConfig && { ssl: sslConfig })
141
+ });
142
+ // Handle pool errors
143
+ this.currentPool.on('error', (err) => {
144
+ console.error('Unexpected pool error:', err);
69
145
  });
70
146
  // Test connection
71
147
  try {
@@ -73,11 +149,47 @@ class DatabaseManager {
73
149
  client.release();
74
150
  this.connectionState.currentServer = serverName;
75
151
  this.connectionState.currentDatabase = dbName;
152
+ // Use provided schema, server's default, or system default
153
+ this.connectionState.currentSchema = schema || serverConfig.defaultSchema || DEFAULT_SCHEMA;
76
154
  }
77
155
  catch (error) {
78
156
  await this.currentPool.end();
79
157
  this.currentPool = null;
80
- throw new Error(`Failed to connect to server '${serverName}': ${error}`);
158
+ throw new Error(`Failed to connect to server '${serverName}': ${error instanceof Error ? error.message : String(error)}`);
159
+ }
160
+ }
161
+ setCurrentSchema(schema) {
162
+ if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(schema)) {
163
+ throw new Error('Invalid schema name. Only alphanumeric characters and underscores are allowed.');
164
+ }
165
+ this.connectionState.currentSchema = schema;
166
+ }
167
+ getConnectionInfo() {
168
+ const serverConfig = this.connectionState.currentServer
169
+ ? this.getServerConfig(this.connectionState.currentServer)
170
+ : null;
171
+ return {
172
+ isConnected: this.isConnected(),
173
+ server: this.connectionState.currentServer,
174
+ database: this.connectionState.currentDatabase,
175
+ schema: this.connectionState.currentSchema,
176
+ host: serverConfig?.host || null,
177
+ port: serverConfig?.port || null,
178
+ accessMode: this.readOnlyMode ? 'readonly' : 'full'
179
+ };
180
+ }
181
+ async connectToDefault() {
182
+ const defaultServer = this.getDefaultServerName();
183
+ if (!defaultServer) {
184
+ return false;
185
+ }
186
+ try {
187
+ await this.switchServer(defaultServer);
188
+ return true;
189
+ }
190
+ catch (error) {
191
+ console.error(`Failed to connect to default server: ${error}`);
192
+ return false;
81
193
  }
82
194
  }
83
195
  async switchDatabase(database) {
@@ -103,17 +215,26 @@ class DatabaseManager {
103
215
  if (!this.currentPool) {
104
216
  throw new Error('No database connection. Please switch to a server and database first.');
105
217
  }
106
- // Check for read-only mode violations
218
+ if (!sql || typeof sql !== 'string') {
219
+ throw new Error('SQL query is required and must be a string');
220
+ }
221
+ // Check for read-only mode violations using improved validation
107
222
  if (this.readOnlyMode) {
108
- const upperSql = sql.trim().toUpperCase();
109
- const writeOperations = ['INSERT', 'UPDATE', 'DELETE', 'DROP', 'CREATE', 'ALTER', 'TRUNCATE', 'GRANT', 'REVOKE'];
110
- for (const op of writeOperations) {
111
- if (upperSql.startsWith(op)) {
112
- throw new Error(`Write operation '${op}' is not allowed in read-only mode`);
113
- }
223
+ const { isReadOnly, reason } = isReadOnlySql(sql);
224
+ if (!isReadOnly) {
225
+ throw new Error(`Read-only mode violation: ${reason}`);
114
226
  }
115
227
  }
116
- return this.currentPool.query(sql, params);
228
+ try {
229
+ return await this.currentPool.query(sql, params);
230
+ }
231
+ catch (error) {
232
+ // Provide more context in error messages
233
+ if (error instanceof Error) {
234
+ throw new Error(`Query failed: ${error.message}`);
235
+ }
236
+ throw error;
237
+ }
117
238
  }
118
239
  async getClient() {
119
240
  if (!this.currentPool) {
@@ -127,6 +248,7 @@ class DatabaseManager {
127
248
  this.currentPool = null;
128
249
  this.connectionState.currentServer = null;
129
250
  this.connectionState.currentDatabase = null;
251
+ this.connectionState.currentSchema = null;
130
252
  }
131
253
  }
132
254
  isReadOnly() {
@@ -135,14 +257,30 @@ class DatabaseManager {
135
257
  setReadOnlyMode(readOnly) {
136
258
  this.readOnlyMode = readOnly;
137
259
  }
260
+ setQueryTimeout(timeoutMs) {
261
+ this.queryTimeoutMs = Math.min(Math.max(1000, timeoutMs), MAX_QUERY_TIMEOUT_MS);
262
+ }
138
263
  }
139
- exports.DatabaseManager = DatabaseManager;
140
264
  // Singleton instance
141
265
  let dbManager = null;
142
- function getDbManager(readOnlyMode = true) {
266
+ /**
267
+ * Gets the singleton DatabaseManager instance.
268
+ * The access mode is determined by the POSTGRES_ACCESS_MODE environment variable:
269
+ * - 'readonly', 'read-only', 'ro': Read-only mode (prevents write operations)
270
+ * - 'full' (default): Full access mode (allows all operations)
271
+ */
272
+ export function getDbManager() {
143
273
  if (!dbManager) {
274
+ const readOnlyMode = getAccessModeFromEnv();
144
275
  dbManager = new DatabaseManager(readOnlyMode);
276
+ console.error(`PostgreSQL MCP: Access mode = ${readOnlyMode ? 'readonly' : 'full'}`);
145
277
  }
146
278
  return dbManager;
147
279
  }
280
+ export function resetDbManager() {
281
+ if (dbManager) {
282
+ dbManager.close().catch(console.error);
283
+ dbManager = null;
284
+ }
285
+ }
148
286
  //# sourceMappingURL=db-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-manager.js","sourceRoot":"","sources":["../src/db-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-manager.js","sourceRoot":"","sources":["../src/db-manager.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,10 +1,9 @@
1
1
  #!/usr/bin/env node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
5
- const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
6
- const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
7
- const index_js_2 = require("./tools/index.js");
2
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
5
+ import { resetDbManager } from './db-manager.js';
6
+ import { listServersAndDbs, switchServerDb, getCurrentConnection, listSchemas, listObjects, getObjectDetails, executeSql, explainQuery, getTopQueries, analyzeWorkloadIndexes, analyzeQueryIndexes, analyzeDbHealth } from './tools/index.js';
8
7
  // Tool definitions
9
8
  const tools = [
10
9
  {
@@ -32,7 +31,7 @@ const tools = [
32
31
  },
33
32
  {
34
33
  name: 'switch_server_db',
35
- description: 'Switch to a different PostgreSQL server and optionally a specific database. Must be called before using other database tools.',
34
+ description: 'Switch to a different PostgreSQL server and optionally a specific database and schema. Must be called before using other database tools. Uses server defaults if not specified.',
36
35
  inputSchema: {
37
36
  type: 'object',
38
37
  properties: {
@@ -42,12 +41,24 @@ const tools = [
42
41
  },
43
42
  database: {
44
43
  type: 'string',
45
- description: 'Name of the database to connect to (defaults to "postgres")'
44
+ description: 'Name of the database to connect to (uses server default or "postgres")'
45
+ },
46
+ schema: {
47
+ type: 'string',
48
+ description: 'Name of the default schema (uses server default or "public")'
46
49
  }
47
50
  },
48
51
  required: ['server']
49
52
  }
50
53
  },
54
+ {
55
+ name: 'get_current_connection',
56
+ description: 'Returns details about the current database connection including server, database, schema, host, port, and access mode (readonly/full).',
57
+ inputSchema: {
58
+ type: 'object',
59
+ properties: {}
60
+ }
61
+ },
51
62
  {
52
63
  name: 'list_schemas',
53
64
  description: 'Lists all database schemas available in the current PostgreSQL database.',
@@ -140,7 +151,7 @@ const tools = [
140
151
  },
141
152
  analyze: {
142
153
  type: 'boolean',
143
- description: 'Actually execute the query to get real timing (default: false)',
154
+ description: 'Actually execute the query to get real timing (default: false). Only allowed for SELECT queries.',
144
155
  default: false
145
156
  },
146
157
  buffers: {
@@ -190,7 +201,7 @@ const tools = [
190
201
  properties: {
191
202
  limit: {
192
203
  type: 'number',
193
- description: 'Number of queries to return',
204
+ description: 'Number of queries to return (1-100)',
194
205
  default: 10
195
206
  },
196
207
  orderBy: {
@@ -215,7 +226,7 @@ const tools = [
215
226
  properties: {
216
227
  topQueriesCount: {
217
228
  type: 'number',
218
- description: 'Number of top queries to analyze',
229
+ description: 'Number of top queries to analyze (1-50)',
219
230
  default: 20
220
231
  },
221
232
  includeHypothetical: {
@@ -252,7 +263,7 @@ const tools = [
252
263
  }
253
264
  ];
254
265
  // Create MCP server
255
- const server = new index_js_1.Server({
266
+ const server = new Server({
256
267
  name: 'postgres-mcp-server',
257
268
  version: '1.0.0',
258
269
  }, {
@@ -261,32 +272,35 @@ const server = new index_js_1.Server({
261
272
  },
262
273
  });
263
274
  // Handle list_tools request
264
- server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
275
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
265
276
  return { tools };
266
277
  });
267
278
  // Handle tool calls
268
- server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
279
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
269
280
  const { name, arguments: args } = request.params;
270
281
  try {
271
282
  let result;
272
283
  switch (name) {
273
284
  case 'list_servers_and_dbs':
274
- result = await (0, index_js_2.listServersAndDbs)(args);
285
+ result = await listServersAndDbs(args);
275
286
  break;
276
287
  case 'switch_server_db':
277
- result = await (0, index_js_2.switchServerDb)(args);
288
+ result = await switchServerDb(args);
289
+ break;
290
+ case 'get_current_connection':
291
+ result = await getCurrentConnection();
278
292
  break;
279
293
  case 'list_schemas':
280
- result = await (0, index_js_2.listSchemas)(args);
294
+ result = await listSchemas(args);
281
295
  break;
282
296
  case 'list_objects':
283
- result = await (0, index_js_2.listObjects)(args);
297
+ result = await listObjects(args);
284
298
  break;
285
299
  case 'get_object_details':
286
- result = await (0, index_js_2.getObjectDetails)(args);
300
+ result = await getObjectDetails(args);
287
301
  break;
288
302
  case 'execute_sql':
289
- result = await (0, index_js_2.executeSql)(args);
303
+ result = await executeSql(args);
290
304
  // Special handling for large output
291
305
  if (result.outputFile) {
292
306
  return {
@@ -306,19 +320,19 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
306
320
  }
307
321
  break;
308
322
  case 'explain_query':
309
- result = await (0, index_js_2.explainQuery)(args);
323
+ result = await explainQuery(args);
310
324
  break;
311
325
  case 'get_top_queries':
312
- result = await (0, index_js_2.getTopQueries)(args);
326
+ result = await getTopQueries(args);
313
327
  break;
314
328
  case 'analyze_workload_indexes':
315
- result = await (0, index_js_2.analyzeWorkloadIndexes)(args);
329
+ result = await analyzeWorkloadIndexes(args);
316
330
  break;
317
331
  case 'analyze_query_indexes':
318
- result = await (0, index_js_2.analyzeQueryIndexes)(args);
332
+ result = await analyzeQueryIndexes(args);
319
333
  break;
320
334
  case 'analyze_db_health':
321
- result = await (0, index_js_2.analyzeDbHealth)();
335
+ result = await analyzeDbHealth();
322
336
  break;
323
337
  default:
324
338
  throw new Error(`Unknown tool: ${name}`);
@@ -345,9 +359,31 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
345
359
  };
346
360
  }
347
361
  });
362
+ // Graceful shutdown handling
363
+ async function shutdown() {
364
+ console.error('Shutting down PostgreSQL MCP Server...');
365
+ try {
366
+ resetDbManager();
367
+ }
368
+ catch (error) {
369
+ console.error('Error during shutdown:', error);
370
+ }
371
+ process.exit(0);
372
+ }
373
+ process.on('SIGINT', shutdown);
374
+ process.on('SIGTERM', shutdown);
375
+ process.on('SIGHUP', shutdown);
376
+ // Handle uncaught errors
377
+ process.on('uncaughtException', (error) => {
378
+ console.error('Uncaught exception:', error);
379
+ shutdown();
380
+ });
381
+ process.on('unhandledRejection', (reason, promise) => {
382
+ console.error('Unhandled rejection at:', promise, 'reason:', reason);
383
+ });
348
384
  // Start server
349
385
  async function main() {
350
- const transport = new stdio_js_1.StdioServerTransport();
386
+ const transport = new StdioServerTransport();
351
387
  await server.connect(transport);
352
388
  console.error('PostgreSQL MCP Server started');
353
389
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export declare function analyzeQueryIndexes(args: {
17
17
  queryAnalysis: Array<{
18
18
  query: string;
19
19
  recommendations: IndexRecommendation[];
20
+ error?: string;
20
21
  }>;
21
22
  summary: IndexRecommendation[];
22
23
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"analysis-tools.d.ts","sourceRoot":"","sources":["../../src/tools/analysis-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhF,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAqDvB;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,OAAO,CAAC;IACV,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,mBAAmB,EAAE,CAAC;CACxC,CAAC,CAsBD;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,GAAG,OAAO,CAAC;IACV,aAAa,EAAE,KAAK,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,mBAAmB,EAAE,CAAC;KACxC,CAAC,CAAC;IACH,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC,CAAC,CAkBD;AAyGD,wBAAsB,eAAe,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA+QpE"}
1
+ {"version":3,"file":"analysis-tools.d.ts","sourceRoot":"","sources":["../../src/tools/analysis-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKhF,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,OAAO,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAoEvB;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,GAAG,OAAO,CAAC;IACV,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,EAAE,mBAAmB,EAAE,CAAC;CACxC,CAAC,CA6BD;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,GAAG,OAAO,CAAC;IACV,aAAa,EAAE,KAAK,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,mBAAmB,EAAE,CAAC;QACvC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC,CAAC,CA8CD;AAyID,wBAAsB,eAAe,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA4RpE"}