Skip to main content
Glama
README.md
# Polybase MCP

Universal Database Adapter for PostgreSQL, Supabase & MongoDB — built with the Model Context Protocol (MCP).

## Features

- **PostgreSQL/Supabase** — Connect via SQLAlchemy
- **MongoDB** — Connect to MongoDB & Atlas
- **Read-Only Safety** — Only SELECT/find queries allowed
- **Docker Ready** — Multi-stage build with non-root user
- **Streamable HTTP** — Works with Claude Desktop & VS Code

## Quick Start

### Docker (Recommended)

```bash
# Build
docker build -t polybase-mcp -f docker/Dockerfile .

# Run
docker run -p 8000:8000 polybase-mcp
```

Server available at `http://localhost:8000/mcp`

### Local Development

```bash
git clone https://github.com/shrey715/polybase-mcp.git
cd polybase-mcp
uv sync
uv run python -m mcp_server.main
```

## MCP Client Config

### VS Code (`.vscode/mcp.json`)
```json
{
    "servers": {
        "polybase-mcp": {
            "url": "http://localhost:8000/mcp",
            "type": "http"
        }
    }
}
```

### Claude Desktop
```json
{
    "mcpServers": {
        "polybase-mcp": {
            "url": "http://localhost:8000/mcp",
            "transport": "http"
        }
    }
}
```

## Available Tools

| Tool | Description |
|------|-------------|
| `connect_db` | Connect to PostgreSQL or MongoDB |
| `list_tables` | List tables (PG) or collections (Mongo) |
| `get_schema` | Get table columns or sample doc structure |
| `query_db` | Execute read-only queries |

### Connection Examples

```python
# PostgreSQL
connect_db("postgresql://user:pass@host:5432/dbname")

# MongoDB
connect_db("mongodb://user:pass@host:27017/dbname")

# MongoDB Atlas
connect_db("mongodb+srv://user:pass@cluster.mongodb.net/dbname")
```

### Query Examples

```python
# PostgreSQL - SQL
query_db("SELECT * FROM users LIMIT 10")

# MongoDB - collection:filter format
query_db("users")                          # all docs
query_db('users:{"active": true}')         # with filter
```

## Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `HOST` | `0.0.0.0` | Server bind address |
| `PORT` | `8000` | Server port |

## License

MIT