mirror of
https://github.com/executeautomation/mcp-database-server.git
synced 2025-12-09 21:12:57 +08:00
Add connection timeout support for PostgreSQL in MCP Database Server
Enhanced the PostgreSQL connection handling by introducing a `--connection-timeout` parameter, allowing users to specify a custom timeout in milliseconds. Updated relevant documentation in README and postgresql-setup.md to reflect this new option. Modified the PostgresqlAdapter to utilize the connection timeout setting during database connections.
This commit is contained in:
@@ -25,6 +25,9 @@ node dist/src/index.js --postgresql --host localhost --database yourdb --user po
|
||||
|
||||
# With SSL enabled
|
||||
node dist/src/index.js --postgresql --host localhost --database yourdb --user postgres --password yourpassword --ssl true
|
||||
|
||||
# With custom connection timeout (in milliseconds)
|
||||
node dist/src/index.js --postgresql --host localhost --database yourdb --user postgres --password yourpassword --connection-timeout 60000
|
||||
```
|
||||
|
||||
## Command Line Arguments
|
||||
@@ -36,6 +39,7 @@ node dist/src/index.js --postgresql --host localhost --database yourdb --user po
|
||||
- `--password`: The password for the PostgreSQL user.
|
||||
- `--port`: The port the PostgreSQL server is listening on (default: 5432).
|
||||
- `--ssl`: Whether to use SSL for the connection (true/false).
|
||||
- `--connection-timeout`: The connection timeout in milliseconds (default: 30000).
|
||||
|
||||
## Usage from MCP Client
|
||||
|
||||
|
||||
@@ -88,6 +88,7 @@ Optional parameters:
|
||||
- `--password`: Password for PostgreSQL authentication
|
||||
- `--port`: Port number (default: 5432)
|
||||
- `--ssl`: Enable SSL connection (true/false)
|
||||
- `--connection-timeout`: Connection timeout in milliseconds (default: 30000)
|
||||
|
||||
## Configuring Claude Desktop
|
||||
|
||||
|
||||
BIN
src/.DS_Store
vendored
BIN
src/.DS_Store
vendored
Binary file not shown.
@@ -18,6 +18,7 @@ export class PostgresqlAdapter implements DbAdapter {
|
||||
port?: number;
|
||||
ssl?: boolean | object;
|
||||
options?: any;
|
||||
connectionTimeout?: number;
|
||||
}) {
|
||||
this.host = connectionInfo.host;
|
||||
this.database = connectionInfo.database;
|
||||
@@ -29,7 +30,9 @@ export class PostgresqlAdapter implements DbAdapter {
|
||||
port: connectionInfo.port || 5432,
|
||||
user: connectionInfo.user,
|
||||
password: connectionInfo.password,
|
||||
ssl: connectionInfo.ssl
|
||||
ssl: connectionInfo.ssl,
|
||||
// Add connection timeout if provided (in milliseconds)
|
||||
connectionTimeoutMillis: connectionInfo.connectionTimeout || 30000,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -39,6 +42,15 @@ export class PostgresqlAdapter implements DbAdapter {
|
||||
async init(): Promise<void> {
|
||||
try {
|
||||
console.error(`[INFO] Connecting to PostgreSQL: ${this.host}, Database: ${this.database}`);
|
||||
console.error(`[DEBUG] Connection details:`, {
|
||||
host: this.host,
|
||||
database: this.database,
|
||||
port: this.config.port,
|
||||
user: this.config.user,
|
||||
connectionTimeoutMillis: this.config.connectionTimeoutMillis,
|
||||
ssl: !!this.config.ssl
|
||||
});
|
||||
|
||||
this.client = new pg.Client(this.config);
|
||||
await this.client.connect();
|
||||
console.error(`[INFO] PostgreSQL connection established successfully`);
|
||||
|
||||
@@ -92,7 +92,8 @@ else if (args.includes('--postgresql') || args.includes('--postgres')) {
|
||||
user: undefined,
|
||||
password: undefined,
|
||||
port: undefined,
|
||||
ssl: undefined
|
||||
ssl: undefined,
|
||||
connectionTimeout: undefined
|
||||
};
|
||||
|
||||
// Parse PostgreSQL connection parameters
|
||||
@@ -109,6 +110,8 @@ else if (args.includes('--postgresql') || args.includes('--postgres')) {
|
||||
connectionInfo.port = parseInt(args[i + 1], 10);
|
||||
} else if (args[i] === '--ssl' && i + 1 < args.length) {
|
||||
connectionInfo.ssl = args[i + 1] === 'true';
|
||||
} else if (args[i] === '--connection-timeout' && i + 1 < args.length) {
|
||||
connectionInfo.connectionTimeout = parseInt(args[i + 1], 10);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user