🚀 DigitalOcean数据库MCP服务器
本项目可让你仅使用API令牌,就能将支持AI的集成开发环境(IDE)连接到DigitalOcean数据库!它兼容多种流行的IDE和AI工具,如Cursor AI、Claude Desktop、Windsurf等。
🚀 快速开始
本模型上下文协议(MCP)服务器可实现支持AI的开发环境与你的DigitalOcean托管数据库之间的无缝集成。它适用于Cursor AI、Claude Desktop、Windsurf、带有AI扩展的VS Code以及任何其他支持MCP的IDE。你无需手动管理数据库凭证,只需使用DigitalOcean API令牌即可自动发现并连接到你的任何数据库集群。
✨ 主要特性
- 🔑 基于令牌的身份验证 - 使用你的DigitalOcean API令牌,无需管理数据库凭证
- 🔍 自动发现 - 自动列出你所有的数据库集群
- 🎯 按名称连接 - 只需指定集群名称,无需复杂的连接字符串
- 🗄️ 多数据库支持 - 支持PostgreSQL和MySQL集群
- 🔒 安全连接 - 默认启用SSL支持
- 🛠️ 完整的SQL支持 - 执行查询、管理模式、分析数据
- 🔄 连接池 - 通过自动连接管理优化性能
🎯 你可以做的事情
连接后,你可以通过自然语言与数据库进行交互:
- "Show me all my database clusters"
- "Connect to my production database"
- "List all tables and describe the users table"
- "Run this analytics query and explain the results"
- "Create a new table for storing blog posts"
- "Show me the top 10 customers by revenue"
🔧 兼容的IDE和AI工具
📦 安装指南
1. 克隆仓库
git clone https://github.com/oladejibidmus/DigitalOcean-Database-MCP-Server.git
cd digitalocean-database-mcp
2. 安装依赖
npm install
3. 构建项目
npm run build
4. 获取你的DigitalOcean API令牌
- 访问 DigitalOcean API Tokens
- 点击 "Generate New Token"
- 命名为类似 "Cursor Database MCP" 的名称
- 选择 "Read" 权限(或 "Read & Write" 以获得完全访问权限)
- 复制令牌(你只会看到一次!)
5. 配置你的IDE
选择你的开发环境并按照相应的设置进行操作:
🎯 Cursor AI
- 打开Cursor设置:按下
Ctrl+Shift+P
(在Mac上为 Cmd+Shift+P
)并搜索 "Cursor Settings"
- 找到MCP服务器:在侧边栏中查找MCP选项并启用它
- 添加新的MCP服务器:点击 "Add New MCP Server"
- 配置服务器:
- 名称:
digitalocean-database
- 命令:
node
- 参数:
/absolute/path/to/digitalocean-database-mcp/dist/index.js
- 启用:将服务器切换为活动状态(应出现绿色圆点)
或者,在你的项目目录中创建一个 .cursor/mcp.json
文件:
{
"mcpServers": {
"digitalocean-database": {
"command": "node",
"args": ["/absolute/path/to/digitalocean-database-mcp/dist/index.js"]
}
}
}
🤖 Claude Desktop
- 打开Claude Desktop设置:转到设置 → 开发者
- 点击 "Edit Config":这将打开
claude_desktop_config.json
- 添加服务器配置:
{
"mcpServers": {
"digitalocean-database": {
"command": "node",
"args": ["/absolute/path/to/digitalocean-database-mcp/dist/index.js"]
}
}
}
- 保存并重启 Claude Desktop
🌊 Windsurf
- 打开Windsurf设置:点击 "Windsurf - Settings" 按钮(右下角)或按下
Ctrl+Shift+P
并搜索 "Open Windsurf Settings"
- 导航到Cascade:在高级设置中找到 "Cascade" 部分
- 启用MCP:查找 "Model Context Protocol" 选项并启用它
- 点击Cascade工具栏中的锤子图标
- 配置MCP:点击 "Configure" 打开MCP配置文件
- 添加你的服务器:
{
"mcpServers": {
"digitalocean-database": {
"command": "node",
"args": ["/absolute/path/to/digitalocean-database-mcp/dist/index.js"]
}
}
}
- 刷新:点击刷新按钮启动服务器
💻 VS Code
对于GitHub Copilot Agent模式(内置):
- 启用MCP支持:转到设置并启用
chat.mcp.enabled
- 创建MCP配置:在你的工作区中添加一个
.vscode/mcp.json
文件:
{
"servers": {
"digitalocean-database": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/digitalocean-database-mcp/dist/index.js"]
}
}
}
- 使用Agent模式:从聊天模式下拉菜单中选择 "Agent"
对于Continue.dev扩展:
- 从市场安装Continue.dev扩展
- 配置MCP:创建
.continue/mcpServers/digitalocean-db.yaml
:
name: DigitalOcean Database
mcpServer:
version: 0.0.1
schema: v1
mcpServers:
- name: DigitalOcean DB
command: node
args:
- "/absolute/path/to/digitalocean-database-mcp/dist/index.js"
⚡ Zed
- 打开Zed:启动Zed编辑器
- 访问代理面板设置:转到代理面板并点击设置齿轮
- 添加上下文服务器:点击 "Add Context Server" 或手动编辑设置
- 在settings.json中配置:
{
"context_servers": {
"digitalocean-database": {
"source": "custom",
"command": {
"path": "node",
"args": ["/absolute/path/to/digitalocean-database-mcp/dist/index.js"],
"env": {}
}
}
}
}
🔧 通用MCP客户端设置
对于任何其他支持MCP的客户端,使用以下标准参数:
- 传输类型:
stdio
- 命令:
node
- 参数:
["/absolute/path/to/digitalocean-database-mcp/dist/index.js"]
- 工作目录:你的项目目录
- 环境变量:可选的
DO_API_TOKEN
用于预设置身份验证
6. 验证安装
配置完成后:
- 重启你的IDE/编辑器
- 查找MCP指示器:大多数IDE在MCP服务器活动时会显示工具/服务器图标
- 测试连接:尝试说 "Set my DigitalOcean API token" 以验证服务器是否响应
注意:将 /absolute/path/to/digitalocean-database-mcp
替换为你克隆的仓库的实际完整路径。
💻 使用示例
基础用法
步骤1:设置你的API令牌
在你的AI助手(Cursor、Claude Desktop、Windsurf等)中,只需说:
Set my DigitalOcean API token: dop_v1_your_actual_token_here
步骤2:发现你的数据库
Show me all my database clusters
步骤3:连接到数据库
Connect to my database cluster named "production-api"
步骤4:开始查询!
Show me all tables in this database
Execute this query: SELECT COUNT(*) FROM users WHERE created_at > '2024-01-01'
Describe the structure of the orders table
高级用法
基本数据分析
"Connect to my cluster named 'analytics-prod'"
"Show me all tables and describe the events table"
"SELECT DATE(created_at) as date, COUNT(*) as events
FROM events
WHERE created_at >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY DATE(created_at)
ORDER BY date"
模式管理
"List all tables and their row counts"
"CREATE TABLE blog_posts (
id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT,
author_id INTEGER,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)"
"Describe the blog_posts table"
IDE特定的使用提示
Cursor AI
- 使用自然语言进行复杂查询
- 请求在数据库上下文中生成代码
- 请求数据可视化建议
Claude Desktop
- 非常适合数据分析和报告
- 请求解释查询结果
- 请求数据库优化建议
Windsurf
- 非常适合协作数据库工作
- 用于实时查询调试
- 利用AI结对编程进行模式设计
VS Code
- 与现有的数据库工作流程集成
- 与数据库扩展工具一起使用
- 非常适合生成迁移脚本
📋 可用命令
🔐 身份验证和发现
set_api_token
- 设置你的DigitalOcean API令牌
list_database_clusters
- 列出你所有的数据库集群
connect_by_name
- 按名称连接到集群
🗄️ 数据库操作
execute_query
- 运行带有可选参数的SQL查询
list_tables
- 显示数据库中的所有表
describe_table
- 获取详细的表模式
get_database_info
- 获取数据库版本和集群信息
disconnect_database
- 关闭当前连接
🔧 手动连接(可选)
connect_database
- 如果需要,使用手动凭证进行连接
🏗️ 架构
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ AI Assistant │◄──►│ MCP Server │◄──►│ DigitalOcean DB │
│ │ │ │ │ Clusters │
│ • Cursor AI │ │ • API Client │ │ • PostgreSQL │
│ • Claude Desktop│ │ • DB Connectors │ │ • MySQL │
│ • Windsurf │ │ • Query Engine │ │ • SSL Enabled │
│ • VS Code │ │ • Pool Manager │ │ • Auto-scaling │
│ • Any MCP Client│ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
🔒 安全最佳实践
- ✅ API令牌权限 - 尽可能使用只读令牌
- ✅ SSL连接 - 所有连接默认启用SSL
- ✅ 不存储凭证 - 令牌仅在会话期间存储在内存中
- ✅ 连接池 - 自动清理和资源管理
- ✅ 参数绑定 - 预编译语句可防止SQL注入
🔧 技术细节
项目结构
digitalocean-database-mcp/
├── src/
│ └── index.ts # 主要的MCP服务器实现
├── dist/ # 编译后的JavaScript输出
├── package.json # 依赖项和脚本
├── tsconfig.json # TypeScript配置
└── README.md # 本文件
开发脚本
npm run dev
npm run build
npm start
添加新功能
- 分叉仓库
- 创建一个功能分支:
git checkout -b feature/new-feature
- 在
src/index.ts
中进行更改
- 使用你的DigitalOcean数据库进行彻底测试
- 提交拉取请求
🚨 故障排除
连接问题
"Invalid API token"
- 验证你的令牌是否正确且未过期
- 检查令牌是否具有足够的权限
- 确保你使用的是包含
dop_v1_
前缀的完整令牌
"Database cluster not found"
- 运行
list_database_clusters
查看可用的集群
- 检查集群名称的拼写是否正确
- 验证集群是否处于运行状态
"SSL connection failed"
- DigitalOcean要求托管数据库使用SSL
- 服务器会自动处理SSL,但请检查防火墙设置
- 验证你的集群是否允许从你的IP地址进行连接
MCP集成问题
"MCP server not found"
- 检查你在IDE配置中的路径是否为绝对路径且正确
- 验证Node.js是否已安装并可在系统路径中访问
- 尝试手动运行服务器:
node dist/index.js
- 配置更改后重启你的IDE
"Server not responding"
- 确保MCP服务器进程正在运行
- 检查特定于IDE的MCP日志:
- Cursor:检查输出面板中的MCP服务器日志
- Claude Desktop:查看应用程序日志
- Windsurf:检查开发者工具控制台
- VS Code:检查扩展输出面板
"Connection timeout"
- 增加你的数据库设置中的连接超时时间
- 检查你的集群是否过载
- 验证与DigitalOcean的网络连接
🤝 贡献
我们欢迎贡献!请参阅我们的贡献指南:
- 分叉 仓库
- 创建 一个功能分支
- 进行 更改
- 彻底测试
- 提交 拉取请求
开发环境
- Node.js 18+
- TypeScript 5+
- 访问DigitalOcean数据库进行测试
📄 许可证
本项目采用MIT许可证 - 有关详细信息,请参阅 LICENSE 文件。
🙏 致谢
📞 支持
Made with ❤️ for the AI-powered development community
GitHub star badge: https://github.com/oladejibidmus/DigitalOcean-Database-MCP-Server
🌟 Star this repo on GitHub
Works with: 🎯 Cursor AI • 🤖 Claude Desktop • 🌊 Windsurf • 💻 VS Code • ⚡ Zed • 🔧 Any MCP Client