nile-mcp
OfficialNileデータベースプラットフォーム用のモデルコンテキストプロトコル(MCP)サーバー実装。このサーバーにより、LLMアプリケーションは標準化されたインターフェースを介してNileプラットフォームと対話できるようになります。
特徴
データベース管理: データベースの作成、一覧表示、詳細の取得、削除
資格情報管理: データベース資格情報の作成と一覧表示
リージョン管理: データベース作成に利用可能なリージョンの一覧
SQLクエリのサポート:Nileデータベースで直接SQLクエリを実行します。
MCPプロトコルサポート: モデルコンテキストプロトコルの完全実装
型安全性: 完全な型チェックを備えたTypeScriptで記述されています
エラー処理: 包括的なエラー処理とユーザーフレンドリーなエラーメッセージ
テスト範囲: Jest を使用した包括的なテストスイート
環境管理: .env ファイルからの環境変数の自動読み込み
入力検証: Zodを使用したスキーマベースの入力検証
Related MCP server: mcp-db-server
インストール
安定バージョンをインストールします。
npm install @niledatabase/nile-mcp-server最新のアルファ/プレビュー バージョン:
npm install @niledatabase/nile-mcp-server@alphaこれにより、@niledatabase/nile-mcp-server が node_modules フォルダにインストールされます。例: node_modules/@niledatabase/nile-mcp-server/dist/
手動インストール
# Clone the repository
git clone https://github.com/yourusername/nile-mcp-server.git
cd nile-mcp-server
# Install dependencies
npm install
# Build the project
npm run buildその他のmcpパッケージマネージャー
npx @michaellatman/mcp-get@最新インストール @niledatabase/nile-mcp-server
サーバーの起動
サーバーを起動するにはいくつかの方法があります。
直接ノード実行:
node dist/index.js開発モード(自動再構築付き):
npm run dev
サーバーが起動し、MCPプロトコルメッセージをリッスンします。起動ログに以下の内容が表示されます。
環境変数が読み込まれました
サーバーインスタンスが作成されました
ツールが初期化されました
トランスポート接続が確立されました
サーバーを停止するには、 Ctrl+Cを押します。
サーバーが実行中であることを確認する
サーバーが正常に起動すると、次のようなログが表示されます。
[info] Starting Nile MCP Server...
[info] Loading environment variables...
[info] Environment variables loaded successfully
[info] Creating server instance...
[info] Tools initialized successfully
[info] Setting up stdio transport...
[info] Server started successfullyこれらのログが表示された場合、サーバーは Claude Desktop からのコマンドを受け入れる準備ができています。
構成
Nile の資格情報を使用して、ルート ディレクトリに.envファイルを作成します。
NILE_API_KEY=your_api_key_here
NILE_WORKSPACE_SLUG=your_workspace_slugNile API キーを作成するには、 Nile アカウントにログインし、左上の [ワークスペース] をクリックしてワークスペースを選択し、左側のメニューの [セキュリティ] セクションに移動します。
Claude Desktopでの使用
設定
Claude Desktopをまだインストールしていない場合はインストールしてください
プロジェクトをビルドします。
npm run buildクロードデスクトップを開く
設定 > MCPサーバーへ移動
「サーバーを追加」をクリックします
次の構成を追加します。
{
"mcpServers": {
"nile-database": {
"command": "node",
"args": [
"/path/to/your/nile-mcp-server/dist/index.js"
],
"env": {
"NILE_API_KEY": "your_api_key_here",
"NILE_WORKSPACE_SLUG": "your_workspace_slug"
}
}
}
}交換する:
/path/to/your/nile-mcp-serverプロジェクトディレクトリへの絶対パスで置き換えますyour_api_key_hereに Nile API キーを入力しますyour_workspace_slugNile ワークスペースのスラッグに置き換えます
カーソルの使用
設定
まだインストールしていない場合は、 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_workspaceNile ワークスペースのスラッグに置き換えます/absolute/path/toプロジェクトの実際のパスに置き換えます
「保存」をクリック
MCPサーバーが接続されていることを示す緑色のインジケーターが表示されます。
変更を有効にするにはカーソルを再起動してください
サーバーモード
サーバーは次の 2 つの動作モードをサポートしています。
STDIO モード (デフォルト)
デフォルト モードでは通信に標準入出力が使用されるため、Claude Desktop および Cursor の統合と互換性があります。
SSEモード
Server-Sent Events (SSE) モードでは、HTTP 経由のリアルタイムのイベント駆動型通信が可能になります。
SSE モードを有効にするには:
.envファイルでMCP_SERVER_MODE=sseを設定しますサーバーはHTTPサーバーを起動します(デフォルトポート3000)
SSEエンドポイントに接続します:
http://localhost:3000/sseコマンドの送信先:
http://localhost:3000/messages
curl を使用した SSE の使用例:
# In terminal 1 - Listen for events
curl -N http://localhost:3000/sse
# In terminal 2 - Send commands
curl -X POST http://localhost:3000/messages \
-H "Content-Type: application/json" \
-d '{
"type": "function",
"name": "list-databases",
"parameters": {}
}'プロンプトの例
CursorでMCPサーバーを設定すると、自然言語を使ってNileデータベースと対話できるようになります。以下にプロンプトの例を示します。
データベース管理
Create a new database named "my_app" in AWS_US_WEST_2 region
List all my databases
Get details for database "my_app"
Delete database "test_db"テーブルの作成
Create a users table in my_app database with columns:
- tenant_id (UUID, references tenants)
- id (INTEGER)
- email (VARCHAR, unique per tenant)
- name (VARCHAR)
- created_at (TIMESTAMP)
Create a products table in my_app database with columns:
- tenant_id (UUID, references tenants)
- id (INTEGER)
- name (VARCHAR)
- price (DECIMAL)
- description (TEXT)
- created_at (TIMESTAMP)データのクエリ
Execute this query on my_app database:
SELECT * FROM users WHERE tenant_id = 'your-tenant-id' LIMIT 5
Run this query on my_app:
INSERT INTO users (tenant_id, id, email, name)
VALUES ('tenant-id', 1, 'user@example.com', 'John Doe')
Show me all products in my_app database with price > 100スキーマ管理
Show me the schema for the users table in my_app database
Add a new column 'status' to the users table in my_app database
Create an index on the email column of the users table in my_app利用可能なツール
サーバーは、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(文字列、オプション): クエリに使用する既存の接続文字列
戻り値: 列ヘッダーと行数を含むマークダウンテーブルとしてフォーマットされたクエリ結果
特徴:
自動認証情報管理(指定されていない場合は新規作成)
データベースへの安全なSSL接続
結果はマークダウンテーブルとしてフォーマットされます
ヒント付きの詳細なエラーメッセージ
既存の接続文字列の使用のサポート
例:「データベース 'my-app' で SELECT * FROM users LIMIT 5 を実行する」
リソース管理
リソースの読み取り
データベース リソース (テーブル、ビューなど) のスキーマ情報を読み取ります。
パラメータ:
databaseName(文字列): データベースの名前resourceName(文字列): リソースの名前 (テーブル/ビュー)
返される値: 次の詳細なスキーマ情報:
列名と型
主キーとインデックス
外部キー関係
列の説明と制約
例:「my-app の users テーブルのスキーマを表示してください」
リストリソース
データベース内のすべてのリソース(テーブル、ビュー)を一覧表示します
パラメータ:
databaseName(文字列): データベースの名前
戻り値: すべてのリソースとそのタイプの一覧
例:「my-app データベース内のすべてのテーブルを一覧表示する」
テナント管理
テナントリスト
データベース内のすべてのテナントを一覧表示します
パラメータ:
databaseName(文字列): データベースの名前
戻り値: IDとメタデータを含むテナントのリスト
例:「my-app データベース内のすべてのテナントを表示する」
テナント作成
データベースに新しいテナントを作成します
パラメータ:
databaseName(文字列): データベースの名前tenantName(文字列): 新しいテナントの名前
戻り値: IDを含む新しいテナントの詳細
例:「my-app に 'acme-corp' という名前のテナントを作成する」
テナントの削除
データベース内のテナントを削除します
パラメータ:
databaseName(文字列): データベースの名前tenantName(文字列): テナントの名前
戻り値: テナントが削除された場合は成功
例:「my-app 内の 'acme-corp' というテナントを削除する」
使用例
Claude Desktop で使用できるコマンドの例を次に示します。
# Database Management
Please create a new database named "my-app" in the AWS_US_WEST_2 region.
Can you list all my databases?
Get the details for database "my-app".
Delete the database named "test-db".
# Connection String Management
Get a connection string for database "my-app".
# Connection string format: postgres://<user>:<password>@<region>.db.thenile.dev:5432/<database>
# Example: postgres://cred-123:password@us-west-2.db.thenile.dev:5432/my-app
# SQL Queries
Execute SELECT * FROM users LIMIT 5 on database "my-app"
Run this query on my-app database: SELECT COUNT(*) FROM orders WHERE status = 'completed'
Using connection string "postgres://user:pass@host:5432/db", execute this query on my-app: SELECT * FROM products WHERE price > 100応答フォーマット
すべてのツールは、標準化された形式で応答を返します。
成功応答には関連データと確認メッセージが含まれます
エラー応答には、詳細なエラーメッセージとHTTPステータスコードが含まれます。
SQLクエリの結果はマークダウンテーブルとしてフォーマットされます
すべての回答はClaude Desktopで読みやすいようにフォーマットされています
エラー処理
サーバーはさまざまなエラー シナリオを処理します。
無効なAPI認証情報
ネットワーク接続の問題
無効なデータベース名またはリージョン
必要なパラメータが不足しています
データベース操作の失敗
役立つヒント付きのSQL構文エラー
レート制限とAPI制限
トラブルシューティング
Claude がツールにアクセスできないと言った場合:
構成内のサーバーパスが正しいことを確認してください
プロジェクトがビルドされていることを確認する (
npm run build)APIキーとワークスペーススラッグが正しいことを確認してください
Claudeデスクトップを再起動します
データベースの作成に失敗した場合:
APIキーの権限を確認する
データベース名がワークスペース内で一意であることを確認してください
地域がサポートされているオプションの1つであることを確認します
資格情報の操作が失敗した場合:
データベースが存在し、READY状態であることを確認します
APIキーに必要な権限があることを確認してください
発達
プロジェクト構造
nile-mcp-server/
├── src/
│ ├── server.ts # MCP server implementation
│ ├── tools.ts # Tool implementations
│ ├── types.ts # Type definitions
│ ├── logger.ts # Logging utilities
│ ├── index.ts # Entry point
│ └── __tests__/ # Test files
│ └── server.test.ts
├── dist/ # Compiled JavaScript
├── logs/ # Log files directory
├── .env # Environment configuration
├── .gitignore # Git ignore file
├── package.json # Project dependencies
└── tsconfig.json # TypeScript configurationキーファイル
server.ts: ツール登録とトランスポート処理を備えたメインサーバーの実装tools.ts: すべてのデータベース操作とSQLクエリ実行の実装types.ts: データベース操作と応答のための TypeScript インターフェースlogger.ts: 毎日のローテーションとデバッグサポートを備えた構造化ログindex.ts: サーバーの起動と環境設定server.test.ts: すべての機能に対する包括的なテストスイート
発達
# Install dependencies
npm install
# Build the project
npm run build
# Start the server in production mode
node dist/index.js
# Start the server using npm script
npm start
# Start in development mode with auto-rebuild
npm run dev
# Run tests
npm test開発スクリプト
次の npm スクリプトが利用可能です。
npm run build: TypeScript を JavaScript にコンパイルするnpm start: サーバーを本番モードで起動しますnpm run dev: 自動再構築付きの開発モードでサーバーを起動しますnpm test: テストスイートを実行するnpm run lint: コード品質チェックのために ESLint を実行するnpm run clean: ビルド成果物を削除する
テスト
このプロジェクトには、以下をカバーする包括的なテスト スイートが含まれています。
ツールの登録とスキーマの検証
データベース管理操作
接続文字列の生成
SQLクエリの実行とエラー処理
レスポンスのフォーマットとエラーケース
次のようにテストを実行します。
npm testログ記録
サーバーは、次の機能を備えた構造化ログを使用します。
毎日ローテーションするログファイル
個別のデバッグログ
タイムスタンプ付きのJSON形式のログ
開発用コンソール出力
ログ カテゴリ: 情報、エラー、デバッグ、API、SQL、スタートアップ
ライセンス
MIT ライセンス - 詳細についてはライセンスを参照してください。
関連リンク
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
- SupabaseOAuthcom.supabase
MCP server for interacting with the Supabase platform
Butterbase MCP server — manage your backend: schemas, auth, functions, storage, RAG, deploys.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP-Server from your Database optimized for LLMs and AI-Agents. Supports PostgreSQL, MySQL, ClickHouse, Snowflake, MSSQL, BigQuery, Oracle Database, SQLite, ElasticSearch, DuckDB547Apache 2.0
- FlicenseNot gradedqualityBmaintenanceAn MCP server that exposes relational databases (PostgreSQL/MySQL) to AI agents with natural language to SQL query support.19-
- AlicenseNot gradedqualityDmaintenanceA unified MCP server for querying and managing multiple database types (PostgreSQL, MySQL, SQL Server, etc.) via natural language through AI assistants.GPL 3.0
- AlicenseNot gradedqualityDmaintenanceAn MCP server that integrates Turso databases with LLMs, supporting organization and database-level operations with two-level authentication.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/niledatabase/nile-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server