StarRocks

resmi

Berinteraksi dengan StarRocks

Apa yang bisa Anda lakukan dengan StarRocks MCP?

  • Menjalankan kueri SQL — Minta untuk mengeksekusi pernyataan SELECT melalui read_query atau perintah DDL/DML melalui write_query, dengan opsi keluaran file untuk hasil yang besar.
  • Menjelajahi struktur basis data — Daftar basis data dan tabel, atau ambil skema tabel menggunakan sumber daya starrocks:// seperti starrocks:///{db}/{table}/schema.
  • Mendapatkan ringkasan tabel atau basis data — Gunakan table_overview atau db_overview untuk mengambil definisi kolom, jumlah baris, dan data sampel, dengan cache untuk permintaan berulang.
  • Memvisualisasikan hasil kueri — Buat bagan Plotly langsung dari kueri SQL menggunakan query_and_plotly_chart, mengembalikan gambar PNG untuk tampilan UI.
  • Memantau kesehatan klaster — Identifikasi tabel terpanas berdasarkan kunjungan log audit (top_hot_tables) atau tabel berkinerja buruk berdasarkan skor kesehatan (top_bad_tables).
  • Mengakses info sistem internal — Kueri internal StarRocks seperti node FE/BE, transaksi, atau pekerjaan melalui jalur sumber daya proc://.

Dokumentasi

MseeP.ai Security Assessment Badge

Server MCP Resmi StarRocks

Server MCP StarRocks bertindak sebagai jembatan antara asisten AI dan database StarRocks. Server ini memungkinkan eksekusi SQL secara langsung, eksplorasi database, visualisasi data melalui grafik, serta pengambilan skema/ringkasan data secara detail tanpa memerlukan pengaturan sisi klien yang rumit.

StarRocks Server MCP server

Fitur

  • Eksekusi SQL Langsung: Jalankan kueri SELECT (read_query) dan perintah DDL/DML (write_query).
  • Eksplorasi Database: Daftarkan database dan tabel, ambil skema tabel (sumber daya starrocks://).
  • Informasi Sistem: Akses metrik dan status internal StarRocks melalui jalur sumber daya proc://.
  • Ringkasan Detail: Dapatkan ringkasan komprehensif tabel (table_overview) atau seluruh database (db_overview), termasuk definisi kolom, jumlah baris, dan data sampel.
  • Visualisasi Data: Jalankan kueri dan buat grafik Plotly langsung dari hasilnya (query_and_plotly_chart).
  • Caching Cerdas: Ringkasan tabel dan database di-cache di memori untuk mempercepat permintaan berulang. Cache dapat dilewati saat diperlukan.
  • Konfigurasi Fleksibel: Atur detail koneksi dan perilaku melalui variabel lingkungan.

Prasyarat

  • Python 3.11 atau lebih baru.
  • Klaster StarRocks yang dapat dijangkau (layanan FE). Secara default, server terhubung ke localhost:9030 melalui protokol MySQL.
  • uv — paket Python dan manajer proyek yang cepat (pengganti modern untuk pip + virtualenv) dari Astral. Proyek ini menggunakan uv untuk menyelesaikan dependensi, membuat lingkungan virtual, dan meluncurkan server. Perintah uv run di seluruh README ini secara otomatis membuat lingkungan terisolasi dan menginstal dependensi yang diperlukan pada penggunaan pertama, sehingga tidak diperlukan langkah pip install manual.

Menginstal uv

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# Or via Homebrew / pipx / pip
brew install uv
# pipx install uv
# pip install uv

Lihat panduan instalasi resmi uv untuk opsi lainnya. Setelah menginstal, verifikasi bahwa PATH Anda sudah memuatnya:

uv --version

Instalasi

Anda umumnya tidak perlu menginstal paket secara manual — host MCP meluncurkannya untuk Anda melalui uv (lihat Konfigurasi di bawah). uv mengambil paket dan dependensinya sesuai permintaan.

Untuk menjalankannya langsung untuk pengujian atau pengembangan:

# Run the published package in a throwaway environment
uv run --with mcp-server-starrocks mcp-server-starrocks --help

# Or, from a local checkout of this repository
git clone https://github.com/starrocks/mcp-server-starrocks.git
cd mcp-server-starrocks
uv sync                      # create the virtual environment and install dependencies
uv run mcp-server-starrocks --help

Konfigurasi

Server MCP biasanya dijalankan melalui host MCP. Konfigurasi diteruskan ke host, yang menentukan cara meluncurkan proses server MCP StarRocks.

Menggunakan Streamable HTTP (disarankan):

Untuk memulai server dalam mode Streamable HTTP:

Pertama, uji bahwa koneksi ke StarRocks berfungsi (9030 adalah port protokol MySQL StarRocks, bukan port server HTTP):

$ STARROCKS_URL=root:@localhost:9030 uv run mcp-server-starrocks --test

Mulai server:

uv run mcp-server-starrocks --mode streamable-http --port 8000

Kemudian konfigurasikan MCP seperti ini:

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

Menggunakan Docker:

Bangun image:

docker build -t mcp-server-starrocks:local .

Bangun dan dorong image ber-versi:

docker build -t <registry>/<namespace>/mcp-starrocks:0.4.0 .
docker push <registry>/<namespace>/mcp-starrocks:0.4.0

Mulai server dalam mode Streamable HTTP:

docker run --rm -p 8000:8000 \
  -e STARROCKS_HOST=host.docker.internal \
  -e STARROCKS_PORT=9030 \
  -e STARROCKS_USER=root \
  -e STARROCKS_PASSWORD='' \
  mcp-server-starrocks:local

Kemudian konfigurasikan klien MCP dengan:

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

Menggunakan uv dengan paket terinstal (variabel lingkungan individual):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": ["run", "--with", "mcp-server-starrocks", "mcp-server-starrocks"],
      "env": {
        "STARROCKS_HOST": "default localhost",
        "STARROCKS_PORT": "default 9030",
        "STARROCKS_USER": "default root",
        "STARROCKS_PASSWORD": "default empty",
        "STARROCKS_DB": "default empty"
      }
    }
  }
}

