0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenClawにSingleStoreを使ってデータ分析させてみた

0
Last updated at Posted at 2026-03-23

免責事項: OpenClawは強力な権限で動作するのでセキュリティ上危険なツールになりえます。本記事はOpenClawの業務での使用を推奨するものでは全くなく、あくまで知識ネタです(そもそもOpenClawはエンタープライズで使うものではない)。本記事によって生じた損害について一切責任を負いません。
この記事の環境では、OpenClawはクリーンなサンドボックス環境で動かし、操作対象のSingleStore Heliosアカウントにもテストデータしかない状態で接続しています。

OpenClawにSingleStoreを操作させるには、MCP Server経由でアクセスさせる方法があります。SingleStoreは下記記事にもあるように、MCP Serverを提供しています。

ただ、OpenClawに直接MCP Serverを登録することはできないため、OpenClawの作者が作成したmcporterを使用してSingleStoreのMCP Serverを利用させる必要があります。

テスト環境

  • Ubuntu 24.0.4
  • OpenClaw 2026.3.2
  • SingleStore Helios

mcporterのインストール

mcporterの本体をインストールします。

npm i -g mcporter

mcporterスキルをインストールします。

clawhub install mcporter

mcporterへのSingleStore MCP Serverの登録

~/.openclaw/workspace/config/mcporter.json に以下を追記します。

{
  "mcpServers": {
    "singlestore": {
      "lifecycle": "keep-alive",
      "command": "uvx",
      "args": [
        "singlestore-mcp-server",
        "start"
      ]
    }
  }
}

"lifecycle": "keep-alive"が重要です。これがないとSingleStoreのセッション情報をmcporterが保持してくれませんでした。

SingleStore Heliosの認証

以下のコマンドを実行すると、登録したMCP Serverを表示すると同時に認証を実施します。

cd ~/.openclaw/workspace
mcporter list

ブラウザウィンドウが開き、SingleStore Heliosアカウントへのサインインを求められます。
サインインするとブラウザに認証成功の画面が表示されます。

image.png

SingleStoreスキルの作成

MCP Serverを登録しただけでは、mcporterを介したSingleStore MCP Serverの使い方をOpenClawが知らないので、SingleStore Heliosにアクセスすることができません。

そこで、OpenClawに教えるためのSingleStore用のスキルを作成します。以下はmcporter call singlestore --schemaの出力結果を元にLLMに作成させたSKILL.mdです。

mcporterは引数を--フラグ形式やKey=Value形式で受け取れますが、SingleStore MCPでは--フラグ形式ではうまく動作しないコマンドがあったので、下記SKILL.mdでは全てKey=Value形式に統一しました。

コマンドの動作確認はしていません。削除系のコマンドは意図的に除外していますが、SQLでテーブル削除などはできてしまうので注意が必要です。

mkdir ~/.openclaw/workspace/skills/singlestore
vi ~/.openclaw/workspace/skills/singlestore/SKILL.md
---
name: singlestore
description: |
  MCP (mcporter) を通じて SingleStore データベースおよびワークスペースを操作するスキル。ユーザー情報、組織選択、ワークスペース管理、SQL実行、ノートブック作成・スケジュールなどの全18ツールを提供します。
  まず「mcporter call singlestore.」形式で実行する。
  最初にこのSKILL.md全体を読むこと。
version: "1.0"
category: database
tags: ["singlestore", "mcp", "sql", "cloud-db", "workspace"]
enabled: true
---

# SingleStore Skill (via mcporter singlestore-mcp-server)
このスキルは mcporter singlestore-mcp-server を利用して、SingleStoreの組織・ワークスペース・SQL実行・ノートブック管理などを操作できます。

mcporter の呼び出しは key="value" 形式で引数を指定します。

利用可能なツール
get_user_info - 現在のユーザー情報を取得します。
コマンド例: mcporter call singlestore.get_user_info

organization_info - 現在の組織情報を取得します。
コマンド例: mcporter call singlestore.organization_info

choose_organization - アクセス可能な組織一覧を取得し、選択します。
コマンド例: mcporter call singlestore.choose_organization

