pglite-mcp:PGlite × MCP,3MB Postgres 随身带
pglite-mcp:PGlite × MCP,3MB Postgres 随身带
给 AI Agent 配个数据库,听起来简单,做起来烦。
装 Docker、拉 Postgres 镜像、配 pgvector 扩展、搞用户认证——一套下来半小时没了。有时候你只是想写个 demo,或者 Agent 只是想存几条数据然后做向量搜索,结果被环境配置劝退。
SQLite 倒是快,但它没有 pgvector。没有图数据库。没有 PostGIS。
有没有办法让 Agent 得到 Postgres 的全部能力,但和 SQLite 一样轻?
pglite-mcp。一句命令搞定。
1npx pglite-mcp --extensions vector3MB,零 Docker,零配置。Agent 通过 MCP 协议直接操作这个 Postgres 数据库——读写都行。
怎么做到的
以前的做法是开个 Docker Postgres,再挂个 MCP Server 桥接。但 pglite-mcp 不是桥接器——它本身就是 MCP Server。
1Agent ──stdio (MCP)──→ pglite-mcp ──JS API──→ PGlite (WASM Postgres 17)
2 tools: query, ↑
3 list_tables, │ 直接操作,不走 TCP socket
4 describe_table, │ 零延迟,零认证
5 execute (可写) │
核心是 PGlite(Electric SQL 出品,GitHub 15K+ Stars)。整个 PostgreSQL 17.5 编译成 WebAssembly,3MB gzip,跑在 Node.js 里。它不是"类 Postgres 的简化版"——就是真正的 Postgres,支持标准 SQL、存储过程、触发器,以及 pgvector、PostGIS、Apache AGE 等扩展。
v0.2.0 用 MCP SDK 自建 server。Agent 的 tool call 直接变成 JS API 调用,不再经过中间层。读、写、建表、建索引——全通过 MCP 完成。
读完再写
默认只读模式,Agent 只能 SELECT。配置 --allow-writes 后,多一个 execute 工具——Agent 可以 CREATE TABLE、INSERT 数据、建向量索引。
1# 只读(默认)
2npx pglite-mcp --db ./data --extensions vector
3
4# 读写
5npx pglite-mcp --db ./data --extensions vector --allow-writes
为什么设计成这样?因为 Agent 需要写入能力才能真正使用数据库。gbrain(YC 总裁 Garry Tan 的个人知识大脑)也用 PGlite,Agent 通过 CLI 命令随意读写——验证了写入的必要性。但我们选择默认只读 + 显式开启,安全第一。
实测
完整的 TDD 测试套件(15 个用例,全部通过):
只读模式:SELECT ✓、拒绝 CREATE TABLE ✓、拒绝 DROP ✓、describe_table ✓、自动发现 schema 资源 ✓
写入模式:CREATE TABLE ✓、INSERT ✓、SELECT 验证数据 ✓、pgvector 建表/插入/查询 ✓
实测 vector 相似度搜索:
1| id | embedding | distance |
2|----|-----------|------------------|
3| 1 | [1,2,3] | 0 | ← 完全匹配
4| 2 | [3,2,1] | 2.828 | ← 较近
5| 3 | [10,10,10]| 13.928 | ← 较远
在 Agent 中配置
Claude Desktop / Cursor(mcpServers 配置):
1{
2 "pglite": {
3 "command": "npx",
4 "args": ["-y", "pglite-mcp", "--db", "./data",
5 "--extensions", "vector", "--allow-writes"]
6 }
7}
Hermes Agent:
1hermes config set mcp_servers.pglite.command "npx"
2hermes config set mcp_servers.pglite.args '["-y", "pglite-mcp", "--db", "./data", "--extensions", "vector", "--allow-writes"]'
3hermes config set mcp_servers.pglite.enabled true
配置完 Agent 就有四个 MCP 工具:query、list_tables、describe_table、execute(写模式)。
支持的扩展
| 扩展 | 用途 |
|---|---|
vector | pgvector 向量搜索(L2/余弦/内积/HNSW) |
age | Apache AGE 图数据库(OpenCypher) |
postgis | 地理空间计算 |
pgcrypto | 加密、哈希 |
pg_trgm | 三元组模糊搜索 |
uuid-ossp | UUID 生成 |
hstore | 键值对存储 |
ltree | 树形结构 |
更多:citext、unaccent、earthdistance、tablefunc、fuzzystrmatch 等。
对比
| pglite-mcp | Docker PG | SQLite MCP | |
|---|---|---|---|
| 安装 | npx 一行 | docker-compose | pip |
| 体积 | 3MB | 300MB+ | 1MB |
| pgvector | ✅ | 需手动装 | ❌ |
| 图数据库 | ✅ AGE | ✅ AGE | ❌ |
| PostGIS | ✅ | ✅ | ❌ |
| Agent 写入 | ✅ --allow-writes | ✅ | ✅ |
| MCP 原生 | ✅ | ❌ 需桥接 | ✅ |
pglite-mcp 是唯一同时做到零 Docker + pgvector + 图数据库 + PostGIS + MCP 原生的方案。
局限
- 单连接——PGlite 是单用户 WASM,不适合多 Agent 并发
- 不能替代生产 PG——Agent 本地状态、原型验证、测试用
- 首次 npx 下载可能超时——
npm install -g pglite-mcp先装好
安装
1npm install -g pglite-mcp
2npx pglite-mcp --extensions vector --allow-writes
- GitHub: github.com/alitrack/pglite-mcp
- npm: npmjs.com/package/pglite-mcp
PGlite × MCP。3MB。零配置。Agent 数据库就这。