Menggunakan uv dengan paket terinstal (URL koneksi):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": ["run", "--with", "mcp-server-starrocks", "mcp-server-starrocks"],
      "env": {
        "STARROCKS_URL": "root:password@localhost:9030/my_database"
      }
    }
  }
}

Menggunakan uv dengan direktori lokal (untuk pengembangan):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/mcp-server-starrocks", // <-- Update this path
        "run",
        "mcp-server-starrocks"
      ],
      "env": {
        "STARROCKS_HOST": "default localhost",
        "STARROCKS_PORT": "default 9030",
        "STARROCKS_USER": "default root",
        "STARROCKS_PASSWORD": "default empty",
        "STARROCKS_DB": "default empty"
      }
    }
  }
}

Menggunakan uv dengan direktori lokal dan URL koneksi:

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/mcp-server-starrocks", // <-- Update this path
        "run",
        "mcp-server-starrocks"
      ],
      "env": {
        "STARROCKS_URL": "root:password@localhost:9030/my_database"
      }
    }
  }
}

Argumen Baris Perintah:

Server mendukung argumen baris perintah berikut:

uv run mcp-server-starrocks --help
  • --mode {stdio,sse,http,streamable-http}: Mode transport (default: stdio atau variabel env MCP_TRANSPORT_MODE)
  • --host HOST: Host server untuk mode HTTP (default: localhost)
  • --port PORT: Port server untuk mode HTTP
  • --test: Jalankan dalam mode uji untuk memverifikasi fungsionalitas

Contoh:

# Start in streamable HTTP mode on custom host/port
uv run mcp-server-starrocks --mode streamable-http --host 0.0.0.0 --port 8080

# Start in stdio mode (default)
uv run mcp-server-starrocks --mode stdio

