Permite que los agentes de codificación con IA realicen consultas, modifiquen e inspeccionen bases de datos PostgreSQL, gestionen perfiles de conexión y diagnostiquen el rendimiento.
También conocido como microsoft/postgres-mcp, @microsoft/postgres-mcp
- Stars
- 86
- Herramientas
- —
- Descargas, 30 días
- —
- Última versión
- —
- Último commit
- 5 nov 2026
- Licencia
- MIT
¿Qué es PostgreSQL MCP?
PostgreSQL es un MCP server. Permite que los agentes de codificación con IA realicen consultas, modifiquen e inspeccionen bases de datos PostgreSQL, gestionen perfiles de conexión y diagnostiquen el rendimiento.
Resumen generado a partir del README del proyecto
Acerca del MCP server de PostgreSQL
Los agentes de codificación que necesiten trabajar directamente con una base de datos PostgreSQL pueden usar postgres-mcp para realizar consultas, diseño de esquemas, diagnósticos e importaciones de CSV. Se ejecuta en Node.js 22+ como un MCP server sobre stdio, se inicia mediante npx sin necesidad de instalación previa y es compatible con cualquier cliente MCP, incluyendo GitHub Copilot, Claude Code, Codex, Open Code, Cursor, VS Code y Claude Desktop. Las configuraciones del cliente apuntan al comando de ejecución de npx y no contienen credenciales; el agente utiliza un perfil guardado en tiempo de ejecución.
Los perfiles se crean una sola vez con el comando connection add a partir de una URI de libpq o una cadena key=value, y la contraseña se mantiene en el keyring del sistema operativo en lugar de un archivo de configuración. Las configuraciones sin interfaz (headless) o de CI que no dispongan de un keyring pueden recibir una cadena de conexión desde el entorno. Microsoft Entra ID se selecciona automáticamente para perfiles de Azure sin contraseña guardada en el keyring. El conjunto de herramientas incluye SQL de solo lectura mediante postgres_mcp_query, DDL y DML mediante postgres_mcp_modify, scripts CREATE para tablas, índices, funciones y secuencias, descripción de CSV y carga masiva mediante COPY, sondeo de capacidades y grupos de métricas de rendimiento.
El control de acceso depende del rol de la base de datos, ya que el servidor ejecuta las solicitudes como ese usuario; los perfiles de solo lectura se configuran con access_mode: ro. La lectura de archivos locales se limita al directorio de trabajo de inicio a menos que se permitan rutas explícitamente, y los secretos se eliminan de los mensajes de error.
Qué puedes hacer con él
- 1Extraer pedidos recientes de PostgresPide al agente que muestre los diez pedidos más recientes para que puedas revisar los datos de prueba sin tener que abrir un cliente SQL.
- 2Identificar cuellos de botella actuales en la base de datosHaz que el agente recopile grupos de métricas de rendimiento para ver qué está ralentizando el servidor en este momento.
- 3Listar tablas en una base de datosObtén un inventario de las tablas en la base de datos conectada como punto de partida para el trabajo de esquema.
Escrito a partir del README del proyecto. Cada caso de uso se verifica con una cita del mismo.
Cómo instalar PostgreSQL MCP
Formatos verificados el 10 nov 2026Instalar PostgreSQL MCP en Claude Code
$ claude mcp add postgres-mcp -- npx -y @microsoft/postgres-mcpInstalar PostgreSQL MCP en Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"postgres-mcp": {
"command": "npx",
"args": [
"-y",
"@microsoft/postgres-mcp"
]
}
}
}Instalar PostgreSQL MCP en VS Code
.vscode/mcp.json
{
"servers": {
"postgres-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@microsoft/postgres-mcp"
]
}
}
}Instalar PostgreSQL MCP en Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"postgres-mcp": {
"command": "npx",
"args": [
"-y",
"@microsoft/postgres-mcp"
]
}
}
}Instalar PostgreSQL MCP en Codex
~/.codex/config.toml
[mcp_servers.postgres-mcp] command = "npx" args = ["-y", "@microsoft/postgres-mcp"]
Instalar PostgreSQL MCP en Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"postgres-mcp": {
"command": "npx",
"args": [
"-y",
"@microsoft/postgres-mcp"
]
}
}
}Verificaciones automáticas
Ejecutado 13 nov 2026Informe completo →Pasó nuestras verificaciones automáticas. Esto no es una auditoría de seguridad: lee el código y dale al servidor el acceso más limitado que necesite. Cómo funcionan las verificaciones
- Repositorio de origen vinculado y accesibleAprobado
- Licencia de código abierto (OSI)Aprobado
- Commit o lanzamiento en el último añoAprobado
- El nombre del paquete no es similar a un paquete popularAprobado
- El endpoint remoto usa HTTPSNo verificado
- Las herramientas destructivas están etiquetadasNo verificado
- Sin instrucciones ocultas para el modeloAprobado
- Sin avisos críticos en el paquete ni en sus dependenciasNo verificado
README
Ver en GitHubPostgres MCP Server
Connect your coding agent to PostgreSQL. postgres-mcp lets you generate
queries and run analytics, design database schemas, diagnose performance of the
server and queries, securely manage connections, and import data. It is
compatible with any MCP client — GitHub Copilot, Claude Code, Codex, Open Code,
Cursor, VS Code, and more.
- npm: https://www.npmjs.com/package/@microsoft/postgres-mcp
- No install required — run it straight from
npx.
Quick start
1. Save a connection profile
Create a named profile once — the password is stored in your OS keyring, never in a config file:
# add a profile from a libpq URI or key=value string
npx -y @microsoft/postgres-mcp connection add local \
"postgresql://postgres@localhost:5432/postgres"
# store its password securely (hidden prompt)
npx -y @microsoft/postgres-mcp connection set-password local
# check it
npx -y @microsoft/postgres-mcp connection list
Profiles created by
connection addpermit write tools unlessaccess_mode: rois set. For autonomous agents that should not write, use an explicit read-only profile and a read-only database role — see Read-only profiles.
2. Add postgres-mcp to your coding agent
The server speaks MCP over stdio. Point your client at
npx @microsoft/postgres-mcp run — no credentials go in the client config; the
coding agent discovers and connects to your saved profile at runtime.
GitHub Copilot CLI, Claude Code, Cursor & Claude Desktop — clients that use the mcpServers format (~/.copilot/mcp-config.json, mcp.json, .cursor/mcp.json, claude_desktop_config.json, …):
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@microsoft/postgres-mcp", "run"]
}
}
}
Running headless or in CI, without a keyring? The server can also take a database connection string from the environment — see Connecting without a profile in the guide.
3. Ask your coding agent
"List the tables in my PostgreSQL database." "Show me the 10 most recent orders from my PostgreSQL database." "What's slowing down my PostgreSQL server right now?"
The agent calls the server's tools (postgres_mcp_connect,
postgres_mcp_query, postgres_mcp_db_context, …) for you.
What it can do
| Area | Tools |
|---|---|
| Connections | list / add / remove profiles, connect, disconnect, list databases |
| Query | read‑only SQL (postgres_mcp_query), DDL/DML (postgres_mcp_modify) |
| Schema | fetch CREATE scripts for tables, indexes, functions, sequences… |
| Data | describe a CSV, bulk‑load a CSV via COPY |
| Diagnostics | probe server capabilities, collect performance metric groups |
See the usage guide for tools, configuration, authentication (including Microsoft Entra ID), TLS, and the security model.
Security in one minute
- The server doesn't decide what's allowed — your database does. It just passes requests along to PostgreSQL and runs them as the database user in your connection profile. It can't tell the difference between a request you meant to make and one the AI invented or was tricked into making, so anything that database user can do, the AI can do. What actually protects you is the permissions you give that user, the approval prompts in your MCP client, and the model you choose to run. See Security model for who's responsible for what, plus a checklist for locking things down.
postgres_mcp_queryis read‑only. Omitted profileaccess_modepermits write tools; setaccess_mode: roand use a read-only database role unless writes are intentionally delegated.- Microsoft Entra ID (AAD) is selected automatically for Azure profiles without a stored keyring password. Store a profile password to use password authentication instead.
- Local file reads (
postgres_mcp_bulk_load_csv,postgres_mcp_describe_csv) are limited to the MCP server's startup working directory by default and paths allowed withallow-access-to-path <path>. A file allows only itself; a directory allows recursive access. - Secrets are scrubbed from error messages before they leave the process.
See more info about security model in the usage guide.
Requirements
- Node.js 22+ (to run via
npx). - Linux x64/arm64, macOS x64/arm64, or Windows x64. Windows ARM uses x64 emulation.
- A reachable PostgreSQL database — local, Docker, on‑premises, Azure Database for PostgreSQL, Amazon RDS/Aurora, Google Cloud SQL/AlloyDB, or any wire‑compatible server.
Changelog
See CHANGELOG.md for release notes.
License
This repository is a getting started information package. It is licensed under the MIT License © Microsoft. The postgres-mcp project itself is proprietary and its source code is not avialable under MIT license.
Preguntas sobre PostgreSQL MCP
¿Cómo agrego PostgreSQL MCP a Claude Code?
Ejecuta claude mcp add postgres-mcp -- npx -y @microsoft/postgres-mcp en tu terminal. Añade --scope user para que esté disponible en todos los proyectos.
¿Cómo agrego PostgreSQL MCP a Cursor?
Abre ~/.cursor/mcp.json y añade el servidor en mcpServers, usando la configuración de Cursor que se muestra en la sección de instalación de arriba.
¿Cómo conecto postgres-mcp a Claude Code o GitHub Copilot?
Añade una entrada stdio que apunte a npx @microsoft/postgres-mcp run en la configuración mcpServers de tu cliente; no es necesario incluir credenciales en esa configuración.
¿Dónde se guarda la contraseña de la base de datos?
Las contraseñas se guardan en el keyring del sistema operativo mediante connection set-password, no en un archivo de configuración.
¿La herramienta de consulta es de solo lectura?
Sí, postgres_mcp_query es de solo lectura, pero existen herramientas de escritura a menos que el perfil tenga configurado el access_mode como ro.
¿Puedo usarlo sin guardar un perfil, por ejemplo en CI?
Sí, el servidor puede recibir una cadena de conexión de la base de datos desde las variables de entorno cuando no hay un keyring disponible.
¿Qué versión de Node.js requiere?
Se requiere Node.js 22 o superior para ejecutarlo vía npx.