set_organization - 特定の組織を選択します。
コマンド例: mcporter call singlestore.set_organization organization_id="your-organization-id-here"

workspace_groups_info - アクセス可能なワークスペースグループ一覧を取得します。
コマンド例: mcporter call singlestore.workspace_groups_info

workspaces_info - 指定グループ内のワークスペース一覧を取得します。
コマンド例: mcporter call singlestore.workspaces_info workspace_group_id="your-group-id-here"

resume_workspace - 停止中のワークスペースを再開します。
コマンド例: mcporter call singlestore.resume_workspace workspace_id="your-workspace-id-here"

list_starter_workspaces - 利用可能なスターターワークスペース一覧を取得します。
コマンド例: mcporter call singlestore.list_starter_workspaces

create_starter_workspace - 新しいスターターワークスペースを作成します。
コマンド例: mcporter call singlestore.create_starter_workspace name="my-test-workspace" database_name="analytics_db" provider="AWS" region_name="us-west-2"

list_regions - デプロイ可能な全リージョン一覧を取得します。
コマンド例: mcporter call singlestore.list_regions

list_sharedtier_regions - 共有ティアで利用可能なリージョン一覧を取得します。
コマンド例: mcporter call singlestore.list_sharedtier_regions

run_sql - 指定ワークスペースでSQL文を実行します。
コマンド例: mcporter call singlestore.run_sql sql_query="SELECT * FROM users LIMIT 10" id="your-workspace-id" database="my_db"

create_notebook_file - Jupyterノートブックファイルを作成・保存します。
コマンド例: 詳細はツールドキュメント参照(content オブジェクトが必要)

upload_notebook_file - ローカルのノートブックをSingleStoreにアップロードします。
コマンド例: mcporter call singlestore.upload_notebook_file local_path="/path/to/notebook.ipynb" upload_name="analysis" upload_location="shared"

create_job_from_notebook - 共有ノートブックをスケジュールジョブとして作成します。
コマンド例: mcporter call singlestore.create_job_from_notebook name="daily-analysis" notebook_path="/shared/analysis.ipynb" mode="Recurring" execution_interval_in_minutes=1440

get_job - 指定ジョブの詳細を取得します。
コマンド例: mcporter call singlestore.get_job job_id="job-12345"

使用例(実際のmcporter call形式)
ユーザー情報取得
mcporter call singlestore.get_user_info

組織一覧を取得して選択
mcporter call singlestore.choose_organization

組織を設定
mcporter call singlestore.set_organization organization_id="your-orgaznization-id"

SQL実行例
mcporter call singlestore.run_sql sql_query="SHOW DATABASES" id="your-workspace-id"

スターターワークスペース作成
mcporter call singlestore.create_starter_workspace name="test-ws" database_name="test_db" provider="AWS" region_name="ap-northeast-1"

ノートブックジョブ作成
mcporter call singlestore.create_job_from_notebook name="daily-report" notebook_path="/shared/report.ipynb" mode="Once"

ベストプラクティス
最初に choose_organization を呼び出して組織を選択する

SQL実行前に workspaces_info でワークスペースIDを確認

ノートブック系は content や path を正確に入力

引数は key="value" の形式で渡す(--キー 値 ではない)

OpenCalwのダッシュボードから、SingleStoreスキルが認識されていることを確認します。

image.png

それでは、あらかじめOpenClawに指示を出せるように設定しておいたSlackから、SingleStoreを操作してみます。

「singlestore skillを使ってSingleStoreのOrganization一覧を表示して」

以下はOpenClawとのやり取りの例です。

slack.png

OpenClawに依頼して、SingleStoreから取得したデータを元にmatplotlibを使ってグラフを作成させ、そのグラフ画像をSlackに添付させることもできました。

image.png

同様に、クエリ分析させた結果を元にグラフを作成させることもできました(サンプルデータ入りのテーブル自体もOpenClawに作成させました)。

image.png

作成させたグラフ画像は以下になります。

image.png

OpenClaw自体はエンタープライズで使えないとしても、今後エンタープライズ用途でも社員をサポートするアシスタント・エージェントが登場するのはほぼ確実でしょう。

そういったエージェントの振る舞いを理解する、よい勉強になりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?