针对 Nile 数据库平台的模型上下文协议 (MCP) 服务器实现。该服务器允许 LLM 应用程序通过标准化接口与 Nile 平台交互。
特征
数据库管理:创建、列出、获取详细信息和删除数据库
凭证管理:创建并列出数据库凭证
区域管理:列出可用于创建数据库的区域
SQL 查询支持:直接在 Nile 数据库上执行 SQL 查询
MCP 协议支持:全面实现模型上下文协议
类型安全:用 TypeScript 编写,并进行全面类型检查
错误处理:全面的错误处理和用户友好的错误消息
测试覆盖率:使用 Jest 的综合测试套件
环境管理:从.env文件自动加载环境变量
输入验证:使用 Zod 进行基于模式的输入验证
安装
安装稳定版本:
对于最新的 alpha/预览版本:
这会将 @niledatabase/nile-mcp-server 安装到你的 node_modules 文件夹中。例如:node_modules/@niledatabase/nile-mcp-server/dist/
手动安装
其他 mcp 包管理器
npx @michaellatman/mcp-get@latest 安装 @niledatabase/nile-mcp-server
启动服务器
有几种方法可以启动服务器:
直接节点执行:
node dist/index.js开发模式(自动重建):
npm run dev
服务器将启动并监听 MCP 协议消息。您应该看到启动日志,其中显示以下内容:
已加载环境变量
服务器实例已创建
工具已初始化
已建立传输连接
要停止服务器,请按Ctrl+C
。
验证服务器正在运行
当服务器成功启动时,您应该会看到类似以下内容的日志:
如果您看到这些日志,则表示服务器已准备好接受来自 Claude Desktop 的命令。
配置
使用您的 Nile 凭证在根目录中创建一个.env
文件:
要创建 Nile API 密钥,请登录您的Nile 帐户,单击左上角的工作区,选择您的工作区,然后导航到左侧菜单中的安全部分。
与 Claude Desktop 一起使用
设置
如果你还没有安装Claude Desktop
构建项目:
npm run build打开 Claude 桌面
前往“设置”>“MCP 服务器”
点击“添加服务器”
添加以下配置:
代替:
/path/to/your/nile-mcp-server
为您的项目目录的绝对路径your_api_key_here
是您的 Nile API 密钥your_workspace_slug
与您的 Nile 工作区 slug
与游标一起使用
设置
如果尚未安装Cursor ,请安装
构建项目:
npm run build打开游标
前往“设置”(⌘,)>“功能”>“MCP 服务器”
点击“添加新的 MCP 服务器”
配置服务器:
名称:
nile-database
(或您喜欢的任何名称)命令:
env NILE_API_KEY=your_key NILE_WORKSPACE_SLUG=your_workspace node /absolute/path/to/nile-mcp-server/dist/index.js代替:
your_key
是您的 Nile API 密钥your_workspace
与您的 Nile 工作区 slug/absolute/path/to
为项目的实际路径
点击“保存”
您应该会看到一个绿色指示灯,表明 MCP 服务器已连接
重新启动 Cursor 以使更改生效
服务器模式
该服务器支持两种运行模式:
STDIO模式(默认)
默认模式使用标准输入/输出进行通信,使其与 Claude Desktop 和 Cursor 集成兼容。
SSE模式
服务器发送事件 (SSE) 模式支持通过 HTTP 进行实时事件驱动的通信。
要启用 SSE 模式:
在
.env
文件中设置MCP_SERVER_MODE=sse
服务器将启动一个HTTP服务器(默认端口3000)
连接到 SSE 端点:
http://localhost:3000/sse
发送命令至:
http://localhost:3000/messages
使用 curl 的 SSE 示例:
示例提示
在 Cursor 中设置好 MCP 服务器后,您就可以使用自然语言与 Nile 数据库进行交互。以下是一些示例提示:
数据库管理
创建表
查询数据
模式管理
可用工具
该服务器提供了以下与 Nile 数据库交互的工具:
数据库管理
创建数据库
创建一个新的尼罗河数据库
参数:
name
(字符串):数据库的名称region
(字符串):AWS_US_WEST_2
(俄勒冈州)或AWS_EU_CENTRAL_1
(法兰克福)
返回:数据库详细信息,包括 ID、名称、区域和状态
示例:“在 AWS_US_WEST_2 中创建名为‘my-app’的数据库”
列表数据库
列出工作区中的所有数据库
无需参数
返回:数据库列表及其 ID、名称、区域和状态
例如:“列出我的所有数据库”
获取数据库
获取特定数据库的详细信息
参数:
name
(字符串):数据库的名称
返回:详细的数据库信息,包括 API 主机和 DB 主机
示例:“获取数据库‘my-app’的详细信息”
删除数据库
删除数据库
参数:
name
(字符串):要删除的数据库的名称
返回:确认消息
例如:“删除数据库‘my-app’”
凭证管理
列出凭证
列出数据库的所有凭据
参数:
databaseName
(字符串):数据库的名称
返回:包含 ID、用户名和创建日期的凭证列表
示例:“列出数据库‘my-app’的凭据”
创建凭证
为数据库创建新的凭证
参数:
databaseName
(字符串):数据库的名称
返回:新的凭证详细信息,包括用户名和一次性密码
示例:“为数据库‘my-app’创建新的凭据”
注意:显示密码时请保存,因为不会再次显示
区域管理
列出区域
列出所有可用于创建数据库的区域
无需参数
返回:可用 AWS 区域列表
例如:“哪些区域可用于创建数据库?”
SQL查询执行
执行sql
在 Nile 数据库上执行 SQL 查询
参数:
databaseName
(字符串):要查询的数据库的名称query
(字符串):要执行的 SQL 查询connectionString
(字符串,可选):用于查询的预先存在的连接字符串
返回:查询结果格式化为带有列标题和行数的 markdown 表
特征:
自动凭证管理(如果未指定则创建新的)
安全的 SSL 数据库连接
结果格式化为 Markdown 表
带有提示的详细错误消息
支持使用现有的连接字符串
示例:“在数据库‘my-app’上执行 SELECT * FROM users LIMIT 5”
资源管理
读取资源
读取数据库资源(表、视图等)的架构信息
参数:
databaseName
(字符串):数据库的名称resourceName
(字符串):资源的名称(表/视图)
返回:详细的架构信息,包括:
列名和类型
主键和索引
外键关系
列描述和约束
例如:“显示我的应用程序中用户表的架构”
列表资源
列出数据库中的所有资源(表、视图)
参数:
databaseName
(字符串):数据库的名称
返回:所有资源及其类型的列表
例如:“列出 my-app 数据库中的所有表”
租户管理
列出租户
列出数据库中的所有租户
参数:
databaseName
(字符串):数据库的名称
返回:租户列表及其 ID 和元数据
示例:“显示 my-app 数据库中的所有租户”
创建租户
在数据库中创建新租户
参数:
databaseName
(字符串):数据库的名称tenantName
(字符串):新租户的名称
返回:新租户详细信息(包括身份证)
示例:“在 my-app 中创建名为‘acme-corp’的租户”
删除租户
删除数据库中的租户
参数:
databaseName
(字符串):数据库的名称tenantName
(字符串):租户名称
返回:如果租户被删除则成功
示例:“删除 my-app 中名为‘acme-corp’的租户”
示例用法
以下是您可以在 Claude Desktop 中使用的一些示例命令:
响应格式
所有工具都以标准化格式返回响应:
成功响应包括相关数据和确认消息
错误响应包括详细的错误消息和 HTTP 状态代码
SQL 查询结果被格式化为 markdown 表
所有回复均已格式化,方便在 Claude Desktop 中阅读
错误处理
服务器处理各种错误情况:
API 凭证无效
网络连接问题
无效的数据库名称或区域
缺少必需参数
数据库操作失败
SQL 语法错误及有用提示
速率限制和 API 限制
故障排除
如果 Claude 说无法访问工具:
检查配置中的服务器路径是否正确
确保项目已构建(
npm run build
)验证您的 API 密钥和工作区 slug 是否正确
重启Claude桌面
如果数据库创建失败:
检查您的 API 密钥权限
确保数据库名称在您的工作区中是唯一的
验证区域是否是受支持的选项之一
如果凭证操作失败:
验证数据库是否存在并且处于 READY 状态
检查您的 API 密钥是否具有必要的权限
发展
项目结构
关键文件
server.ts
:具有工具注册和传输处理的主服务器实现tools.ts
:实现所有数据库操作和 SQL 查询的执行types.ts
:用于数据库操作和响应的 TypeScript 接口logger.ts
:具有每日轮换和调试支持的结构化日志记录index.ts
:服务器启动和环境配置server.test.ts
:所有功能的综合测试套件
发展
开发脚本
以下 npm 脚本可用:
npm run build
:将 TypeScript 编译为 JavaScriptnpm start
:以生产模式启动服务器npm run dev
:以自动重建的方式启动开发模式的服务器npm test
:运行测试套件npm run lint
:运行 ESLint 进行代码质量检查npm run clean
:删除构建工件
测试
该项目包括一个全面的测试套件,涵盖:
工具注册和模式验证
数据库管理操作
连接字符串生成
SQL查询执行和错误处理
响应格式和错误情况
使用以下命令运行测试:
日志记录
服务器使用具有以下特点的结构化日志记录:
每日轮换日志文件
单独的调试日志
带有时间戳的 JSON 格式日志
用于开发的控制台输出
日志类别:信息、错误、调试、api、sql、启动
执照
MIT 许可证 - 详情请参阅许可证。
相关链接
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
尼罗河数据库的 MCP 服务器 - 使用 LLM 管理和查询数据库、租户、用户、身份验证
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server that provides LLMs access to other LLMsLast updated -1667MIT License
- -securityAlicense-qualityAn MCP server that provides tools to load and fetch documentation from any llms.txt source, giving users full control over context retrieval for LLMs in IDE agents and applications.Last updated -766MIT License
- AsecurityAlicenseAqualityAn MCP server that enables LLMs to interact with Moodle platforms to manage courses, students, assignments, and quizzes through natural language commands.Last updated -718MIT License
- AsecurityAlicenseAqualitymcp-server-couchbaseLast updated -819PythonApache 2.0