PostgreSQL MCP Server
Enables AI assistants to safely interact with PostgreSQL databases through read-only operations, providing schema discovery, table inspection, and query execution capabilities with structured context awareness.
README
PostgreSQL MCP Server Demo
Overview
This project implements a Model Context Protocol (MCP) server that provides a standardized interface for AI assistants to interact with PostgreSQL databases. MCP enables secure, structured communication between AI models and external data sources through well-defined tools, resources, and prompts.
Theoretical Foundation
Core Objectives
- Database Accessibility: Enable AI assistants to safely query PostgreSQL databases without direct database access
- Structured Interaction: Provide standardized tools for database operations through MCP protocol
- Security: Implement read-only operations with strict query validation to prevent data manipulation
- Context Awareness: Supply database schema information and context for intelligent query generation
Architecture Components
1. MCP Server Framework
- FastMCP: Lightweight MCP server implementation providing transport layers (stdio/SSE)
- Transport Layer: Dual transport support for local development (stdio) and network deployment (SSE via HTTP)
- Registration System: Decorators for automatic registration of tools, resources, and prompts
2. Configuration Management
- YAML-based Configuration: Centralized settings for database connections and server parameters
- Environment Variables: Runtime configuration override capabilities
- Validation Layer: Pydantic models ensuring data integrity and type safety
3. Database Abstraction
- Connection Pooling: Async PostgreSQL connections with automatic lifecycle management
- Query Execution Engine: Isolated read-only operations with comprehensive error handling
- Result Serialization: Consistent data format conversion for MCP protocol compatibility
4. Component Organization
- Tools: Executable database operations (schema listing, table inspection, query execution)
- Resources: Static/contextual data endpoints providing database metadata
- Prompts: Dynamic instruction templates guiding AI query generation
Implementation Description
Entry Point Architecture
The main application serves as a transport-aware launcher that initializes the MCP server with appropriate communication protocols. It supports both local development through standard I/O streams and production deployment via HTTP streaming.
Configuration System
Externalized settings management loads database credentials and server parameters from structured configuration files. The system provides fallback mechanisms and environment variable overrides for flexible deployment across different environments.
Database Connection Layer
Asynchronous connection management establishes secure PostgreSQL connections using connection pooling. The abstraction layer handles connection lifecycle, error recovery, and resource cleanup while maintaining connection isolation for concurrent operations.
MCP Tools Implementation
Six specialized tools provide comprehensive database interaction capabilities:
- Health Monitoring: Basic connectivity verification returning server status
- Schema Discovery: Enumerates available database schemas for navigation
- Table Enumeration: Lists tables within specified schemas with metadata
- Schema Inspection: Retrieves detailed column information and constraints
- Query Execution: Safe SQL execution with forbidden operation filtering
- Performance Analysis: Query optimization insights through EXPLAIN plan generation
Resource Management
Contextual data endpoints serve static database information and schema-specific guidance. These provide AI assistants with domain knowledge about table relationships, data types, and common query patterns without requiring direct database inspection.
Prompt Engineering
Dynamic instruction templates guide AI assistants in generating appropriate database queries. The system provides structured workflows for safe query construction, emphasizing read-only operations and performance considerations.
Testing Framework
Connection validation utilities enable developers to verify database connectivity and explore schema structures. The testing module provides diagnostic capabilities for troubleshooting deployment issues and validating configuration correctness.
Setup
- Install dependencies:
uv sync
-
Configure database connection in
config.yaml -
Install Cloudflare Tunnel (for exposing server):
# macOS
brew install cloudflared
# Or download from: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation/
Running the Server
Local Development (stdio)
MCP_TRANSPORT=stdio uv run python main.py
Expose via Cloudflare Tunnel (SSE)
- Start the server (defaults to SSE transport):
uv run python main.py
The server will start on http://127.0.0.1:8000 by default.
- In another terminal, start Cloudflare tunnel:
cloudflared tunnel --url http://127.0.0.1:8000
Cloudflare will provide a public URL (e.g., https://xxxxx.trycloudflare.com) that you can use to access your MCP server.
Environment Variables
MCP_TRANSPORT: Transport type -sse(default) orstdioMCP_HOST: Host address (default:127.0.0.1)MCP_PORT: Port number (default:8000)
Example:
MCP_PORT=3000 MCP_HOST=0.0.0.0 uv run python main.py
Tools Available
ping: Health checklist_schemas: List all database schemaslist_tables: List tables in a schemaget_table_info: Get table schema informationrun_sql_query: Execute read-only SQL queriesrun_explain_query: Get query performance metrics
Resources
db://context: Database context informationdb://schema/{schema_name}: Schema-specific context
Prompts
get_table_data_prompt: Prompt to generate queries for table data
Notes
- The server uses
main.pyas the entry point - SSE transport is used for HTTP/network access (Cloudflare tunnel)
- stdio transport is used for local development
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。