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.
Integrations
Allows querying and interacting with SingleStore databases, including listing tables, executing SQL queries, getting table information, generating ER diagrams, and optimizing SQL queries
シングルストア MCP サーバー
SingleStoreデータベースと連携するためのモデルコンテキストプロトコル(MCP)サーバー。このサーバーは、テーブルのクエリ、スキーマの記述、ERダイアグラムの生成のためのツールを提供します。
特徴
- データベース内のすべてのテーブルを一覧表示する
- カスタムSQLクエリを実行する
- スキーマやサンプルデータを含む詳細なテーブル情報を取得します
- データベーススキーマの Mermaid ER 図を生成する
- 自動 CA バンドル取得による SSL サポート
- 適切なエラー処理とTypeScriptの型安全性
前提条件
- Node.js 16以上
- npmまたはyarn
- SingleStoreデータベースへのアクセス
- SingleStore CA バンドル (ポータルから自動的に取得)
インストール
Smithery経由でインストール
Smithery経由で Claude Desktop 用の SingleStore MCP Server を自動的にインストールするには:
- リポジトリをクローンします。
- 依存関係をインストールします:
- サーバーを構築します。
環境変数
必要な環境変数
サーバーは、データベース接続に次の環境変数を必要とします。
これらの環境変数はすべて、サーバーがSingleStoreデータベースへの接続を確立するために必要です。接続には、SingleStoreポータルから自動的に取得されるSingleStore CAバンドルを使用したSSLが使用されます。
オプションの環境変数
SSE (Server-Sent Events) プロトコルのサポート:
環境変数の設定
- シェルの場合: サーバーを実行する前にターミナルで変数を設定します。Copy
- クライアント構成ファイル: 以下の統合セクションに示すように、MCP クライアント構成ファイルに変数を追加します。
使用法
プロトコルサポート
このサーバーは、クライアント統合用の 2 つのプロトコルをサポートしています。
- MCP プロトコル: Claude Desktop、Windsurf、および Cursor で使用される、stdio 通信を使用する標準モデル コンテキスト プロトコル。
- SSE プロトコル: リアルタイムのデータ ストリーミングを必要とする Web ベースのクライアントおよびアプリケーション用の、HTTP 経由のサーバー送信イベント。
どちらのプロトコルも同じツールと機能を公開しているため、ユースケースに最適な統合方法を選択できます。
利用可能なツール
- リストテーブル
- データベース内のすべてのテーブルを一覧表示します
- パラメータ不要 GXP8
- クエリテーブル
- カスタムSQLクエリを実行する
- パラメータ:
- クエリ: SQLクエリ文字列 GXP9
- テーブルの説明
- テーブルに関する詳細情報を取得します
- パラメータ:
- テーブル: テーブル名 GXP10
- 図を生成する
- データベーススキーマのMermaid ER図を生成します
- パラメータ不要 GXP11
- 実行読み取りクエリ
- データベースに対して読み取り専用(SELECT)クエリを実行します。
- パラメータ:
- クエリ: GXP12を実行するためのSQL SELECTクエリ
- テーブル作成
- 指定された列と制約を持つデータベースに新しいテーブルを作成します
- パラメータ:
- table_name: 作成するテーブルの名前
- columns: 列定義の配列
- table_options: オプションのテーブル構成 GXP13
- 合成データを生成する
- 合成データを生成し、既存のテーブルに挿入する
- パラメータ:
- テーブル: データを挿入するテーブルの名前
- count: 生成する行数(デフォルト: 100)
- column_generators: 特定の列用のカスタムジェネレーター
- バッチサイズ: 各バッチに挿入する行数(デフォルト: 1000)GXP14
- 最適化SQL
- PROFILE を使用して SQL クエリを分析し、最適化の推奨事項を提供します
- パラメータ:
- クエリ: GXP15 を分析および最適化するための SQL クエリ
- 応答には次のものが含まれます。
- 元のクエリ
- パフォーマンス プロファイルの概要 (合計実行時間、コンパイル時間、実行時間)
- 検出されたボトルネックのリスト
- 影響レベル(高/中/低)による最適化の推奨事項
- インデックス、結合、メモリ使用量、その他の最適化に関する提案
スタンドアロン実行
- サーバーを構築します。
- MCP プロトコルのみでサーバーを実行します。
- MCP プロトコルと SSE プロトコルの両方を使用してサーバーを実行します。
SSEプロトコルの使用
SSE が有効になっている場合、サーバーは次の HTTP エンドポイントを公開します。
- ルートエンドポイントサーバー情報と利用可能なエンドポイントを返します。Copy
- 健康チェックサーバーのステータス情報を返します。Copy
- SSE接続リアルタイム更新のために Server-Sent Events 接続を確立します。Copy
- リストツールMCPCopy
list_tools
機能と同じように、使用可能なすべてのツールのリストを返します。MCP Inspector との互換性のために POST リクエストもサポートします。Copy - 通話ツール指定された引数を使用してツールを実行します。Copy
client_id
が指定されている場合、応答はその SSE クライアントにストリーミングされます。client_id
を省略すると、応答は HTTP 応答で直接返されます。
MCP Inspector との互換性のために標準の MCP 形式もサポートしています。
Copy
SSEイベントの種類
SSE 接続を使用する場合、サーバーは次のイベント タイプを送信します。
- メッセージ(名前のないイベント): SSE 接続が正常に確立されたときに送信されます。
- open : 追加の接続確立イベント。
- メッセージ: ツールの開始、結果、エラー イベントを含むすべての MCP プロトコル メッセージに使用されます。
すべてのイベントは、MCPプロトコルで使用されるJSON-RPC 2.0形式に準拠しています。システムは、MCPインスペクタおよびほとんどのSSEクライアントライブラリとの互換性を確保するために、標準のmessage
イベントタイプを使用しています。
JavaScriptクライアントの例
MCP Inspectorと併用
MCP Inspectorは、MCPサーバーのテストとデバッグのためのブラウザベースのツールです。このサーバーで使用するには、以下の手順に従ってください。
- 1 つのコマンドでサーバーと MCP インスペクターの両方を起動します。または、次のコマンドでサーバーのみを起動します。CopyCopy
- MCP Inspector を個別にインストールして実行するには:インスペクターはデフォルトのブラウザで開きます。Copy
- MCP インスペクターが開いたら:a. 接続フィールドにURLを入力します。注: 実際のポートは設定によって異なる場合があります。実際に使用されているポートについては、サーバーの起動ログを確認してください。サーバーは次のように出力します。Copyb. トランスポートタイプとして「SSE」が選択されていることを確認します。c. 「接続」をクリックするCopy
- 接続の問題が発生した場合は、次の代替案を試してください。a. 特定のエンドポイントに接続してみます。b. マシンの実際の IP アドレスを使用してみます。Copyc. Dockerで実行している場合:CopyCopy
- 接続の問題のデバッグ:a. ブラウザでhttp://localhost:8081にアクセスして、サーバーが動作していることを確認します。b. サーバーログで接続試行を確認するc. サーバーとインスペクターの両方を再起動してみてくださいd. 他のサービスがポート8081を使用していないことを確認するe. 提供されたスクリプトを使用して SSE 接続をテストします。または、curl を使用して手動で実行します。Copyf. ファイアウォールの設定でポート8081への接続が許可されていることを確認します。Copy
- 接続すると、インスペクターに利用可能なすべてのツールが表示され、インタラクティブにテストできるようになります。
⚠️注意: MCP インスペクターを使用する場合は、 http://
プレフィックスを含む完全な URL を使用する必要があります。
MCPクライアント統合
Claude Desktopへのインストール
- 次の場所にある Claude Desktop 構成ファイルにサーバー構成を追加します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
SSE_ENABLED および SSE_PORT 変数はオプションです。標準の MCP プロトコルに加えて、SSE サポート付きの HTTP サーバーを有効にする場合は、これらの変数を含めてください。
- Claudeデスクトップアプリを再起動します
- Claude との会話では、SingleStore MCP サーバーを次のように使用できるようになりました。
Windsurfへのインストール
- 次の場所にある Windsurf 構成ファイルにサーバー構成を追加します。
- macOS:
~/Library/Application Support/Windsurf/config.json
- Windows:
%APPDATA%\Windsurf\config.json
- macOS:
SSE_ENABLED および SSE_PORT 変数はオプションですが、SSE HTTP サーバーを通じて追加機能を有効にします。
- ウィンドサーフィンを再開
- Windsurf での Claude との会話では、Claude がデータベース情報にアクセスする必要があるときに、SingleStore MCP ツールが自動的に使用できるようになります。
カーソルへのインストール
- カーソル設定にサーバー構成を追加します。
- オープンカーソル
- 設定(歯車アイコン)>拡張機能>Claude AI>MCPサーバーに移動します
- 次の構成で新しい MCP サーバーを追加します。
SSE_ENABLED および SSE_PORT 変数により、Web アプリケーションは HTTP 経由でサーバーに接続し、Server-Sent Events を通じてリアルタイムの更新を受信できるようになります。
- カーソルを再開
- Cursor 内で Claude AI を使用する場合、データベース操作に SingleStore MCP ツールが使用できるようになります。
セキュリティに関する考慮事項
- バージョン管理に資格情報をコミットしない
- 環境変数または安全な構成管理を使用する
- 実稼働環境での接続プーリングメカニズムの使用を検討する
- SingleStore で適切なアクセス制御とユーザー権限を実装する
- SingleStore CAバンドルを最新の状態に保つ
発達
プロジェクト構造
建物
テスト
トラブルシューティング
- 接続の問題
- 環境変数の資格情報とホスト情報を確認する
- SSL設定を確認する
- ネットワークからデータベースにアクセスできることを確認する
- ファイアウォールの設定を確認し、SingleStore データベースへの送信接続を許可してください。
- ビルドの問題
- node_modulesをクリアして依存関係を再インストールする
- TypeScriptの設定を確認する
- Node.js バージョンの互換性を確認します (16 以上である必要があります)
- MCP統合の問題
- クライアント構成でサーバーのbuild/index.jsファイルへのパスが正しいことを確認します。
- クライアント構成ですべての環境変数が適切に設定されていることを確認します
- 構成を変更した後、クライアントアプリケーションを再起動します。
- クライアントログでMCPサーバーに関連するエラーメッセージを確認します。
- まずサーバーをスタンドアロンで実行して、クライアントの外で動作するか確認します。
貢献
- リポジトリをフォークする
- 機能ブランチを作成する
- 変更をコミットする
- ブランチにプッシュする
- プルリクエストを作成する
ライセンス
MITライセンス - 詳細はLICENSEファイルを参照
You must be authenticated.
Tools
SingleStore データベースと対話するためのサーバー。安全な SSL サポートと TypeScript の安全性により、テーブル クエリ、スキーマ記述、ER 図生成が可能になります。
- Features
- Prerequisites
- Installation
- Environment Variables
- Usage
- MCP Client Integration
- Security Considerations
- Development
- Troubleshooting
- Contributing
- License