Skip to main content
Glama
wirdes

db-mcp-tool

!pg

Establish and manage PostgreSQL database connections. Input host, database, user, and password to interact with the database securely.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
connectionYes

Implementation Reference

  • Inline handler for the !pg tool that initializes a PostgreSQL DatabaseService and connects to the database.
    async (args: { connection: DatabaseConnectionConfig }) => {
      try {
        const config: DatabaseConfig = {
          type: 'postgres',
          connection: args.connection
        };
        dbService = new DatabaseService(config);
        await dbService.connect();
        return {
          content: [{ type: "text", text: "Successfully connected to PostgreSQL database!" }],
        };
      } catch (error: unknown) {
        const errorMessage = error instanceof Error ? error.message : 'Unknown error';
        return {
          content: [{ type: "text", text: `PostgreSQL connection error: ${errorMessage}` }],
          isError: true,
        };
      }
    }
  • src/index.ts:50-72 (registration)
    Registration of the !pg tool on the MCP server with its schema and handler function.
    server.tool(
      "!pg",
      postgresConnectionSchema,
      async (args: { connection: DatabaseConnectionConfig }) => {
        try {
          const config: DatabaseConfig = {
            type: 'postgres',
            connection: args.connection
          };
          dbService = new DatabaseService(config);
          await dbService.connect();
          return {
            content: [{ type: "text", text: "Successfully connected to PostgreSQL database!" }],
          };
        } catch (error: unknown) {
          const errorMessage = error instanceof Error ? error.message : 'Unknown error';
          return {
            content: [{ type: "text", text: `PostgreSQL connection error: ${errorMessage}` }],
            isError: true,
          };
        }
      }
    );
  • Zod schema defining input parameters for PostgreSQL connection.
    const postgresConnectionSchema = {
      connection: z.object({
        host: z.string(),
        port: z.number().optional(),
        database: z.string(),
        user: z.string(),
        password: z.string(),
      }),
    };
  • DatabaseService.connect() method implementation, specifically the PostgreSQL connection logic (lines 18-22).
    async connect(): Promise<void> {
        switch (this.config.type) {
            case 'postgres': {
                const config = this.config.connection as any;
                this.postgresClient = new pg.Client(config);
                await this.postgresClient.connect();
                break;
            }
            case 'mysql': {
                const config = this.config.connection as any;
                this.mysqlConnection = await mysql.createConnection(config);
                break;
            }
            case 'firestore': {
                const config = this.config.connection as any;
                this.firestoreClient = new Firestore(config);
                break;
            }
        }
    }
  • TypeScript interface for database connection config used by !pg schema.
    export interface DatabaseConnectionConfig {
        // PostgreSQL ve MySQL için
        host?: string;
        port?: number;
        database?: string;
        user?: string;
        password?: string;
        // Firestore için
        projectId?: string;
        keyFilename?: string;
    }
Install Server

Other Tools

Related Tools

Latest Blog Posts

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/wirdes/db-mcp-tool'

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