# Run test mode
uv run mcp-server-starrocks --test
  • Bidang url harus menunjuk ke endpoint Streamable HTTP dari server MCP Anda (sesuaikan host/port sesuai kebutuhan).
  • Dengan konfigurasi ini, klien dapat berinteraksi dengan server menggunakan JSON standar melalui permintaan HTTP POST. Tidak diperlukan SDK khusus.
  • Semua API alat menerima dan mengembalikan JSON standar seperti yang dijelaskan di atas.

Catatan: Mode sse (Server-Sent Events) tidak digunakan lagi dan tidak lagi dipertahankan. Gunakan mode Streamable HTTP untuk semua integrasi baru.

Variabel Lingkungan:

Konfigurasi Koneksi

Anda dapat mengonfigurasi koneksi StarRocks menggunakan variabel lingkungan individual atau satu URL koneksi:

Opsi 1: Variabel Lingkungan Individual

  • STARROCKS_HOST: (Opsional) Nama host atau alamat IP layanan FE StarRocks. Default ke localhost.
  • STARROCKS_PORT: (Opsional) Port protokol MySQL layanan FE StarRocks. Default ke 9030.
  • STARROCKS_USER: (Opsional) Nama pengguna StarRocks. Default ke root.
  • STARROCKS_PASSWORD: (Opsional) Kata sandi StarRocks. Default ke string kosong.
  • STARROCKS_PASSWORD_FILE: (Opsional) Jalur ke file teks UTF-8 yang berisi kata sandi. Ini berguna dengan injeksi rahasia berbasis file seperti kredensial systemd. Satu baris baru di akhir diabaikan. Ini hanya digunakan saat tidak ada kata sandi eksplisit yang diberikan melalui STARROCKS_PASSWORD atau STARROCKS_URL.
  • STARROCKS_PASSWORD_KEYCHAIN_SERVICE: (Opsional, khusus macOS) Nama layanan kata sandi generik yang digunakan saat membaca kata sandi dari Keychain. Ini hanya digunakan saat tidak ada kata sandi eksplisit atau STARROCKS_PASSWORD_FILE yang dikonfigurasi.
  • STARROCKS_PASSWORD_KEYCHAIN_ACCOUNT: (Opsional, khusus macOS) Nama akun kata sandi generik yang digunakan saat membaca kata sandi dari Keychain. Default ke pengguna StarRocks yang telah diselesaikan.
  • STARROCKS_DB: (Opsional) Database default yang digunakan jika tidak ditentukan dalam argumen alat atau URI sumber daya. Jika diatur, koneksi akan mencoba USE database ini. Alat seperti table_overview dan db_overview akan menggunakan ini jika bagian database dihilangkan dalam argumennya. Default ke kosong (tanpa database default).
  • STARROCKS_QUERY_TIMEOUT: (Opsional) Jumlah detik untuk menunggu hasil kueri sebelum menyerah, sebagai bilangan bulat. Tidak diatur secara default, yang menunggu tanpa batas, sesuai perilaku sebelumnya. Atur ini jika kueri yang macet atau berjalan lama harus gagal alih-alih memblokir panggilan alat selamanya.

