
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 分