Skip to main content
Glama

PostgreSQL MCP Server with Authentication

by kevin29a
PROGRESS.md3.1 kB
# MCP PostgreSQL Server Setup Progress ## Project Overview Building an MCP server that connects to PostgreSQL database with authentication for Claude web interface. ## Research Completed ✅ 1. **Existing MCP PostgreSQL Solutions**: Found official TypeScript PostgreSQL MCP server, Postgres MCP Pro, Azure version 2. **Authentication Requirements**: Claude web interface requires OAuth 2.1 (March 2025 spec), needs Pro/Max/Team/Enterprise plans 3. **Language Ecosystem**: TypeScript has slight advantages with better tooling, OAuth support, templates 4. **Decision**: Using official TypeScript PostgreSQL MCP server as base ## Files Created ✅ - `package.json` - Node.js project with MCP dependencies - `tsconfig.json` - TypeScript configuration - `docker-compose.yml` - PostgreSQL container setup - `init.sql` - Sample database with users, products, orders tables - `.env.example` - Environment variable template - `src/` directory created - Dependencies installed with `npm install` ## Implementation Status ✅ 1. **PostgreSQL Container**: `docker-compose up -d` ✅ 2. **Source Files Created**: ✅ - `src/index.ts` - Main MCP server with PostgreSQL integration - `src/auth.ts` - Authentication middleware (JWT + API key) - `src/config.ts` - Configuration management with Zod validation 3. **Database Connection**: PostgreSQL container running and connected ✅ 4. **MCP Server**: Basic functionality working (resources, tools) ✅ ## Current Implementation Status - ✅ Research and planning completed - ✅ Project structure and dependencies set up - ✅ Docker PostgreSQL container running - ✅ Source code implementation (MCP server with PostgreSQL) - ✅ Authentication configuration (OAuth 2.1 + API key server) - 🔄 Claude integration testing (manual testing needed) ## Current Commands ```bash cd /home/kevin/proj/volition/claude/mcp-server docker-compose up -d # Start PostgreSQL (already running) npm run dev # Start MCP server (stdio mode) npm run dev:github # Start GitHub OAuth server (HTTP mode) npm run build # Build TypeScript ``` ## Server Status - **Database**: PostgreSQL running on localhost:5432 - **MCP Server**: Ready to accept connections via stdio - **OAuth Server**: HTTP server with OAuth 2.1 + API key auth - **Sample Data**: Users, products, orders tables populated - **Available Tools**: `query`, `describe_table` - **Resources**: All tables accessible via `postgres://table/{name}` ## Files Created - `src/index.ts` - Main MCP server (stdio transport) - `src/github-oauth-server.ts` - GitHub OAuth integration server - `src/auth.ts` - JWT + API key authentication middleware - `src/config.ts` - Configuration with environment validation - `.env` - Environment variables (DB + auth config) - `GITHUB_OAUTH_SETUP.md` - Step-by-step GitHub OAuth setup guide ## Key Insights - Official MCP PostgreSQL server is read-only, we'll extend it for auth - Claude web interface needs specific OAuth 2.1 implementation - TypeScript ecosystem more mature than Python for MCP - Project structure follows Node.js/MCP best practices

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/kevin29a/viq-mcp'

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