Nileデータベースプラットフォーム用のモデルコンテキストプロトコル(MCP)サーバー実装。このサーバーにより、LLMアプリケーションは標準化されたインターフェースを介してNileプラットフォームと対話できるようになります。
特徴
- データベース管理: データベースの作成、一覧表示、詳細の取得、削除
- 資格情報管理: データベース資格情報の作成と一覧表示
- リージョン管理: データベース作成に利用可能なリージョンの一覧
- SQLクエリのサポート:Nileデータベースで直接SQLクエリを実行します。
- MCPプロトコルサポート: モデルコンテキストプロトコルの完全実装
- 型安全性: 完全な型チェックを備えたTypeScriptで記述されています
- エラー処理: 包括的なエラー処理とユーザーフレンドリーなエラーメッセージ
- テスト範囲: Jest を使用した包括的なテストスイート
- 環境管理: .env ファイルからの環境変数の自動読み込み
- 入力検証: Zodを使用したスキーマベースの入力検証
インストール
安定バージョンをインストールします。
最新のアルファ/プレビュー バージョン:
これにより、@niledatabase/nile-mcp-server が node_modules フォルダにインストールされます。例: node_modules/@niledatabase/nile-mcp-server/dist/
手動インストール
その他のmcpパッケージマネージャー
- npx @michaellatman/mcp-get@最新インストール @niledatabase/nile-mcp-server
サーバーの起動
サーバーを起動するにはいくつかの方法があります。
- 直接ノード実行:
- 開発モード(自動再構築付き):
サーバーが起動し、MCPプロトコルメッセージをリッスンします。起動ログに以下の内容が表示されます。
- 環境変数が読み込まれました
- サーバーインスタンスが作成されました
- ツールが初期化されました
- トランスポート接続が確立されました
サーバーを停止するには、 Ctrl+C
を押します。
サーバーが実行中であることを確認する
サーバーが正常に起動すると、次のようなログが表示されます。
これらのログが表示された場合、サーバーは Claude Desktop からのコマンドを受け入れる準備ができています。
構成
Nile の資格情報を使用して、ルート ディレクトリに.env
ファイルを作成します。
Nile API キーを作成するには、 Nile アカウントにログインし、左上の [ワークスペース] をクリックしてワークスペースを選択し、左側のメニューの [セキュリティ] セクションに移動します。
Claude Desktopでの使用
設定
- Claude Desktopをまだインストールしていない場合はインストールしてください
- プロジェクトをビルドします。
- クロードデスクトップを開く
- 設定 > MCPサーバーへ移動
- 「サーバーを追加」をクリックします
- 次の構成を追加します。
交換する:
/path/to/your/nile-mcp-server
プロジェクトディレクトリへの絶対パスで置き換えますyour_api_key_here
に Nile API キーを入力しますyour_workspace_slug
Nile ワークスペースのスラッグに置き換えます
カーソルの使用
設定
- まだインストールしていない場合は、 Cursorをインストールしてください。
- プロジェクトをビルドします。
- オープンカーソル
- 設定 (⌘,) > 機能 > MCP サーバーに移動します。
- 「新しいMCPサーバーを追加」をクリックします
- サーバーを構成します。
- 名前:
nile-database
(または任意の名前) - 指示:交換する:
your_key
を Nile API キーに置き換えますyour_workspace
Nile ワークスペースのスラッグに置き換えます/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 の使用例:
プロンプトの例
CursorでMCPサーバーを設定すると、自然言語を使ってNileデータベースと対話できるようになります。以下にプロンプトの例を示します。
データベース管理
テーブルの作成
データのクエリ
スキーマ管理
利用可能なツール
サーバーは、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 で使用できるコマンドの例を次に示します。
応答フォーマット
すべてのツールは、標準化された形式で応答を返します。
- 成功応答には関連データと確認メッセージが含まれます
- エラー応答には、詳細なエラーメッセージとHTTPステータスコードが含まれます。
- SQLクエリの結果はマークダウンテーブルとしてフォーマットされます
- すべての回答はClaude Desktopで読みやすいようにフォーマットされています
エラー処理
サーバーはさまざまなエラー シナリオを処理します。
- 無効なAPI認証情報
- ネットワーク接続の問題
- 無効なデータベース名またはリージョン
- 必要なパラメータが不足しています
- データベース操作の失敗
- 役立つヒント付きのSQL構文エラー
- レート制限とAPI制限
トラブルシューティング
- Claude がツールにアクセスできないと言った場合:
- 構成内のサーバーパスが正しいことを確認してください
- プロジェクトがビルドされていることを確認する (
npm run build
) - APIキーとワークスペーススラッグが正しいことを確認してください
- Claudeデスクトップを再起動します
- データベースの作成に失敗した場合:
- APIキーの権限を確認する
- データベース名がワークスペース内で一意であることを確認してください
- 地域がサポートされているオプションの1つであることを確認します
- 資格情報の操作が失敗した場合:
- データベースが存在し、READY状態であることを確認します
- APIキーに必要な権限があることを確認してください
発達
プロジェクト構造
キーファイル
server.ts
: ツール登録とトランスポート処理を備えたメインサーバーの実装tools.ts
: すべてのデータベース操作とSQLクエリ実行の実装types.ts
: データベース操作と応答のための TypeScript インターフェースlogger.ts
: 毎日のローテーションとデバッグサポートを備えた構造化ログindex.ts
: サーバーの起動と環境設定server.test.ts
: すべての機能に対する包括的なテストスイート
発達
開発スクリプト
次の npm スクリプトが利用可能です。
npm run build
: TypeScript を JavaScript にコンパイルするnpm 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.
Nile データベース用の MCP サーバー - LLM を使用してデータベース、テナント、ユーザー、認証を管理および照会します
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server that provides LLMs access to other LLMsLast updated -467359JavaScriptMIT 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 -578PythonMIT 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 -714JavaScriptMIT License
- AsecurityAlicenseAqualitymcp-server-couchbaseLast updated -816PythonApache 2.0