Digitalocean Database Mcp Server

Digitalocean Database Mcp Server

🚀 DigitalOcean数据库MCP服务器

本项目可让你仅使用API令牌,就能将支持AI的集成开发环境(IDE)连接到DigitalOcean数据库!它兼容多种流行的IDE和AI工具,如Cursor AI、Claude Desktop、Windsurf等。

🚀 快速开始

本模型上下文协议(MCP)服务器可实现支持AI的开发环境与你的DigitalOcean托管数据库之间的无缝集成。它适用于Cursor AIClaude DesktopWindsurf带有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工具

  • Cursor AI - 以AI为先的代码编辑器
  • Claude Desktop - Anthropic的支持MCP的桌面应用
  • Windsurf - Codeium开发的支持AI的IDE
  • VS Code - 搭配AI扩展使用
  • Zed - 支持AI助手的高性能编辑器
  • Neovim - 搭配支持MCP的AI插件使用
  • 任何支持MCP的IDE

📦 安装指南

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令牌

  1. 访问 DigitalOcean API Tokens
  2. 点击 "Generate New Token"
  3. 命名为类似 "Cursor Database MCP" 的名称
  4. 选择 "Read" 权限(或 "Read & Write" 以获得完全访问权限)
  5. 复制令牌(你只会看到一次!)

5. 配置你的IDE

选择你的开发环境并按照相应的设置进行操作:

🎯 Cursor AI

  1. 打开Cursor设置:按下 Ctrl+Shift+P(在Mac上为 Cmd+Shift+P)并搜索 "Cursor Settings"
  2. 找到MCP服务器:在侧边栏中查找MCP选项并启用它
  3. 添加新的MCP服务器:点击 "Add New MCP Server"
  4. 配置服务器
    • 名称digitalocean-database
    • 命令node
    • 参数/absolute/path/to/digitalocean-database-mcp/dist/index.js
  5. 启用:将服务器切换为活动状态(应出现绿色圆点)

或者,在你的项目目录中创建一个 .cursor/mcp.json 文件:

{
"mcpServers": {
"digitalocean-database": {
"command": "node",
"args": ["/absolute/path/to/digitalocean-database-mcp/dist/index.js"]
}
}
}

🤖 Claude Desktop

  1. 打开Claude Desktop设置:转到设置 → 开发者
  2. 点击 "Edit Config":这将打开 claude_desktop_config.json
  3. 添加服务器配置
{
"mcpServers": {
"digitalocean-database": {
"command": "node",
"args": ["/absolute/path/to/digitalocean-database-mcp/dist/index.js"]
}
}
}
  1. 保存并重启 Claude Desktop

🌊 Windsurf

  1. 打开Windsurf设置:点击 "Windsurf - Settings" 按钮(右下角)或按下 Ctrl+Shift+P 并搜索 "Open Windsurf Settings"
  2. 导航到Cascade:在高级设置中找到 "Cascade" 部分
  3. 启用MCP:查找 "Model Context Protocol" 选项并启用它
  4. 点击Cascade工具栏中的锤子图标
  5. 配置MCP:点击 "Configure" 打开MCP配置文件
  6. 添加你的服务器
{
"mcpServers": {
"digitalocean-database": {
"command": "node",
"args": ["/absolute/path/to/digitalocean-database-mcp/dist/index.js"]
}
}
}
  1. 刷新:点击刷新按钮启动服务器

💻 VS Code

对于GitHub Copilot Agent模式(内置)

  1. 启用MCP支持:转到设置并启用 chat.mcp.enabled
  2. 创建MCP配置:在你的工作区中添加一个 .vscode/mcp.json 文件:
{
"servers": {
"digitalocean-database": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/digitalocean-database-mcp/dist/index.js"]
}
}
}
  1. 使用Agent模式:从聊天模式下拉菜单中选择 "Agent"

对于Continue.dev扩展

  1. 从市场安装Continue.dev扩展
  2. 配置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

  1. 打开Zed:启动Zed编辑器
  2. 访问代理面板设置:转到代理面板并点击设置齿轮
  3. 添加上下文服务器:点击 "Add Context Server" 或手动编辑设置
  4. 在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. 验证安装

配置完成后:

  1. 重启你的IDE/编辑器
  2. 查找MCP指示器:大多数IDE在MCP服务器活动时会显示工具/服务器图标
  3. 测试连接:尝试说 "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 your analytics database
"Connect to my cluster named 'analytics-prod'"

// Explore the data
"Show me all tables and describe the events table"

// Run analysis
"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"

模式管理

// Check current schema
"List all tables and their row counts"

// Create new table
"CREATE TABLE blog_posts (
id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT,
author_id INTEGER,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)"

// Verify creation
"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

添加新功能

  1. 分叉仓库
  2. 创建一个功能分支:git checkout -b feature/new-feature
  3. src/index.ts 中进行更改
  4. 使用你的DigitalOcean数据库进行彻底测试
  5. 提交拉取请求

🚨 故障排除

连接问题

"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的网络连接

🤝 贡献

我们欢迎贡献!请参阅我们的贡献指南:

  1. 分叉 仓库
  2. 创建 一个功能分支
  3. 进行 更改
  4. 彻底测试
  5. 提交 拉取请求

开发环境

  • 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

  • 0 关注
  • 0 收藏,10 浏览
  • system 提出于 2025-09-24 20:27

相似服务问题