🚀 DigitalOcean Database MCP Server
このプロジェクトは、AI搭載の開発環境とDigitalOceanの管理型データベースをシームレスに統合することができます。APIトークンを使用するだけで、様々なAIツールとIDEからDigitalOceanのデータベースに接続できます。
🚀 クイックスタート
このModel Context Protocol (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 Mode (組み込み):
- 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" を選択します。
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
📋 利用可能なコマンド
🔐 認証と検出
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接続 - すべての接続でデフォルトで有効になっています。
- ✅ 資格情報の保存なし - トークンはセッション中にのみメモリに保存されます。
- ✅ コネクションプーリング - 自動クリーンアップとリソース管理。
- ✅ パラメーターバインディング - プリペアドステートメントにより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がインストールされ、システムのPATHでアクセス可能であることを確認します。
- サーバーを手動で実行してみます:
node dist/index.js
- 構成を変更した後、IDEを再起動します。
"Server not responding"
- MCPサーバープロセスが実行中であることを確認します。
- IDE固有のMCPログを確認します。
- Cursor:出力パネルでMCPサーバーのログを確認します。
- Claude Desktop:アプリケーションログを確認します。
- Windsurf:開発者ツールのコンソールを確認します。
- VS Code:拡張機能の出力パネルを確認します。
接続タイムアウト
- データベース設定で接続タイムアウトを増やします。
- クラスターが過負荷になっていないことを確認します。
- DigitalOceanへのネットワーク接続を確認します。
📚 ドキュメント
基本的なデータ分析
"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
- 既存のデータベースワークフローと統合します。
- データベース拡張ツールと一緒に使用します。
- 移行スクリプトの生成に最適です。
🤝 コントリビューション
コントリビューションを歓迎します!コントリビューションガイドラインを参照してください。
- リポジトリをフォークします。
- 機能ブランチを作成します。
- 変更を加えます。
- 十分にテストします。
- プルリクエストを送信します。
開発環境
- Node.js 18+
- TypeScript 5+
- テスト用のDigitalOceanデータベースへのアクセス
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています - 詳細については LICENSE ファイルを参照してください。
🙏 謝辞
📞 サポート
AI搭載の開発コミュニティのために愛を込めて作られました
GitHub star badge: https://github.com/oladejibidmus/DigitalOcean-Database-MCP-Server
🌟 GitHubでこのリポジトリをスターする
対応するツール: 🎯 Cursor AI • 🤖 Claude Desktop • 🌊 Windsurf • 💻 VS Code • ⚡ Zed • 🔧 Any MCP Client