lihongwen/pgvector-mcp-server
3.3
If you are the rightful owner of pgvector-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A PostgreSQL vector database management server based on Model Context Protocol (MCP), designed for modern AI applications.
Tools
10
Resources
0
Prompts
0
pgvector MCP Server
一个基于 Model Context Protocol (MCP) 的 PostgreSQL 向量数据库管理服务器,专为现代AI应用设计。
功能特性
- MCP 兼容: 完全基于 Model Context Protocol,与AI助手无缝集成
- 集合管理: 创建、列出、重命名和删除向量集合
- 向量操作: 添加向量、搜索相似内容、批量文档处理
- 智能编码: 自动检测文件编码,特别优化Windows中文文件兼容性
- 嵌入服务: 集成阿里云DashScope text-embedding-v4模型
- 现代包管理: 基于uv包管理器,快速安装和依赖管理
- 原子操作: 数据库事务保证集合重命名等操作的原子性
- 跨平台支持: Windows、macOS、Linux全平台兼容
快速开始
1. 安装方式
方式1:使用 uvx 直接运行 (最推荐)
# 无需安装,直接在MCP配置中使用uvx运行
# uvx会自动下载和管理包
方式2:使用 uv 安装
# 全局工具安装
uv tool install pgvector-mcp-server
# 或项目依赖安装
uv add pgvector-mcp-server
方式3:使用 pip 安装
pip install pgvector-mcp-server
2. 设置数据库
# 连接PostgreSQL并启用pgvector扩展
psql postgres -c "CREATE EXTENSION IF NOT EXISTS vector;"
# 创建专用数据库(可选)
createdb mcp_vectors
3. 配置MCP客户端
在你的MCP客户端配置文件中添加以下配置 (例如 Claude Desktop):
推荐配置 (使用 uvx,无需预安装):
{
"mcpServers": {
"pgvector-mcp-server": {
"command": "uvx",
"args": ["pgvector-mcp-server"],
"env": {
"DATABASE_URL": "postgresql://username:password@localhost:5432/mcp_vectors",
"DASHSCOPE_API_KEY": "your_dashscope_api_key_here",
"DEBUG": "false"
}
}
}
}
备选配置 (如果已安装):
{
"mcpServers": {
"pgvector-mcp-server": {
"command": "pgvector-mcp-server",
"env": {
"DATABASE_URL": "postgresql://username:password@localhost:5432/mcp_vectors",
"DASHSCOPE_API_KEY": "your_dashscope_api_key_here",
"DEBUG": "false"
}
}
}
}
传统配置 (使用 Python 模块):
{
"mcpServers": {
"pgvector-mcp-server": {
"command": "python",
"args": ["-m", "pgvector_mcp_server"],
"env": {
"DATABASE_URL": "postgresql://username:password@localhost:5432/mcp_vectors",
"DASHSCOPE_API_KEY": "your_dashscope_api_key_here",
"DEBUG": "false"
}
}
}
}
4. 验证安装
使用MCP客户端调用 status
工具验证连接:
{
"tool": "status",
"parameters": {}
}
预期响应:
{
"success": true,
"database": {
"connected": true,
"pgvector_installed": true
},
"embedding_service": {
"available": true,
"provider": "DashScope"
}
}
MCP 工具参考
pgvector MCP Server 提供以下10个工具供MCP客户端调用:
1. 系统状态检查
{
"tool": "status",
"parameters": {}
}
2. 集合管理
创建集合
{
"tool": "create_collection",
"parameters": {
"name": "my_documents",
"description": "我的文档集合",
"dimension": 1024
}
}
列出所有集合
{
"tool": "list_collections",
"parameters": {
"include_documents": true
}
}
查看集合详情
{
"tool": "show_collection",
"parameters": {
"name": "my_documents",
"include_stats": true
}
}
重命名集合 (新功能)
{
"tool": "rename_collection",
"parameters": {
"old_name": "my_documents",
"new_name": "document_library"
}
}
删除集合
{
"tool": "delete_collection",
"parameters": {
"name": "my_documents",
"confirm": true
}
}
3. 向量操作
添加文本向量
{
"tool": "add_text",
"parameters": {
"collection_name": "my_documents",
"text": "这是一个示例文档内容",
"metadata": {
"source": "manual",
"type": "document",
"category": "技术文档"
}
}
}
搜索相似内容
{
"tool": "search_collection",
"parameters": {
"collection_name": "my_documents",
"query": "机器学习相关内容",
"limit": 5,
"search_strategy": "smart",
"min_similarity": 0.7
}
}
添加文档文件
{
"tool": "add_document",
"parameters": {
"collection_name": "my_documents",
"file_path": "/path/to/document.pdf",
"metadata": {
"category": "manual",
"language": "zh"
}
}
}
删除向量
{
"tool": "delete_vectors",
"parameters": {
"collection_name": "my_documents",
"file_path": "/path/to/old_document.pdf",
"confirm": true
}
}
使用示例
基础工作流程
通过MCP客户端依次调用以下工具:
// 1. 检查系统状态
{
"tool": "status",
"parameters": {}
}
// 2. 创建文档集合
{
"tool": "create_collection",
"parameters": {
"name": "documents",
"description": "文档知识库"
}
}
// 3. 添加文档内容
{
"tool": "add_text",
"parameters": {
"collection_name": "documents",
"text": "机器学习是人工智能的重要分支",
"metadata": {"type": "knowledge"}
}
}
// 4. 搜索相关内容
{
"tool": "search_collection",
"parameters": {
"collection_name": "documents",
"query": "深度学习",
"limit": 3
}
}
// 5. 查看集合统计
{
"tool": "show_collection",
"parameters": {
"name": "documents",
"include_stats": true
}
}
文档处理示例
// 处理PDF文档
{
"tool": "add_document",
"parameters": {
"collection_name": "tech_docs",
"file_path": "/Users/username/documents/manual.pdf",
"metadata": {
"category": "technical",
"language": "zh",
"source": "official_docs"
}
}
}
// 搜索文档内容
{
"tool": "search_collection",
"parameters": {
"collection_name": "tech_docs",
"query": "API配置方法",
"search_strategy": "smart",
"metadata_filters": {
"category": "technical"
}
}
}
集合重命名和管理示例
// 重命名集合(新功能)
{
"tool": "rename_collection",
"parameters": {
"old_name": "temp_docs",
"new_name": "permanent_docs"
}
}
// 列出所有集合
{
"tool": "list_collections",
"parameters": {
"include_documents": true
}
}
// 删除不需要的向量
{
"tool": "delete_vectors",
"parameters": {
"collection_name": "permanent_docs",
"file_path": "/old/path/outdated.pdf",
"confirm": true
}
}
特性说明
Windows编码兼容性
- 自动编码检测: 支持GBK、GB2312、UTF-8等编码格式
- 中文文件处理: 优化Windows环境下的中文文件名和内容处理
- 编码转换: 自动转换为UTF-8进行统一处理
搜索策略
- smart: SQL + 语义搜索智能组合(推荐)
- sql_only: 仅使用传统SQL文本搜索
- semantic_only: 仅使用向量相似度搜索
原子操作保证
- 集合重命名: 使用数据库事务确保操作原子性
- 批量插入: 向量数据批量处理时保证一致性
- 错误恢复: 操作失败时自动回滚,确保数据完整性
性能优化
- 向量索引: 使用pgvector的ivfflat索引优化搜索性能
- 批量处理: 支持文档分块和批量向量生成
- 连接池: SQLAlchemy连接池提高数据库访问效率
- 响应时间: 文档处理目标响应时间<2秒
系统要求
- Python: 3.10+ (使用现代Python特性)
- PostgreSQL: 12+ 并启用pgvector扩展
- pgvector: 0.4.0+ 版本
- MCP客户端: 支持MCP协议的AI助手 (如Claude Desktop)
- 包管理: uv (推荐) 或 pip
- 阿里云API: DashScope API密钥用于文本嵌入
开发和部署
uv项目开发
# 克隆项目
git clone <repository_url>
cd pgvector-mcp-server
# 使用uv安装依赖
uv sync
# 运行测试
uv run pytest
# 构建包
uv build
# 发布到PyPI
uv publish
环境变量配置
# 必需配置
DATABASE_URL=postgresql://username:password@localhost:5432/database
DASHSCOPE_API_KEY=your_api_key_here
# 可选配置
DEBUG=false # 调试模式
安装配置说明
uvx 方式的优势
- 无需预安装: uvx 会自动下载和管理包及其依赖
- 隔离环境: 每个工具运行在独立环境中,避免依赖冲突
- 自动更新: 始终使用最新版本
- 简化配置: 配置文件更简洁,无需指定路径
配置选择建议
- 新用户: 推荐使用 uvx 配置,最简单快捷
- 开发者: 使用
uv tool install
安装后直接调用命令 - 生产环境: 可选择传统的 Python 模块方式,便于版本控制
故障排除
常见问题:
- 数据库连接失败: 检查DATABASE_URL格式和PostgreSQL服务状态
- pgvector扩展未找到: 在PostgreSQL中执行
CREATE EXTENSION vector;
- API密钥错误: 验证DASHSCOPE_API_KEY是否正确配置
- 集合重命名失败: 检查新名称是否已存在
- uvx 网络问题: 确保网络连接正常,uvx 需要从PyPI下载包