PostgreSQL MCP Server
概要
作者による説明(英語の原文)
Python MCP server for PostgreSQL database inspection and querying
PopNx MCPの3つの柱
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
- 利用者の声iレビューはまだありませんレビューは今後のステップで、アカウント機能と一緒に始まります
- 私たちの基本チェックi1項目中1項目に合格公開情報からチェック。コードはまだスキャンしていません
- 利用状況iとても新しい↓ 38/週 · ★ –
できること
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
- 接続方法: パソコンで動く
- トランスポート: stdio
- カテゴリ: データベース・データセット
- 入力が必要なもの:POSTGRES_HOST, POSTGRES_PORT, POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB
インストール
使っているAIアプリを選んで、設定をコピーしてください。
インストールの前に
- 基本チェック:1項目中1項目に合格
- あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
- 自分で入力するもの:
POSTGRES_HOST,POSTGRES_PORT,POSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_DB,POSTGRES_READ_QUERY_LIMIT
「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
- PyPIPythonのuvのインストール(uvxコマンドに必要)
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"postgresql": {
"command": "uvx",
"args": [
"mdev-postgresql-mcp-server"
],
"env": {
"POSTGRES_HOST": "your-value",
"POSTGRES_PORT": "your-value",
"POSTGRES_USER": "your-value",
"POSTGRES_PASSWORD": "your-value",
"POSTGRES_DB": "your-value",
"POSTGRES_READ_QUERY_LIMIT": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add postgresql --env POSTGRES_HOST=your-value --env POSTGRES_PORT=your-value --env POSTGRES_USER=your-value --env POSTGRES_PASSWORD=your-value --env POSTGRES_DB=your-value --env POSTGRES_READ_QUERY_LIMIT=your-value -- uvx mdev-postgresql-mcp-server動かす前に、空欄の値を入力してください。
または、設定を自分でコピーする
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"postgresql": {
"command": "uvx",
"args": [
"mdev-postgresql-mcp-server"
],
"env": {
"POSTGRES_HOST": "your-value",
"POSTGRES_PORT": "your-value",
"POSTGRES_USER": "your-value",
"POSTGRES_PASSWORD": "your-value",
"POSTGRES_DB": "your-value",
"POSTGRES_READ_QUERY_LIMIT": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
または、設定を自分でコピーする
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"postgresql": {
"type": "stdio",
"command": "uvx",
"args": [
"mdev-postgresql-mcp-server"
],
"env": {
"POSTGRES_HOST": "your-value",
"POSTGRES_PORT": "your-value",
"POSTGRES_USER": "your-value",
"POSTGRES_PASSWORD": "your-value",
"POSTGRES_DB": "your-value",
"POSTGRES_READ_QUERY_LIMIT": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
自分で入力する値
- PostgreSQL host
- PostgreSQL port
- PostgreSQL username
- PostgreSQL password
- PostgreSQL database name
POSTGRES_READ_QUERY_LIMITenvMaximum rows returned by read queries
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
できること
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント musaddiq-dev で確認済みです
- … 未チェック
今もメンテナンスされている
このリポジトリはまだGitHubから読み取っていません
- … 未チェック
ライセンスがある
このリポジトリはまだGitHubから読み取っていません
- – 対象外
エンドポイントが応答する
これはパソコンで動くため、インターネット上のエンドポイントはありません
- – 対象外
OAuthでサインイン
パソコンで動き、代わりにローカルの設定を使います
- … 未チェック
ツールの説明に隠れた指示がない
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
データベース・データセットのほかのサーバーとの比較i
- このカテゴリのほかの1146件のうち0%よりスターが多い
- このカテゴリのほかの1146件のうち12%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの1146件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
PostgreSQL MCP Serverは安全ですか?
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
入力が必要なもの:POSTGRES_HOST, POSTGRES_PORT, POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB
パソコンで動きますか、それともクラウドですか?
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は–、最新バージョン(0.1.2)がレジストリに届いたのは6 か月前です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
代わりに使えるものは?
同じカテゴリには:Supabase, MongoDB MCP Server, Elasticsearch MCP Server
代わりの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
作者のREADME
READMEを開く
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
PostgreSQL MCP Server
A Python Model Context Protocol (MCP) server for inspecting and querying PostgreSQL databases from MCP-compatible clients. It provides schema discovery, safe read-only query execution, query explanation, table previews, index analysis, relationship inspection, and PostgreSQL resources for table metadata.
Features
- List public tables and inspect table schemas
- Execute read-only SQL in a PostgreSQL read-only transaction
- Explain query plans without executing the target query directly
- Preview table rows with a fixed limit
- Inspect foreign-key relationships and indexes
- Expose passive MCP resources for table lists and schema details
Safety Model
postgresql_execute_read_query runs with PostgreSQL read-only transaction mode, caps returned rows by POSTGRES_READ_QUERY_LIMIT, and rolls back after execution. The server also includes postgresql_execute_write_query, which only accepts a single INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, or TRUNCATE statement and can modify data/schema if the connected database user has permission. Do not auto-approve write-capable tools in your MCP client. For public or shared use, run the server with a dedicated read-only PostgreSQL user.
Requirements
- Python 3.11+
- PostgreSQL database
- MCP-compatible client such as Claude Desktop, Cursor, VS Code, or another MCP host
Installation
When published to PyPI, install or run the server like a standard Python MCP package:
uvx mdev-postgresql-mcp-server
For local development from source:
git clone https://github.com/musaddiq-dev/postgresql-mcp-server.git
cd postgresql-mcp-server python -m venv .venv source .venv/bin/activate pip install -e .
Configuration
Copy the example environment file and update it with your database connection details.
cp .env.example .env
| Variable | Description | Required | Default |
|---|---|---|---|
POSTGRES_HOST | PostgreSQL host | Yes | localhost |
POSTGRES_PORT | PostgreSQL port | Yes | 5432 |
POSTGRES_USER | PostgreSQL username | Yes | None |
POSTGRES_PASSWORD | PostgreSQL password | No | None |
POSTGRES_DB | PostgreSQL database name | Yes | None |
LOG_LEVEL | Python logging level written to stderr | No | INFO |
POSTGRES_READ_QUERY_LIMIT | Maximum rows returned by read queries | No | 1000 |
Example read-only user:
CREATE USER mcp_readonly WITH PASSWORD 'change-me';
GRANT CONNECT ON DATABASE your_database TO mcp_readonly; GRANT USAGE ON SCHEMA public TO mcp_readonly; GRANT SELECT ON ALL TABLES IN SCHEMA public TO mcp_readonly; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO mcp_readonly;
Running
mdev-postgresql-mcp-server
From a local checkout before PyPI publication, run:
python -m postgresql_mcp_server.server
MCP Client Configuration
For published installs, prefer uvx. MCP servers using stdio must write protocol messages only to stdout; this server writes logs to stderr through Python logging.
Claude Desktop / Cursor / Windsurf / Cline
Most MCP clients accept this mcpServers JSON shape:
{
"mcpServers": { "postgresql": { "command": "uvx", "args": ["mdev-postgresql-mcp-server"], "env": { "POSTGRES_HOST": "localhost", "POSTGRES_PORT": "5432", "POSTGRES_USER": "mcp_readonly", "POSTGRES_PASSWORD": "change-me", "POSTGRES_DB": "your_database" } } } }
For local development from this repository, use the installed console script path instead:
{
"mcpServers": { "postgresql": { "command": "/absolute/path/to/postgresql-mcp-server/.venv/bin/mdev-postgresql-mcp-server", "args": [], "env": { "POSTGRES_HOST": "localhost", "POSTGRES_PORT": "5432", "POSTGRES_USER": "mcp_readonly", "POSTGRES_PASSWORD": "change-me", "POSTGRES_DB": "your_database" } } } }
Claude Code CLI
claude mcp add postgresql \
--env POSTGRES_HOST=localhost \ --env POSTGRES_PORT=5432 \ --env POSTGRES_USER=mcp_readonly \ --env POSTGRES_PASSWORD=change-me \ --env POSTGRES_DB=your_database \ -- uvx mdev-postgresql-mcp-server
VS Code MCP
VS Code uses the same command/args/env model in its MCP configuration:
{
"servers": { "postgresql": { "type": "stdio", "command": "uvx", "args": ["mdev-postgresql-mcp-server"], "env": { "POSTGRES_HOST": "localhost", "POSTGRES_PORT": "5432", "POSTGRES_USER": "mcp_readonly", "POSTGRES_PASSWORD": "change-me", "POSTGRES_DB": "your_database" } } } }
Tools
| Tool | Purpose | Safety |
|---|---|---|
postgresql_list_tables | List public base tables | Read-only |
postgresql_describe_table | Show columns and metadata for a table | Read-only |
postgresql_execute_read_query | Run bounded SQL under read-only transaction mode | Read-only |
postgresql_execute_write_query | Run a single approved modifying SQL statement and commit | Destructive |
postgresql_explain_query | Return PostgreSQL EXPLAIN output for a single query | Read-only |
postgresql_get_database_summary | Return database version and table count | Read-only |
postgresql_get_relationships | Inspect foreign-key relationships | Read-only |
postgresql_analyze_indexes | Inspect indexes and sizes | Read-only |
postgresql_preview_table | Return up to 10 rows from a table | Read-only |
postgresql_search_sql_definitions | Search public SQL routines/functions | Read-only |
Resources
postgres://list_tablesreturns public table names.postgres://schema/{table_name}returns a generated schema statement for a table.
Smoke Check
Without a database, verify syntax with:
python -m py_compile src/postgresql_mcp_server/server.py
With a configured database, start the server and use your MCP client to call list_tables.
Distribution
This server is published through the standard Python MCP distribution path:
- PyPI package:
mdev-postgresql-mcp-server - MCP Registry name:
io.github.musaddiq-dev/postgresql-mcp-server - Runtime hint:
uvx - Transport:
stdio
The mcp-name marker at the top of this README is required for MCP Registry ownership verification. Users should prefer uvx mdev-postgresql-mcp-server in local MCP client configurations.
Security Notes
- Do not commit
.envor MCP client configs containing credentials. - Use least-privilege database users.
- Treat
execute_write_queryas destructive and require explicit user approval in your MCP client. - Review generated SQL before running write-capable tools.
License
MIT