ainative-postgres-mcp
v1.0.0
Published
Zero-config Postgres MCP server with auto-provisioning. Drop-in replacement for @modelcontextprotocol/server-postgres — no DATABASE_URL needed. Auto-provisions a managed PostgreSQL instance with pgvector on first run.
Maintainers
Keywords
Readme
ainative-postgres-mcp
Zero-config PostgreSQL MCP server with auto-provisioning. Drop-in replacement for @modelcontextprotocol/server-postgres — no DATABASE_URL needed.
The official @modelcontextprotocol/server-postgres requires you to bring your own Postgres database and pass a connection string. This fork auto-provisions a managed PostgreSQL instance with pgvector on first run. Agents get a database instantly with zero configuration.
Quick Start
npx ainative-postgres-mcpThat's it. On first run:
- A free managed PostgreSQL instance is provisioned
- pgvector extension is enabled automatically
- Connection details are saved to
~/.ainative/postgres-config.json,.env, and.mcp.json - A claim URL is printed so you can take ownership of the database
MCP Configuration
Claude Code / Claude Desktop
Add to your claude_desktop_config.json or .mcp.json:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "ainative-postgres-mcp"]
}
}
}With existing database
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "ainative-postgres-mcp"],
"env": {
"DATABASE_URL": "postgresql://user:pass@host:5432/mydb"
}
}
}
}Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "ainative-postgres-mcp"]
}
}
}Windsurf
Add to ~/.windsurf/mcp.json:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "ainative-postgres-mcp"]
}
}
}Tools
| Tool | Description |
|------|-------------|
| query | Execute read-only SQL queries (runs in READ ONLY transaction) |
| list_tables | List all tables with schema, name, and type |
| describe_table | Get full table schema: columns, types, constraints, indexes |
| create_table | Create a new table with SQL DDL |
| insert | Insert rows into a table (returns inserted rows) |
Comparison with official server-postgres
| Feature | @modelcontextprotocol/server-postgres | ainative-postgres-mcp |
|---------|----------------------------------------|------------------------|
| Read queries | Yes | Yes |
| Write queries | No | Yes (create_table, insert) |
| Schema inspection | Via resources | Via describe_table tool |
| Table listing | No | Yes (list_tables) |
| Auto-provisioning | No | Yes |
| pgvector | Manual setup | Auto-enabled |
| Zero config | No (requires DATABASE_URL) | Yes |
| Free tier | N/A | Yes |
How Auto-Provisioning Works
Start
|
v
DATABASE_URL set? ----yes----> Connect directly
|
no
v
~/.ainative/postgres-config.json exists? ----yes----> Load and connect
|
no
v
.mcp.json has DATABASE_URL? ----yes----> Load and connect
|
no
v
POST /api/v1/public/instant-db (get API key)
|
v
POST /api/v1/zerodb/postgres/provision (get Postgres)
|
v
Save to ~/.ainative/postgres-config.json + .env + .mcp.json
|
v
Connect and enable pgvectorpgvector Support
pgvector is automatically enabled on provisioned instances. You can use vector columns in your tables:
CREATE TABLE documents (
id SERIAL PRIMARY KEY,
content TEXT,
embedding vector(1536)
);And run similarity searches:
SELECT content, embedding <=> '[0.1, 0.2, ...]'::vector AS distance
FROM documents
ORDER BY distance
LIMIT 10;Environment Variables
| Variable | Description | Required |
|----------|-------------|----------|
| DATABASE_URL | PostgreSQL connection string | No (auto-provisioned if missing) |
| ZERODB_API_KEY | ZeroDB API key (for provisioning) | No (auto-created) |
| ZERODB_PROJECT_ID | ZeroDB project ID | No (auto-created) |
| ZERODB_API_URL | ZeroDB API base URL | No (defaults to https://api.ainative.studio) |
Free Tier
Auto-provisioned instances include:
- Managed PostgreSQL with pgvector
- Shared compute (suitable for development and light production)
- Automatic backups
- SSL encryption
Sign up at ainative.studio to claim your instance and unlock higher limits.
License
MIT
