SingleStore MCP Server

公式

SingleStoreデータベースプラットフォームを操作する

ドキュメント

SingleStore MCP Server

MIT Licence PyPI Downloads

[Model Context Protocol]((https://modelcontextprotocol.io/introduction) (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 を使用し、commanduvx singlestore-mcp-server start に設定します。「Add Extension」をクリックします。

Qodo Gen

手動セットアップのみ: VSCode または IntelliJ で Qodo Gen チャットパネルを開く → その他のツールを接続 → + 新しい MCP を追加 → 上記の標準設定を貼り付けます。

保存 をクリックします。

Docker の使用

注意: Docker コンテナで実行されるサーバーでは OAuth フローがサポートされないため、Docker を使用する場合は API キーが必要です。

{
  "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 カタログの詳細については、このブログ記事 を参照してください。

コンポーネント

ツール

サーバーは以下のツールを実装しています:

  • 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_iddatabasesql_query、および接続パラメータ
    • SQL クエリの結果を構造化された形式で返します
  • create_notebook_file: SingleStore Spaces に新しいノートブックファイルを作成します

    • 引数: notebook_namecontent (オプション)
    • 作成されたノートブックの詳細を返します
  • upload_notebook_file: SingleStore Spaces にノートブックファイルをアップロードします

    • 引数: file_pathnotebook_name
    • アップロードされたノートブックの詳細を返します
  • create_job_from_notebook: ノートブックからスケジュールジョブを作成します

    • 引数: notebook_pathschedule_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

セットアップ

  1. リポジトリをクローンします:
git clone https://github.com/singlestore-labs/mcp-server-singlestore.git
cd mcp-server-singlestore
  1. 依存関係をインストールします:
uv sync --dev
  1. 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 公開を通じて管理されます:

  1. リリースの作成: ./scripts/release.sh (インタラクティブツール)
  2. 自動公開: バージョンタグのプッシュによってトリガーされます
  3. 手動の PyPI アップロードは不要 - 完全に自動化されたパイプライン

詳細なワークフロードキュメントについては、scripts/dev-workflow.md を参照してください。