Skip to main content
Glama

Postgres MCP Server

test-connection.ts3.34 kB
#!/usr/bin/env tsx import { ConfigManager } from '../src/config.js'; import { DatabaseConnectionManager } from '../src/database/connection-manager.js'; import { logger } from '../src/logger.js'; async function testConnection() { console.log('🔍 Testing PostgreSQL MCP Server Connection...\n'); try { // Load configuration const config = new ConfigManager(); config.validate(); console.log('✅ Configuration loaded successfully'); console.log(`📍 Database: ${config.getDatabaseConfig().host}:${config.getDatabaseConfig().port}/${config.getDatabaseConfig().database}`); console.log(`👤 User: ${config.getDatabaseConfig().user}`); console.log(`🔒 SSL: ${config.getDatabaseConfig().ssl ? 'enabled' : 'disabled'}\n`); // Test database connection const dbManager = new DatabaseConnectionManager(config); console.log('🔌 Testing database connection...'); const isConnected = await dbManager.testConnection(); if (isConnected) { console.log('✅ Database connection successful!\n'); // Get pool statistics const poolStats = dbManager.getPoolStats(); console.log('📊 Connection Pool Status:'); console.log(` Total Connections: ${poolStats.totalConnections}`); console.log(` Idle Connections: ${poolStats.idleConnections}`); console.log(` Waiting Count: ${poolStats.waitingCount}`); console.log(` Min Pool Size: ${poolStats.config.min}`); console.log(` Max Pool Size: ${poolStats.config.max}\n`); // Test basic query console.log('🔍 Testing basic query...'); const result = await dbManager.query('SELECT version() as version, current_database() as database, current_user as user'); if (result.rows.length > 0) { console.log('✅ Query execution successful!'); console.log(` PostgreSQL Version: ${result.rows[0].version}`); console.log(` Current Database: ${result.rows[0].database}`); console.log(` Current User: ${result.rows[0].user}\n`); } // Test transaction console.log('🔄 Testing transaction...'); const txId = await dbManager.beginTransaction(true); await dbManager.queryInTransaction(txId, 'SELECT 1 as test'); await dbManager.commitTransaction(txId); console.log('✅ Transaction test successful!\n'); // Get operational stats const stats = dbManager.getOperationalStats(); console.log('📈 Operational Statistics:'); console.log(` Total Queries: ${stats.totalQueries}`); console.log(` Total Errors: ${stats.totalErrors}`); console.log(` Total Transactions: ${stats.totalTransactions}`); console.log(` Average Query Time: ${stats.averageQueryTime.toFixed(2)}ms`); console.log(` Active Transactions: ${stats.activeTransactions}\n`); console.log('🎉 All tests passed! PostgreSQL MCP Server is ready to use.'); } else { console.log('❌ Database connection failed!'); process.exit(1); } // Cleanup await dbManager.cleanup(); } catch (error) { console.error('❌ Connection test failed:', error instanceof Error ? error.message : error); process.exit(1); } } // Run the test testConnection().catch(console.error);

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/itsalfredakku/postgres-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server