Semantic PostgreSQL MCP Server

Semantic PostgreSQL MCP Server

一个具备语义搜索功能的 PostgreSQL MCP 服务器,用于 AI 聊天机器人

cpenniman12

研究与数据
访问服务器

README

Semantic PostgreSQL MCP 服务器

一个模型上下文协议 (MCP) 服务器,使像 Claude 这样的人工智能助手能够在 PostgreSQL 数据库上执行语义搜索。

什么是 MCP?

模型上下文协议 (MCP) 是 Anthropic 开发的一个开放标准,它将人工智能助手连接到数据所在的外部系统,包括数据库、内容存储库和业务工具。它为人工智能模型通过客户端-服务器架构与外部系统交互提供了一种标准化方式。

此 MCP 服务器的功能

此 MCP 服务器将 Claude(或任何 MCP 兼容的人工智能助手)连接到具有语义搜索功能的 PostgreSQL 数据库。它允许人工智能助手:

  • 从语义上理解您的数据库结构: 服务器使用向量嵌入来理解表和列的含义和用途,而不仅仅是它们的名称。
  • 执行自然语言查询: 用户可以用简单的英语提问,并获得执行的相关 SQL 查询。
  • 执行混合搜索: 将关键字匹配与语义理解相结合,以获得更准确的结果。
  • 提供上下文感知的响应: 人工智能可以访问有关您的数据库模式的全面元数据。

主要特性

  • 基于向量的语义搜索: 使用 OpenAI 的嵌入来理解语义含义。
  • 元数据驱动: 以向量格式存储表和列的丰富描述。
  • 无需修改模式: 您现有的数据库表保持不变;元数据单独存储。
  • 与 Claude Desktop 简单集成: 易于使用 Claude Desktop 进行配置。

前提条件

  • PostgreSQL 13+,带有 pgvector 扩展
  • Node.js 18+
  • OpenAI API 密钥(用于生成嵌入)
  • Claude Desktop(或任何 MCP 兼容的客户端)

安装

1. 数据库设置

首先,安装 PostgreSQL 和 pgvector 扩展。然后运行 schema.sql 脚本以创建必要的表和示例数据:

psql -U postgres -f schema.sql

2. MCP 服务器设置

# 克隆此存储库
git clone https://github.com/cpenniman12/semantic-postgres-mcp.git
cd semantic-postgres-mcp

# 安装依赖项
npm install

# 配置环境变量
cp .env.example .env
# 使用您的 PostgreSQL 和 OpenAI 凭据编辑 .env

# 启动服务器
npm start

3. 配置 Claude Desktop

将以下内容添加到您的 Claude Desktop 配置文件(通常位于 ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "semantic-postgres": {
      "command": "node",
      "args": ["/path/to/your/semantic-postgres-mcp/index.js"],
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key"
      }
    }
  }
}

重新启动 Claude Desktop 以连接到 MCP 服务器。

使用示例

设置完成后,您可以向 Claude 提出如下问题:

  • "显示所有客户信息"
  • "哪些产品的库存目前不足?"
  • "查找总金额超过 1000 美元的订单"
  • "显示客户和订单之间的关系"

Claude 将使用语义搜索功能来理解您的请求,找到相关的表和列,并执行适当的 SQL 查询。

工作原理

  1. 元数据存储: 系统存储您的数据库模式(表、列、关系)的详细描述以及向量嵌入。
  2. 查询理解: 当您提出问题时,系统会将其转换为嵌入,并找到语义上相似的列/表。
  3. SQL 生成: 基于匹配的元数据,系统生成适当的 SQL 查询。
  4. 结果呈现: 结果以可读的格式格式化并呈现给用户。

项目结构

  • index.js - 主要 MCP 服务器实现
  • schema.sql - 带有元数据表和示例数据的数据库模式
  • .env.example - 示例环境配置
  • package.json - Node.js 依赖项

贡献

欢迎贡献!请随时提交 Pull Request。

许可证

MIT

推荐服务器

Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
MCP Word Counter

MCP Word Counter

一个模型上下文协议服务器,提供用于分析文本文档的工具,包括字数和字符数统计。该服务器通过暴露简单的文档统计功能,帮助大型语言模型(LLM)执行文本分析任务。

本地
JavaScript
mcp-server-data-exploration

mcp-server-data-exploration

能够对基于 .csv 的数据集进行自主数据探索,以最少的精力提供智能洞察。

本地
Python
Claude MCP Server for USGS Quakes API

Claude MCP Server for USGS Quakes API

在 Claude Desktop 中提供对 USGS Quakes API 的访问,使用户能够通过自然语言查询检索地震数据和详细信息。

本地
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python