
pgvector
io.github.mittalpk由 GitHub 账号 mittalpk 发布v0.1.0更新于 Nov 3, 2026
Similarity search, hybrid search, and index management for pgvector-backed PostgreSQL tables
概览
面向 pgvector 支持的 PostgreSQL 表的 MCP 服务器:相似度与混合检索、向量写入以及 ANN 索引管理。
- 可以做什么
- 发现数据库中的向量列,并查看表的列、索引与大致行数
- 按余弦、L2 或内积距离做 k 近邻相似度检索,并支持结构化元数据过滤
- 将向量相似度与 Postgres 全文检索加权融合进行混合检索
- 插入或更新某一行的向量与元数据
- 创建可调参数的 HNSW 或 IVFFlat 索引,并用 EXPLAIN ANALYZE 确认相似度查询是否命中索引
- 适用场景
- 适合需要查询或维护存放在 PostgreSQL + pgvector 中的向量表的场景,例如对已有数据做语义检索、调优近似最近邻索引,而无需手写 SQL。
- 运行要求
- 以本地 Python 包运行(uvx 或 pip install mcp-server-pgvector)。需要一个启用 pgvector 扩展的 PostgreSQL 数据库,并在 DATABASE_URL(或 PGVECTOR_DATABASE_URL)中提供连接串。可选设置 MCP_PGVECTOR_READ_ONLY 与 MCP_PGVECTOR_COMMAND_TIMEOUT_SECONDS。
安装
在 SourceWeft 中
- 打开 控制台中的 pgvector,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
mcp-server-pgvector
An MCP server that gives LLM agents first-class access to pgvector-backed embedding tables in PostgreSQL: similarity search, hybrid (vector + full-text) search, upserts, and HNSW/IVFFlat index management.
Generic Postgres MCP servers expose raw SQL or schema introspection; this one speaks pgvector specifically — nearest-neighbor search, distance metrics, and ANN index tuning are first-class tools, not something the model has to hand-write SQL for.
Tools
Safety
- Every table/column name is validated against
information_schema/pg_catalogbefore being interpolated into SQL — an LLM can only ever reference identifiers that already exist. Values are always bound parameters. - Metadata filters are a closed
{column, op, value}allowlist, not a raw SQL fragment. - Set
MCP_PGVECTOR_READ_ONLY=trueto disableupsert_embeddingandcreate_vector_index, leaving only read/search tools available — useful when pointing the server at a production database. - Every query runs with a per-command timeout (
MCP_PGVECTOR_COMMAND_TIMEOUT_SECONDS, default 30s) so one expensive query can't occupy a pool connection — and stall every other caller — indefinitely. Set it to0to disable.
Installation
Or with pip:
Configuration
The server reads its connection string from DATABASE_URL (or PGVECTOR_DATABASE_URL):
Production readiness
Covered:
- Identifier-safe SQL (every table/column checked against
pg_catalogbefore use) and a closed filter-operator allowlist — no path from tool arguments to raw SQL. - Per-query timeout, so one runaway query can't monopolize the (small, 5-connection) pool.
- 60+ tests, including dimension-mismatch and injection-attempt regressions, run in CI on every
push/PR against a real pgvector container across Python 3.10–3.13. A separate CI job builds the
package and runs
twine checkon the result. - Connection failures surface as plain
ConnectionRefusedError/asyncpgexceptions — verified these don't leak the DSN's credentials into error text.
Known limitations, honestly:
- No per-tool authorization — access control is whatever the Postgres role in
DATABASE_URLcan do. If you need different agents to have different permissions, give them different connection strings backed by different Postgres roles, not different server instances of this same DSN. hybrid_search's full-text side is hardcoded to Postgres's'english'text search configuration; there's no parameter to change it yet.- No structured logging — failures are exceptions surfaced through the MCP error channel, not written to a log you can tail. Fine for a single-user desktop MCP client, a real gap if you're running this as a shared service.
- The connection pool is fixed at 1–5 connections and isn't configurable via environment variable yet.
Development
Contributing
See CONTRIBUTING.md. See CHANGELOG.md for release history.
License
MIT — see LICENSE.
来源:README.md,提交 f4e086d
工具
0版本历史
1- v0.1.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分