SingleStore MCP Server について
SingleStore MCP Server は、SingleStore Management API と関連サービスを操作する MCP サーバーです。uvx でインストールし、ブラウザーでの OAuth 認証により起動できるため、複数の MCP クライアントで利用できます。
主な機能
- 01ユーザー、組織、ワークスペースグループ、ワークスペースの情報取得
- 02スターターワークスペースの作成、再開、終了
- 03接続済みワークスペースでの SQL 実行
- 04ノートブックファイルと定期ジョブの管理
- 05Stage デプロイメントのファイルとフォルダーの操作
活用シーン
- 01自然言語で SingleStore ワークスペースの状態を確認
- 02MCP クライアントから SQL を実行して結果を確認
- 03Stage ファイルとノートブックジョブの管理
MCP 対応
このプロジェクトは MCP サーバーとして、Claude Desktop、Claude Code、Cursor などの MCP クライアントに SingleStore の管理・データ操作ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SingleStore MCP Server
Model Context Protocol(MCP)は、LLM(大規模言語モデル)と外部システム間のコンテキストを管理するために設計された標準プロトコルです。このリポジトリでは、Singlestore 用のインストーラーと MCP サーバーを提供し、シームレスな統合を実現します。
MCP を使うと、Claude Desktop、Claude Code、Cursor、または互換性のある MCP クライアントを通じて、自然言語で SingleStore を操作できるため、複雑な操作を簡単に実行できます。
💡 プロのヒント:MCP サーバーで何ができるか分からない場合は、チャットで /help プロンプトを呼び出してください。
要件
- Python >= v3.10.0
- Python 環境に uvx がインストールされていること
- VS Code、Cursor、Windsurf、Claude Desktop、Claude Code、Goose、またはその他の MCP クライアント
はじめに
はじめに
まず、お使いのクライアントに SingleStore MCP サーバーをインストールします。
標準設定は、ほとんどのツールで使用できます。
{
"mcpServers": {
"singlestore-mcp-server": {
"command": "uvx",
"args": [
"singlestore-mcp-server",
"start"
]
}
}
}
API キー、トークン、環境変数は必要ありません! サーバーの起動時に、ブラウザー OAuth によって認証が自動的に処理されます。
Claude Desktop
自動セットアップ:
uvx singlestore-mcp-server init --client=claude-desktop
手動セットアップ: MCP インストールガイドに従い、上記の標準設定を使用してください。
Claude Code
自動セットアップ:
uvx singlestore-mcp-server init --client=claude-code
Claude CLI コマンドが自動的に実行されます。
手動セットアップ:
claude mcp add singlestore-mcp-server uvx singlestore-mcp-server start
Cursor
自動セットアップ:
uvx singlestore-mcp-server init --client=cursor
手動セットアップ:
Cursor Settings -> MCP -> Add new MCP Server に移動します。任意の名前を付け、種類に command を選択し、コマンドに uvx singlestore-mcp-server start を指定します。Edit をクリックして、設定の確認やコマンドライン引数の追加もできます。
VS Code
自動セットアップ:
uvx singlestore-mcp-server init --client=vscode
手動セットアップ: MCP インストールガイドに従い、上記の標準設定を使用してください。VS Code CLI を使ってインストールすることもできます。
code --add-mcp '{"name":"singlestore-mcp-server","command":"uvx","args":["singlestore-mcp-server","start"]}'
インストール後、VS Code の GitHub Copilot エージェントで SingleStore MCP サーバーを使用できるようになります。
Windsurf
自動セットアップ:
uvx singlestore-mcp-server init --client=windsurf
手動セットアップ: Windsurf MCP のドキュメントに従ってください。上記の標準設定を使用します。
Gemini CLI
自動セットアップ:
uvx singlestore-mcp-server init --client=gemini
手動セットアップ: MCP インストールガイドに従い、上記の標準設定を使用してください。
LM Studio
自動セットアップ:
uvx singlestore-mcp-server init --client=lm-studio
手動セットアップ:
右側のサイドバーで Program -> Install -> Edit mcp.json に移動します。上記の標準設定を使用してください。
Goose
手動セットアップのみ:
Advanced settings -> Extensions -> Add custom extension に移動します。任意の名前を付け、種類に STDIO を選択し、command に uvx singlestore-mcp-server start を設定します。「Add Extension」をクリックします。
Qodo Gen
VSCode または IntelliJ で Qodo Gen のチャットパネルを開き、Connect more tools → + Add new MCP → 上記の標準設定を貼り付けます。
Save をクリックします。
注記: Docker を使用する場合は API キーが必要です。Docker コンテナ内で実行されるサーバーでは OAuth フローがサポートされていないためです。
{
"mcpServers": {
"singlestore-mcp-server": {
"command": "docker",
"args": [
"run", "-i", "--rm", "--init", "--pull=always",
"-e", "MCP_API_KEY=your_api_key_here",
"singlestore/mcp-server-singlestore"
]
}
}
}
Docker イメージは自分でビルドできます。
docker build -t singlestore/mcp-server-singlestore .
セキュリティを強化するため、Docker Desktop を使用して SingleStore MCP サーバーを構成することをおすすめします。Docker の新しい MCP Catalog の詳細については、こちらのブログ記事をご覧ください。
コンポーネント
ツール
サーバーには次のツールが実装されています。
-
get_user_info:現在のユーザーの詳細を取得します
- 引数は不要です
- ユーザー情報と詳細を返します
-
organization_info:ユーザーの現在の組織の詳細を取得します
- 引数は不要です
- 組織の詳細を返します
-
choose_organization:利用可能な組織から選択します(API キーの環境変数が設定されていない場合のみ利用できます)
- 引数は不要です
- 選択可能な組織の一覧を返します
-
set_organization:アクティブな組織を設定します(API キーの環境変数が設定されていない場合のみ利用できます)
- 引数:
organization_id(文字列) - 指定した組織をアクティブに設定します
- 引数:
-
workspace_groups_info:ユーザーがアクセスできるワークスペースグループの詳細を取得します
- 引数は不要です
- ワークスペースグループの詳細を返します
-
workspaces_info:指定したワークスペースグループ内のワークスペースの詳細を取得します
- 引数:
workspace_group_id(文字列) - ワークスペースの詳細を返します
- 引数:
-
resume_workspace:一時停止中のワークスペースを再開します
- 引数:
workspace_id(文字列) - 指定したワークスペースを再開します
- 引数:
-
list_starter_workspaces:ユーザーがアクセスできるすべてのスターターワークスペースを一覧表示します
- 引数は不要です
- 利用可能なスターターワークスペースの詳細を返します
-
create_starter_workspace:新しいスターターワークスペースを作成します
- 引数:ワークスペースの構成パラメーター
- 作成したスターターワークスペースの詳細を返します
-
terminate_starter_workspace:既存のスターターワークスペースを終了します
- 引数:
workspace_id(文字列) - 指定したスターターワークスペースを終了します
- 引数:
-
list_regions:ワークスペースをサポートするすべてのリージョンの一覧を取得します
- 引数は不要です
- 利用可能なリージョンの一覧を返します
-
list_sharedtier_regions:共有ティアのリージョンの一覧を取得します
- 引数は不要です
- 共有ティアのリージョンの一覧を返します
-
run_sql:接続済みのワークスペースで SQL 操作を実行します
- 引数:
workspace_id、database、sql_query、および接続パラメーター - SQL クエリの結果を構造化形式で返します
- 引数:
-
create_notebook_file:SingleStore Spaces に新しいノートブックファイルを作成します
- 引数:
notebook_name、content(任意) - 作成したノートブックの詳細を返します
- 引数:
-
upload_notebook_file:ノートブックファイルを SingleStore Spaces にアップロードします
- 引数:
file_path、notebook_name - アップロードしたノートブックの詳細を返します
- 引数:
-
create_job_from_notebook:ノートブックからスケジュール済みジョブを作成します
- 引数:
notebook_path、schedule_modeなどを含むジョブ構成 - 作成したジョブの詳細を返します
- 引数:
-
get_job:既存のジョブの詳細を取得します
- 引数:
job_id(文字列) - 指定したジョブの詳細を返します
- 引数:
-
delete_job:既存のジョブを削除します
- 引数:
job_id(文字列) - 指定したジョブを削除します
- 引数:
-
stage_list_files:Stage デプロイメントのファイルシステム内のファイルとフォルダーを一覧表示します
- 引数:
deployment_id(文字列)、path(文字列、任意) - ファイルとサブフォルダーを含むフォルダーの内容を返します
- 引数:
-
stage_get_file:パスを指定して Stage からファイルを取得します
- 引数:
deployment_id(文字列)、path(文字列)、return_type(文字列:'metadata'、'url'、または 'content') - ファイルのメタデータ、ダウンロード URL、またはテキストコンテンツを返します
- 引数:
-
stage_create_folder:Stage にフォルダーを作成します
- 引数:
deployment_id(文字列)、path(文字列) - 作成ステータスを返します
- 引数:
-
stage_upload_file:テキストコンテンツを含むファイルを Stage にアップロードします
- 引数:
deployment_id(文字列)、path(文字列)、content(文字列)、local_path(文字列) - アップロードステータスを返します
- 引数:
-
stage_move:Stage 内のファイルまたはフォルダーを移動または名前変更します
- 引数:
deployment_id(文字列)、source_path(文字列)、destination_path(文字列) - 移動ステータスを返します
- 引数:
-
stage_delete:Stage からファイルまたはフォルダーを削除します
- 引数:
deployment_id(文字列)、path(文字列) - 削除ステータスを返します
- 引数:
注:組織管理ツール(choose_organization および set_organization)は、API キーの環境変数が設定されていない場合にのみ利用できます。これにより、OAuth 認証中に組織を対話形式で選択できます。
開発
前提条件
- Python >= 3.11
- 依存関係の管理用の uv
セットアップ
- リポジトリをクローンします:
git clone https://github.com/singlestore-labs/mcp-server-singlestore.git
cd mcp-server-singlestore
- 依存関係をインストールします:
uv sync --dev
- pre-commit フックを設定します(任意ですが、推奨):
uv run pre-commit install
開発ワークフロー
# Quick quality checks (fast feedback)
./scripts/check.sh
# Run tests independently
./scripts/test.sh
# Comprehensive validation (before PRs)
./scripts/check-all.sh
# Create and publish releases
./scripts/release.sh
テストの実行
# Run test suite with coverage
./scripts/test.sh
# Or use pytest directly
uv run pytest
uv run pytest --cov=src --cov-report=html
コード品質
リンティングとフォーマットの両方に Ruff を使用します:
# Format code
uv run ruff format src/ tests/
# Lint code
uv run ruff check src/ tests/
# Lint and fix issues automatically
uv run ruff check --fix src/ tests/
リリースプロセス
リリースは Git タグと PyPI への自動公開によって管理されます:
- リリースの作成:
./scripts/release.sh(対話型ツール) - 自動公開:バージョンタグのプッシュによって実行されます
- PyPI への手動アップロードは不要 — パイプラインですべて自動化されています
詳細なワークフローについては、scripts/dev-workflow.md を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。