
Simple PostgreSQL MCP Server
一个用于构建自定义 MCP 服务器的模板项目,该服务器能够直接访问 PostgreSQL 数据库,并允许通过模型上下文协议 (Model Context Protocol) 执行 SQL 查询和检索模式信息。
README
简易 PostgreSQL MCP 服务器
这是一个为那些希望构建自己的 MCP 服务器的人提供的模板项目。我将其设计得非常简单易懂且易于修改 - 代码简单明了,并附带 MCP 文档,以便您可以快速上手。
什么是 MCP?
TL;DR - 这是一种为 AI 编写插件的方式
模型上下文协议 (MCP) 是一种 LLM 与外部工具和数据交互的标准方式。简而言之:
- 工具 允许 LLM 执行命令(例如运行数据库查询)
- 资源 是您可以附加到对话的数据(例如将文件附加到提示)
- 提示 是生成一致 LLM 指令的模板
功能
此 PostgreSQL MCP 服务器实现了:
-
工具
execute_query
- 针对您的数据库运行 SQL 查询test_connection
- 验证数据库连接是否正常工作
-
资源
db://tables
- 模式中所有表的列表db://tables/{table_name}
- 特定表的模式信息db://schema
- 数据库中所有表的完整模式信息
-
提示
- 查询生成模板
- 分析查询构建器
- 基于此存储库中的模板
前提条件
- Python 3.8+
- uv - 现代 Python 包管理器和安装程序
- npx (包含在 Node.js 中)
- 您可以连接到的 PostgreSQL 数据库
快速设置
-
创建一个虚拟环境并安装依赖项:
# 使用 uv 创建一个虚拟环境 uv venv # 激活虚拟环境 source .venv/bin/activate # 在 Windows 上: .venv\Scripts\activate # 安装依赖项 uv pip install -r requirements.txt
-
使用 MCP Inspector 运行服务器:
# 替换为您实际的数据库凭据 npx @modelcontextprotocol/inspector uv --directory . run postgres -e DSN=postgresql://username:password@hostname:port/database -e SCHEMA=public
注意:如果这是您第一次运行 npx,系统会提示您批准安装。键入“y”继续。
运行此命令后,您将在浏览器中看到启动的 MCP Inspector 界面。您应该看到类似以下的消息:
MCP Inspector is up and running at http://localhost:5173
如果浏览器没有自动打开,请将 URL 复制并粘贴到您的浏览器中。您应该看到类似这样的内容:
-
使用 Inspector:
- 单击界面中的“Connect”按钮(除非左下角的控制台中出现错误消息)
- 浏览“Tools”、“Resources”和“Prompts”选项卡以查看可用功能
- 尝试单击列出的命令或键入资源名称以检索资源和提示
- 该界面允许您测试查询并查看 MCP 服务器如何响应
-
查看官方文档
官方服务器开发者指南:https://modelcontextprotocol.io/quickstart/server
有关 Inspector 的更多信息:https://modelcontextprotocol.io/docs/tools/inspector
将您的 AI 工具连接到服务器
您可以通过创建 MCP 配置文件来为您的 AI 助手配置 MCP 服务器:
{
"mcpServers": {
"postgres": {
"command": "/path/to/uv",
"args": [
"--directory",
"/path/to/simple-psql-mcp",
"run",
"postgres"
],
"env": {
"DSN": "postgresql://username:password@localhost:5432/my-db",
"SCHEMA": "public"
}
}
}
}
或者,您可以使用包含的脚本生成此配置文件:
# 使脚本可执行
chmod +x generate_mcp_config.sh
# 运行配置生成器
./generate_mcp_config.sh
出现提示时,输入您的 PostgreSQL DSN 和模式名称。
如何使用它
您现在可以用自然语言向 LLM 询问有关您数据的问题:
- "我的数据库中所有表是什么?"
- "显示我按创建日期排序的前 5 名用户"
- "按州统计地址"
对于测试,Claude Desktop 本身支持 MCP,并且可以开箱即用地使用所有功能(工具、资源和提示)。
示例数据库(可选)
如果您没有准备好的数据库或遇到连接问题,可以使用包含的示例数据库:
# 使脚本可执行
chmod +x example-db/create-db.sh
# 运行数据库设置脚本
./example-db/create-db.sh
此脚本创建一个 Docker 容器,其中包含一个预先填充了示例用户和地址表的 PostgreSQL 数据库。运行后,您可以使用以下方式连接:
npx @modelcontextprotocol/inspector uv --directory . run postgres -e DSN=postgresql://postgres:postgres@localhost:5432/user_database -e SCHEMA=public
下一步
要使用您自己的 MCP 服务器扩展此项目:
- 在
/src
下创建一个新目录(例如,/src/my-new-mcp
) - 按照 PostgreSQL 示例实现您的 MCP 服务器
- 将您的新 MCP 添加到
pyproject.toml
:
[project.scripts]
postgres = "src.postgres:main"
my-new-mcp = "src.my-new-mcp:main"
然后,您可以使用以下命令运行您的新 MCP:
npx @modelcontextprotocol/inspector uv --directory . run my-new-mcp
文档
- 包含 MCP 文档,便于 LLM 开发
- 基于以下方法:https://modelcontextprotocol.io/tutorials/building-mcp-with-llms
安全
这是一个实验性项目,旨在使开发人员能够创建自己的 MCP 服务器。我做了最少的工作来确保它在您尝试时不会立即崩溃,但请小心 - 使用此工具很容易运行 SQL 注入。服务器将检查查询是否以 SELECT 开头,但除此之外,没有任何保证。TL;DR - 除非您是创始人并且没有付费客户,否则不要在生产环境中运行。
许可证
MIT
推荐服务器

Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。