Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@postgres-mcp-servershow me the schema and indexes for the users table"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
postgres-mcp-server
A Postgres MCP server built for AWS Bedrock AgentCore Runtime.
AgentCore Protocol Compliance
Transport: Stateless streamable-http (
stateless_http=True)Port: 8000 on
0.0.0.0Path:
POST /mcpPlatform: ARM64 container
Framework: Python FastMCP
Tools
Tool | Description |
| Execute read-only SQL queries (runs in |
| List tables in a schema with row counts and sizes |
| Column details, constraints, and indexes for a table |
| List all non-system database schemas |
| Get EXPLAIN plan for a query (optionally with ANALYZE) |
| Row counts, sizes, scan stats, vacuum info |
| Top slow queries from pg_stat_statements |
Environment Variables
Variable | Required | Description |
| Yes* | PostgreSQL connection string |
| Yes* | Alternative name for connection string |
*One of POSTGRES_URL or DATABASE_URI is required.
Security
All queries execute inside
READ ONLYtransactionsPoint
POSTGRES_URLat a read replica for hard DB-level enforcementUse a Postgres user with
SELECT-only grants for defense in depth
Local Development
# Run directly
POSTGRES_URL="postgresql://user:pass@localhost:5432/mydb" python server.py
# Run with Docker
docker build -t postgres-mcp .
docker run -e POSTGRES_URL="postgresql://user:pass@host:5432/mydb" -p 8000:8000 postgres-mcpDeploy to AgentCore
# Build for ARM64
docker buildx build --platform linux/arm64 -t <ecr-uri>/pgmcp:latest --push .
# Create runtime
aws bedrock-agentcore-control create-agent-runtime \
--agent-runtime-name "mcp_postgres" \
--agent-runtime-artifact '{"containerConfiguration":{"containerUri":"<ecr-uri>/pgmcp:latest"}}' \
--protocol-configuration '{"serverProtocol":"MCP"}' \
--environment-variables '{"POSTGRES_URL":"postgresql://...","PORT":"8000"}' \
--network-configuration '{"networkMode":"VPC","networkModeConfig":{"securityGroups":["sg-xxx"],"subnets":["subnet-xxx"]}}' \
--role-arn "arn:aws:iam::xxx:role/agentcore-execution"Test
# Health check (via MCP initialize)
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
# List tools
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.