Neon MCP Server
Neon MCP Server 是一个开源工具,让您能够使用自然语言与您的 Neon Postgres 数据库进行交互。
模型上下文协议(MCP)是一个新的标准化协议,旨在管理大型语言模型(LLMs)与外部系统之间的上下文。此存储库提供了一个安装程序和用于 Neon 的 MCP 服务器。
Neon 的 MCP 服务器充当自然语言请求与 Neon API 之间的桥梁。基于 MCP 构建,它将您的请求转换为必要的 API 调用,使您能够无缝管理创建项目、分支、运行查询和执行数据库迁移等任务。
Neon MCP 服务器的关键特性包括:
- 自然语言交互:使用直观的对话式命令管理 Neon 数据库。
- 简化数据库管理:无需编写 SQL 或直接使用 Neon API 即可执行复杂操作。
- 非开发人员友好:赋能具有不同技术背景的用户与 Neon 数据库进行交互。
- 数据库迁移支持:利用 Neon 的分支功能,通过自然语言发起数据库架构变更。
例如,在 Claude Desktop 或任何 MCP 客户端中,您可以使用自然语言完成 Neon 的事务,例如:
让我们创建一个新的 Postgres 数据库,命名为 "my-database"。然后创建一个名为 users 的表,包含以下列:id、name、email 和 password。我想对我的名为 "my-project" 的项目运行一个迁移,将 users 表修改为添加一个名为 "created_at" 的新列。你能给我一个关于我所有 Neon 项目的摘要,以及每个项目中的数据吗?
[!WARNING]
Neon MCP Server 安全注意事项
Neon MCP Server 通过自然语言请求提供强大的数据库管理功能。在执行前始终审查和授权 LLM 请求的操作。 确保只有授权用户和应用程序才能访问 Neon MCP Server。Neon MCP Server 仅适用于本地开发和 IDE 集成。我们不推荐在生产环境中使用 Neon MCP Server。 它可以执行可能导致意外或未经授权更改的强大操作。
更多信息,请参阅 MCP 安全指南 →。
设置 Neon MCP Server
您有两种选项将您的 MCP 客户端连接到 Neon:
- 远程 MCP 服务器(预览):使用 OAuth 进行身份验证连接到 Neon 的托管 MCP 服务器。此方法更方便,因为它无需管理 API 密钥。此外,您将立即获得发布的最新功能和改进。
- 本地 MCP 服务器:在您的机器上本地运行 Neon MCP 服务器,使用 Neon API 密钥进行身份验证。
前置条件
- 一个 MCP 客户端应用程序。
- 一个 Neon 账户。
- Node.js (>= v18.0.0) 和 npm:从 nodejs.org 下载。
对于本地 MCP 服务器设置,您还需要一个 Neon API 密钥。有关生成密钥的说明,请参阅 Neon API 密钥文档。
选项 1. 远程托管 MCP 服务器(预览)
使用 OAuth 身份验证连接到 Neon 的托管 MCP 服务器。这是最简单的设置,无需本地安装此服务器,也不需要在客户端配置 Neon API 密钥。
-
将以下 "Neon" 条目添加到您的客户端的 MCP 服务器配置文件(例如,
mcp.json、mcp_config.json):{ "mcpServers": { "Neon": { "command": "npx", "args": ["-y", "mcp-remote", "https://mcp.neon.tech/sse"] } } } -
保存配置文件。
-
重启或刷新您的 MCP 客户端。
-
浏览器将打开一个 OAuth 窗口。按照提示授权您的 MCP 客户端访问您的 Neon 账户。
选项 2. 本地 MCP 服务器
在您的本地机器上运行 Neon MCP 服务器。
通过 Smithery 设置:
npx -y @smithery/cli@latest install neon --client <client_name>
系统将提示您输入 Neon API 密钥。输入您从 前置条件 部分获取的 API 密钥。
将 <client_name> 替换为您的 MCP 客户端应用程序的名称。支持的客户端名称包括:
claude用于 Claude Desktopcursor用于 Cursor(通过smithery安装会使 MCP 服务器成为 Cursor 中的全局 MCP 服务器)windsurf用于 Windsurf Editorroo-cline用于 Roo Cline VS Code 扩展witsy用于 Witsyenconvo用于 Enconvovscode用于 Visual Studio Code
安装后重启您的 MCP 客户端。
通过 npm 设置
如果您的 MCP 客户端未在此处列出,您可以将 Neon MCP 服务器详细信息手动添加到客户端的 mcp_config 文件中。
在客户端的 mcp_config 文件的 mcpServers 部分添加以下 JSON 配置,将 <YOUR_NEON_API_KEY> 替换为您的实际 Neon API 密钥:
{
"mcpServers": {
"neon": {
"command": "npx",
"args": [
"-y",
"@neondatabase/mcp-server-neon",
"start",
"<YOUR_NEON_API_KEY>"
]
}
}
}
故障排除
如果您的客户端不使用 JSON 配置 MCP 服务器(例如 Cursor 的旧版本),当提示时,您可以使用以下命令:
npx -y @neondatabase/mcp-server-neon start <YOUR_NEON_API_KEY>
Windows 上的故障排除
如果您使用 Windows 并在添加 MCP 服务器时遇到问题,您可能需要使用命令提示符 (cmd) 或 Windows Subsystem for Linux (wsl) 来运行必要的命令。您的配置设置可能类似于以下内容:
{
"mcpServers": {
"neon": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@neondatabase/mcp-server-neon",
"start",
"<YOUR_NEON_API_KEY>"
]
}
}
}
{
"mcpServers": {
"neon": {
"command": "wsl",
"args": [
"npx",
"-y",
"@neondatabase/mcp-server-neon",
"start",
"<YOUR_NEON_API_KEY>"
]
}
}
}
指南
- Neon MCP Server 指南
- 将 MCP 客户端连接到 Neon
- Cursor 与 Neon MCP Server
- Claude Desktop 与 Neon MCP Server
- Cline 与 Neon MCP Server
- Windsurf 与 Neon MCP Server
- Zed 与 Neon MCP Server
功能
支持的工具
Neon MCP 服务器提供以下操作,这些操作作为 "工具" 暴露给 MCP 客户端。您可以使用这些工具通过自然语言命令与您的 Neon 项目和数据库进行交互。
项目管理:
list_projects:列出您账户中的前 10 个 Neon 项目,并为每个项目提供摘要。如果您找不到特定项目,可以通过将limit参数传递给更高的值来增加限制。describe_project:获取特定 Neon 项目的详细信息,包括其 ID、名称以及相关的分支和数据库。create_project:在您的 Neon 账户中创建一个新的 Neon 项目。项目作为分支、数据库、角色和计算的容器。delete_project:删除现有的 Neon 项目及其所有相关资源。
分支管理:
create_branch:在指定的 Neon 项目中创建一个新分支。利用 Neon 的分支 功能进行开发、测试或迁移。delete_branch:从 Neon 项目中删除现有分支。describe_branch:获取特定分支的详细信息,例如其名称、ID 和父分支。list_branch_computes:列出项目或特定分支的计算端点,包括计算 ID、类型、大小和自动扩展信息。
SQL 查询执行:
get_connection_string:返回您的数据库连接字符串。run_sql:对指定的 Neon 数据库执行单个 SQL 查询。支持读写操作。run_sql_transaction:在 Neon 数据库中执行一系列 SQL 查询,并使用事务。get_database_tables:列出指定 Neon 数据库中的所有表。describe_table_schema:获取特定表的架构定义,详细说明列、数据类型和约束。list_slow_queries:通过查找数据库中最慢的查询来识别性能瓶颈。需要pg_stat_statements扩展。
数据库迁移(架构变更):
prepare_database_migration:启动数据库迁移过程。关键在于,它创建一个临时分支来安全地应用和测试迁移,然后再影响主分支。complete_database_migration:完成并应用已准备的数据库迁移到主分支。此操作合并临时迁移分支的更改并清理临时资源。
查询性能优化:
explain_sql_statement:为 SQL 查询提供详细的执行计划,以帮助识别性能瓶颈。prepare_query_tuning:分析查询性能并建议优化,如索引创建。创建一个临时分支以安全地测试这些优化。complete_query_tuning:在测试后应用或放弃查询优化。可以将更改从临时分支合并到主分支。list_slow_queries:识别并分析数据库中性能较差的查询。需要pg_stat_statements扩展。
计算管理:
list_branch_computes:列出项目或特定分支的计算端点,显示计算 ID、类型、大小和最后活动时间。
Neon Auth:
provision_neon_auth:为 Neon 项目配置 Neon Auth。它允许开发者轻松设置身份验证基础设施,通过创建与 Stack Auth (@stackframe/stack) 的集成。
迁移
迁移是管理数据库架构随时间变化的一种方式。通过 Neon MCP 服务器,LLMs 可以安全地进行迁移,具有单独的 "开始" (prepare_database_migration) 和 "提交" (complete_database_migration) 命令。
"开始" 命令接受迁移并在新的临时分支中运行。返回后,此命令会提示 LLM 在该分支上测试迁移。然后 LLM 可以运行 "提交" 命令将迁移应用到原始分支。
开发
使用 MCP CLI 客户端开发
迭代 MCP 服务器最简单的方法是使用 mcp-client/。更多内容请参阅 mcp-client/README.md。
npm install
npm run build
npm run watch # 您可以保持此命令打开。
cd mcp-client/ && NEON_API_KEY=... npm run start:mcp-server-neon
使用 Claude Desktop(本地 MCP 服务器)开发
npm install
npm run build
npm run watch # 您可以保持此命令打开。
node dist/index.js init $NEON_API_KEY
然后,每次您想要测试更改时,重启 Claude。
测试
要运行测试,您需要根据 .env.example 文件设置 .env 文件。
npm run test