Opsi 2: URL Koneksi (lebih diutamakan daripada variabel individual)

  • STARROCKS_URL: (Opsional) String URL koneksi yang berisi semua parameter koneksi dalam satu variabel. Format: [<schema>://]user:password@host:port/database. Bagian skema bersifat opsional. Saat variabel ini diatur, variabel ini lebih diutamakan daripada variabel individual STARROCKS_HOST, STARROCKS_PORT, STARROCKS_USER, STARROCKS_PASSWORD, dan STARROCKS_DB.

    Contoh:

    • root:mypass@localhost:9030/test_db
    • mysql://admin:secret@db.example.com:9030/production
    • starrocks://user:pass@192.168.1.100:9030/analytics

Prioritas kata sandi:

  • Kata sandi yang tertanam dalam STARROCKS_URL menang, termasuk kata sandi kosong eksplisit seperti user:@host:9030/db.
  • Jika STARROCKS_URL menghilangkan kata sandi, STARROCKS_PASSWORD digunakan saat diatur.
  • Jika tidak ada sumber kata sandi eksplisit yang diatur dan STARROCKS_PASSWORD_FILE dikonfigurasi, kata sandi dibaca dari file tersebut.
  • Jika tidak ada kata sandi eksplisit atau file kata sandi yang dikonfigurasi dan STARROCKS_PASSWORD_KEYCHAIN_SERVICE diatur, kata sandi dibaca dari Keychain macOS.

Contoh Keychain macOS

Simpan kata sandi:

security add-generic-password -U -a root -s mcp-server-starrocks -w 'secret'

Verifikasi kata sandi yang tersimpan:

security find-generic-password -a root -s mcp-server-starrocks -w

Gunakan dengan server ini:

export STARROCKS_URL=root@localhost:9030/test_db
export STARROCKS_PASSWORD_KEYCHAIN_SERVICE=mcp-server-starrocks
export STARROCKS_PASSWORD_KEYCHAIN_ACCOUNT=root

Kredensial terenkripsi systemd contoh (systemd 250 atau lebih baru)

Server tidak memanggil systemd-creds sendiri. Pada saat penerapan, administrator mengenkripsi kata sandi; saat layanan dimulai, systemd mendekripsinya ke direktori kredensial layanan dan hanya mengekspos jalur file ke server ini.

Buat kredensial terenkripsi yang terikat host tanpa menempatkan kata sandi di riwayat shell:

sudo -v
sudo install -d -m 0700 /etc/credstore.encrypted
sudo systemd-ask-password -n "StarRocks password:" \
  | sudo systemd-creds encrypt \
      --name=starrocks-password \
      - /etc/credstore.encrypted/starrocks-password.cred

Tambahkan kredensial ke unit layanan. Penentu %d diperluas ke direktori kredensial khusus layanan:

[Service]
LoadCredentialEncrypted=starrocks-password:/etc/credstore.encrypted/starrocks-password.cred
Environment=STARROCKS_PASSWORD_FILE=%d/starrocks-password
PrivateMounts=yes

Biarkan STARROCKS_PASSWORD tidak diatur dan hilangkan kata sandi dari STARROCKS_URL, lalu muat ulang unit dan mulai ulang layanan. Kredensial terenkripsi biasanya terikat ke host lokal (dan ke perangkat TPM2 saat tersedia); kredensial hanya didekripsi saat layanan sedang diaktifkan. Proses layanan dan administrator dengan hak akses root masih dapat mengakses kata sandi teks biasa saat runtime. Jangan gunakan systemd-creds encrypt --with-key=null, yang tidak memberikan kerahasiaan.

Konfigurasi Tambahan

  • STARROCKS_FE_ARROW_FLIGHT_SQL_PORT: (Opsional) Port Arrow Flight SQL layanan FE StarRocks. Saat diatur, server terhubung menggunakan protokol Arrow Flight SQL berkinerja tinggi (melalui driver ADBC) alih-alih protokol MySQL standar. Biarkan tidak diatur untuk menggunakan koneksi MySQL default. Host, pengguna, dan kata sandi diambil dari pengaturan koneksi yang sama seperti yang dijelaskan di atas.

  • STARROCKS_OVERVIEW_LIMIT: (Opsional) Batas karakter perkiraan untuk total teks yang dihasilkan oleh alat ringkasan (table_overview, db_overview) saat mengambil data untuk mengisi cache. Ini membantu mencegah penggunaan memori yang berlebihan untuk skema yang sangat besar atau banyak tabel. Default ke 20000.

  • STARROCKS_MCP_OUTPUT_DIR: (Opsional) Direktori yang digunakan oleh read_query saat argumen output_file-nya adalah jalur relatif. Default ke ~/.mcp-server-starrocks/output/. Direktori dibuat sesuai permintaan. Jalur absolut yang diteruskan ke output_file (termasuk jalur berawalan ~) melewati pengaturan ini. Catatan: file ditulis di mesin tempat server MCP berjalan. Untuk Claude Code / Claude Desktop, server berjalan secara lokal, sehingga file tersimpan di laptop Anda. Untuk penerapan jarak jauh/http, file tersimpan di server, bukan di klien.

  • STARROCKS_CHART_OUTPUT_DIR: (Opsional) Direktori tempat query_and_plotly_chart menulis grafik HTML interaktif (saat format="html"). Default ke direktori temp sistem. Direktori dibuat sesuai permintaan. Catatan: seperti file keluaran lainnya, grafik ditulis di mesin tempat server MCP berjalan.

  • STARROCKS_CHART_INCLUDE_PLOTLYJS: (Opsional) Mengontrol cara plotly.js digabungkan ke dalam grafik HTML. cdn (default) menjaga file tetap kecil tetapi memerlukan akses jaringan saat melihat; inline/true menyematkan pustaka lengkap untuk penggunaan offline; directory dan false juga diterima (diteruskan ke write_html Plotly).

  • STARROCKS_CHART_DEFAULT_FORMAT: (Opsional) Format keluaran default untuk query_and_plotly_chart saat argumen format dihilangkan. Salah satu dari json, png, jpeg (default), atau html. Atur ke html untuk selalu menulis file grafik interaktif ke STARROCKS_CHART_OUTPUT_DIR (dengan pratinjau PNG inline) tanpa meneruskan format pada setiap panggilan. Nilai yang tidak valid kembali ke jpeg dengan peringatan.

  • STARROCKS_MYSQL_AUTH_PLUGIN: (Opsional) Menentukan plugin autentikasi yang digunakan saat terhubung ke layanan FE StarRocks. Misalnya, atur ke mysql_clear_password jika penerapan StarRocks Anda memerlukan autentikasi kata sandi teks biasa (seperti saat menggunakan pengaturan LDAP atau autentikasi eksternal tertentu). Hanya atur ini jika lingkungan Anda secara khusus memerlukannya; jika tidak, auth_plugin default digunakan.

Konfigurasi TLS / SSL

Variabel-variabel ini mengontrol TLS untuk koneksi. Saat tidak ada yang diatur, mysql.connector yang mendasarinya mempertahankan perilaku defaultnya (ssl-mode=PREFERRED): koneksi dienkripsi jika server mendukung TLS, tetapi sertifikat server tidak diverifikasi. Untuk keamanan nyata, sediakan sertifikat CA dan aktifkan verifikasi.

  • STARROCKS_SSL_DISABLED: (Opsional) Setel ke true untuk memaksa menonaktifkan TLS. Menimpa semua pengaturan SSL lainnya. Defaultnya adalah false.
  • STARROCKS_SSL_CA: (Opsional) Jalur ke sertifikat CA (PEM) yang digunakan untuk memverifikasi sertifikat server StarRocks.
  • STARROCKS_SSL_CERT: (Opsional) Jalur ke sertifikat klien (PEM) untuk mutual TLS (mTLS).
  • STARROCKS_SSL_KEY: (Opsional) Jalur ke kunci privat klien (PEM) untuk mutual TLS (mTLS).
  • STARROCKS_SSL_VERIFY_CERT: (Opsional) Setel ke true untuk memverifikasi sertifikat server terhadap CA. Defaultnya adalah false.
  • STARROCKS_SSL_VERIFY_IDENTITY: (Opsional) Setel ke true untuk juga memverifikasi bahwa nama host server cocok dengan sertifikat. Defaultnya adalah false.
  • STARROCKS_TLS_VERSIONS: (Opsional) Daftar versi TLS yang diizinkan, dipisahkan dengan koma, misalnya TLSv1.2,TLSv1.3.

Contoh (verifikasi server terhadap sertifikat CA):

"env": {
  "STARROCKS_HOST": "your-fe-host",
  "STARROCKS_PORT": "9030",
  "STARROCKS_USER": "root",
  "STARROCKS_PASSWORD": "your-password",
  "STARROCKS_SSL_CA": "/path/to/ca.pem",
  "STARROCKS_SSL_VERIFY_CERT": "true",
  "STARROCKS_SSL_VERIFY_IDENTITY": "true"
}

Untuk koneksi Arrow Flight SQL berkinerja tinggi (diaktifkan melalui STARROCKS_FE_ARROW_FLIGHT_SQL_PORT), TLS dikontrol secara terpisah:

  • STARROCKS_FE_ARROW_FLIGHT_SQL_USE_TLS: (Opsional) Setel ke true untuk menggunakan grpc+tls:// alih-alih grpc:// teks biasa. Saat diaktifkan, STARROCKS_SSL_CA digunakan sebagai sertifikat root TLS dan STARROCKS_SSL_VERIFY_CERT=false (default) melewati verifikasi sertifikat server.

Catatan keamanan: hindari menyimpan kata sandi teks biasa langsung di mcp.json. Sebaiknya injeksi STARROCKS_PASSWORD (dan jalur sertifikat) dari pengelola rahasia atau lingkungan, dan jangan pernah mengirimkan kredensial ke kontrol versi.

  • MCP_TRANSPORT_MODE: (Opsional) Mode komunikasi yang menentukan bagaimana MCP Server mengekspos layanannya. Opsi yang tersedia:
    • stdio (default): Berkomunikasi melalui input/output standar, cocok untuk hosting MCP Host.
    • streamable-http (Streamable HTTP): Dimulai sebagai Streamable HTTP Server, mendukung panggilan API RESTful.
    • sse: (Tidak digunakan lagi, tidak disarankan) Dimulai dalam mode streaming Server-Sent Events (SSE), cocok untuk skenario yang memerlukan respons streaming. Catatan: Mode SSE tidak lagi dipertahankan, disarankan untuk menggunakan mode Streamable HTTP secara seragam.

Komponen

Tools

  • read_query

    • Deskripsi: Jalankan kueri SELECT atau perintah lain yang mengembalikan ResultSet (misalnya, SHOW, DESCRIBE). Secara opsional tulis hasil lengkap ke file lokal alih-alih mengembalikannya secara inline — berguna untuk hasil yang terlalu besar untuk muat dalam konteks model.
    • Input:
      {
        "query": "SQL query string",
        "db": "database name (optional, uses default database if not specified)",
        "output_file": "optional path; if set, writes the full result to disk and returns only a summary + small preview. Relative paths resolve against STARROCKS_MCP_OUTPUT_DIR (default: ~/.mcp-server-starrocks/output/); absolute paths and ~ are used as-is",
        "output_format": "optional: csv | tsv | json | jsonl. If omitted, inferred from output_file extension (.csv/.tsv/.json/.jsonl/.ndjson); defaults to csv"
      }
      
    • Output: Tanpa output_file, konten teks yang berisi hasil kueri dalam format mirip CSV dengan baris header dan ringkasan jumlah baris. Dengan output_file, ringkasan singkat yang menyertakan jalur absolut yang diselesaikan, jumlah byte, dan jumlah baris, plus pratinjau kecil. Mengembalikan pesan kesalahan saat gagal.
  • write_query

    • Deskripsi: Jalankan DDL (CREATE, ALTER, DROP), DML (INSERT, UPDATE, DELETE), atau perintah StarRocks lain yang tidak mengembalikan ResultSet.
    • Input:
      {
        "query": "SQL command string",
        "db": "database name (optional, uses default database if not specified)"
      }
      
    • Output: Konten teks yang mengonfirmasi keberhasilan (misalnya, "Query OK, X rows affected") atau melaporkan kesalahan. Perubahan dilakukan secara otomatis saat berhasil.
  • analyze_query

    • Deskripsi: Analisis kueri dan dapatkan hasil analisis menggunakan profil kueri atau explain analyze.
    • Input:
      {
        "uuid": "Query ID, a string composed of 32 hexadecimal digits formatted as 8-4-4-4-12",
        "sql": "Query SQL to analyze",
        "db": "database name (optional, uses default database if not specified)"
      }
      
    • Output: Konten teks yang berisi hasil analisis kueri. Menggunakan ANALYZE PROFILE FROM jika uuid disediakan, jika tidak menggunakan EXPLAIN ANALYZE jika sql disediakan.
  • top_hot_tables

    • Deskripsi: Dapatkan tabel panas teratas berdasarkan jumlah kunjungan log audit. Ini menggabungkan information_schema.tables dengan starrocks_audit_db__.starrocks_audit_tbl__, mengecualikan pernyataan root dan SHOW, mencocokkan teks SQL audit dengan nama tabel, dan mengurutkan berdasarkan visit_count menurun.
    • Input:
      {
        "db": "optional database/schema filter",
        "table": "optional table name substring filter",
        "min_start_time_ms": 1704067200000,
        "max_start_time_ms": 1704153600000,
        "top_n": 20
      }
      
    • Output: Ringkasan teks plus konten terstruktur yang berisi baris berperingkat dengan db, table, dan visit_count.
  • top_bad_tables

    • Deskripsi: Dapatkan tabel buruk teratas berdasarkan skor kesehatan tabel, mengikuti logika top-bad-tables Star Management Studio. Ini menggunakan kembali perhitungan kesehatan tabel berdasarkan information_schema.be_tablets dan information_schema.partitions_meta, memfilter skema sistem, mengurutkan berdasarkan table_health_score menaik, dan mengembalikan tabel dengan skor terendah.
    • Input:
      {
        "db": "optional database/schema filter",
        "table": "optional table name substring filter",
        "top_n": 20
      }
      
    • Output: Ringkasan teks plus konten terstruktur yang berisi baris berperingkat dengan bidang kesehatan tabel seperti db, table, tablet_num, replica_score, tablet_score, dan table_health_score.
  • query_and_plotly_chart

    • Deskripsi: Menjalankan kueri SQL, memuat hasilnya ke dalam Pandas DataFrame, dan menghasilkan bagan Plotly menggunakan ekspresi Python yang disediakan. Dirancang untuk visualisasi di UI yang mendukung.
    • Input:
      {
        "query": "SQL query to fetch data",
        "plotly_expr": "Python expression string using 'px' (Plotly Express) and 'df' (DataFrame). Example: 'px.scatter(df, x=\"col1\", y=\"col2\")'",
        "db": "database name (optional, uses default database if not specified)"
      }
      
    • Output: Daftar yang berisi:
      1. TextContent: Representasi teks dari DataFrame dan catatan bahwa bagan tersebut untuk tampilan UI.
      2. ImageContent: Bagan Plotly yang dihasilkan dikodekan sebagai gambar PNG base64 (image/png). Mengembalikan pesan kesalahan teks saat gagal atau jika kueri tidak menghasilkan data.
  • table_overview

    • Deskripsi: Dapatkan ringkasan tabel tertentu: kolom (dari DESCRIBE), jumlah total baris, dan contoh baris (LIMIT 3). Menggunakan cache dalam memori kecuali refresh benar.
    • Input:
      {
        "table": "Table name, optionally prefixed with database name (e.g., 'db_name.table_name' or 'table_name'). If database is omitted, uses STARROCKS_DB environment variable if set.",
        "refresh": false // Optional, boolean. Set to true to bypass the cache. Defaults to false.
      }
      
    • Output: Konten teks yang berisi ringkasan terformat (kolom, jumlah baris, data contoh) atau pesan kesalahan. Hasil cache menyertakan kesalahan sebelumnya jika berlaku.
  • db_overview

    • Deskripsi: Dapatkan ringkasan (kolom, jumlah baris, contoh baris) untuk semua tabel dalam database yang ditentukan. Menggunakan cache tingkat tabel untuk setiap tabel kecuali refresh benar.
    • Input:
      {
        "db": "database_name", // Optional if default database is set.
        "refresh": false // Optional, boolean. Set to true to bypass the cache for all tables in the DB. Defaults to false.
      }
      
    • Output: Konten teks yang berisi ringkasan gabungan untuk semua tabel yang ditemukan di database, dipisahkan oleh header. Mengembalikan pesan kesalahan jika database tidak dapat diakses atau tidak berisi tabel.

Resources

Direct Resources

  • starrocks:///databases
    • Deskripsi: Mencantumkan semua database yang dapat diakses oleh pengguna yang dikonfigurasi.
    • Kueri Setara: SHOW DATABASES
    • Tipe MIME: text/plain

Resource Templates

  • starrocks:///{db}/{table}/schema

    • Deskripsi: Mendapatkan definisi skema tabel tertentu.
    • Kueri Setara: SHOW CREATE TABLE {db}.{table}
    • Tipe MIME: text/plain
  • starrocks:///{db}/tables

    • Deskripsi: Mencantumkan semua tabel dalam database tertentu.
    • Kueri Setara: SHOW TABLES FROM {db}
    • Tipe MIME: text/plain
  • proc:///{+path}

    • Deskripsi: Mengakses informasi sistem internal StarRocks, mirip dengan /proc Linux. Parameter path menentukan node informasi yang diinginkan.
    • Kueri Setara: SHOW PROC '/{path}'
    • Tipe MIME: text/plain
    • Jalur Umum:
      • /frontends - Informasi tentang node FE.
      • /backends - Informasi tentang node BE (untuk deployment non-cloud native).
      • /compute_nodes - Informasi tentang node CN (untuk deployment cloud native).
      • /dbs - Informasi tentang database.
      • /dbs/<DB_ID> - Informasi tentang database tertentu berdasarkan ID.
      • /dbs/<DB_ID>/<TABLE_ID> - Informasi tentang tabel tertentu berdasarkan ID.
      • /dbs/<DB_ID>/<TABLE_ID>/partitions - Informasi partisi untuk tabel.
      • /transactions - Informasi transaksi yang dikelompokkan berdasarkan database.
      • /transactions/<DB_ID> - Informasi transaksi untuk ID database tertentu.
      • /transactions/<DB_ID>/running - Transaksi yang berjalan untuk ID database.
      • /transactions/<DB_ID>/finished - Transaksi yang selesai untuk ID database.
      • /jobs - Informasi tentang pekerjaan asinkron (Schema Change, Rollup, dll.).
      • /statistic - Statistik untuk setiap database.
      • /tasks - Informasi tentang tugas agen.
      • /cluster_balance - Informasi status keseimbangan beban.
      • /routine_loads - Informasi tentang pekerjaan Routine Load.
      • /colocation_group - Informasi tentang grup Colocation Join.
      • /catalog - Informasi tentang katalog yang dikonfigurasi (misalnya, Hive, Iceberg).

Prompts

Tidak ada yang ditentukan oleh server ini.

Perilaku Caching

  • Tool table_overview dan db_overview menggunakan cache dalam memori untuk menyimpan teks ringkasan yang dihasilkan.
  • Kunci cache adalah tuple dari (database_name, table_name).
  • Saat table_overview dipanggil, ia memeriksa cache terlebih dahulu. Jika hasil ada dan parameter refresh adalah false (default), hasil cache dikembalikan segera. Jika tidak, ia mengambil data dari StarRocks, menyimpannya di cache, lalu mengembalikannya.
  • Saat db_overview dipanggil, ia mencantumkan semua tabel di database dan kemudian mencoba mengambil ringkasan untuk setiap tabel menggunakan logika caching yang sama dengan table_overview (memeriksa cache terlebih dahulu, mengambil jika perlu dan refresh adalah false atau cache miss). Jika refresh adalah true untuk db_overview, ia memaksa penyegaran untuk semua tabel di database tersebut.
  • Variabel lingkungan STARROCKS_OVERVIEW_LIMIT menyediakan target lunak untuk panjang maksimum string ringkasan yang dihasilkan per tabel saat mengisi cache, membantu mengelola penggunaan memori.
  • Hasil cache, termasuk pesan kesalahan apa pun yang ditemui selama pengambilan asli, disimpan dan dikembalikan pada cache hit berikutnya.

Debug

Setelah memulai server mcp, Anda dapat menggunakan inspector untuk men-debug:

npx @modelcontextprotocol/inspector

Demo

MCP Demo Image