StarRocks
resmiBerinteraksi dengan StarRocks
Apa yang bisa Anda lakukan dengan StarRocks MCP?
- Menjalankan kueri SQL — Minta untuk mengeksekusi pernyataan
SELECTmelaluiread_queryatau perintah DDL/DML melaluiwrite_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://sepertistarrocks:///{db}/{table}/schema. - Mendapatkan ringkasan tabel atau basis data — Gunakan
table_overviewataudb_overviewuntuk 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
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.
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:9030melalui protokol MySQL. uv— paket Python dan manajer proyek yang cepat (pengganti modern untukpip+virtualenv) dari Astral. Proyek ini menggunakanuvuntuk menyelesaikan dependensi, membuat lingkungan virtual, dan meluncurkan server. Perintahuv rundi seluruh README ini secara otomatis membuat lingkungan terisolasi dan menginstal dependensi yang diperlukan pada penggunaan pertama, sehingga tidak diperlukan langkahpip installmanual.
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
urlharus 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 kelocalhost.STARROCKS_PORT: (Opsional) Port protokol MySQL layanan FE StarRocks. Default ke9030.STARROCKS_USER: (Opsional) Nama pengguna StarRocks. Default keroot.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 melaluiSTARROCKS_PASSWORDatauSTARROCKS_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 atauSTARROCKS_PASSWORD_FILEyang 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 mencobaUSEdatabase ini. Alat sepertitable_overviewdandb_overviewakan 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 individualSTARROCKS_HOST,STARROCKS_PORT,STARROCKS_USER,STARROCKS_PASSWORD, danSTARROCKS_DB.Contoh:
root:mypass@localhost:9030/test_dbmysql://admin:secret@db.example.com:9030/productionstarrocks://user:pass@192.168.1.100:9030/analytics
Prioritas kata sandi:
- Kata sandi yang tertanam dalam
STARROCKS_URLmenang, termasuk kata sandi kosong eksplisit sepertiuser:@host:9030/db. - Jika
STARROCKS_URLmenghilangkan kata sandi,STARROCKS_PASSWORDdigunakan saat diatur. - Jika tidak ada sumber kata sandi eksplisit yang diatur dan
STARROCKS_PASSWORD_FILEdikonfigurasi, kata sandi dibaca dari file tersebut. - Jika tidak ada kata sandi eksplisit atau file kata sandi yang dikonfigurasi dan
STARROCKS_PASSWORD_KEYCHAIN_SERVICEdiatur, 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 ke20000. -
STARROCKS_MCP_OUTPUT_DIR: (Opsional) Direktori yang digunakan olehread_querysaat argumenoutput_file-nya adalah jalur relatif. Default ke~/.mcp-server-starrocks/output/. Direktori dibuat sesuai permintaan. Jalur absolut yang diteruskan keoutput_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 tempatquery_and_plotly_chartmenulis grafik HTML interaktif (saatformat="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 caraplotly.jsdigabungkan ke dalam grafik HTML.cdn(default) menjaga file tetap kecil tetapi memerlukan akses jaringan saat melihat;inline/truemenyematkan pustaka lengkap untuk penggunaan offline;directorydanfalsejuga diterima (diteruskan kewrite_htmlPlotly). -
STARROCKS_CHART_DEFAULT_FORMAT: (Opsional) Format keluaran default untukquery_and_plotly_chartsaat argumenformatdihilangkan. Salah satu darijson,png,jpeg(default), atauhtml. Atur kehtmluntuk selalu menulis file grafik interaktif keSTARROCKS_CHART_OUTPUT_DIR(dengan pratinjau PNG inline) tanpa meneruskanformatpada setiap panggilan. Nilai yang tidak valid kembali kejpegdengan peringatan. -
STARROCKS_MYSQL_AUTH_PLUGIN: (Opsional) Menentukan plugin autentikasi yang digunakan saat terhubung ke layanan FE StarRocks. Misalnya, atur kemysql_clear_passwordjika 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 ketrueuntuk memaksa menonaktifkan TLS. Menimpa semua pengaturan SSL lainnya. Defaultnya adalahfalse.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 ketrueuntuk memverifikasi sertifikat server terhadap CA. Defaultnya adalahfalse.STARROCKS_SSL_VERIFY_IDENTITY: (Opsional) Setel ketrueuntuk juga memverifikasi bahwa nama host server cocok dengan sertifikat. Defaultnya adalahfalse.STARROCKS_TLS_VERSIONS: (Opsional) Daftar versi TLS yang diizinkan, dipisahkan dengan koma, misalnyaTLSv1.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 ketrueuntuk menggunakangrpc+tls://alih-alihgrpc://teks biasa. Saat diaktifkan,STARROCKS_SSL_CAdigunakan sebagai sertifikat root TLS danSTARROCKS_SSL_VERIFY_CERT=false(default) melewati verifikasi sertifikat server.
Catatan keamanan: hindari menyimpan kata sandi teks biasa langsung di
mcp.json. Sebaiknya injeksiSTARROCKS_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. Denganoutput_file, ringkasan singkat yang menyertakan jalur absolut yang diselesaikan, jumlah byte, dan jumlah baris, plus pratinjau kecil. Mengembalikan pesan kesalahan saat gagal.
- Deskripsi: Jalankan kueri SELECT atau perintah lain yang mengembalikan ResultSet (misalnya,
-
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.
- Deskripsi: Jalankan DDL (
-
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 FROMjika uuid disediakan, jika tidak menggunakanEXPLAIN ANALYZEjika sql disediakan.
-
top_hot_tables- Deskripsi: Dapatkan tabel panas teratas berdasarkan jumlah kunjungan log audit. Ini menggabungkan
information_schema.tablesdenganstarrocks_audit_db__.starrocks_audit_tbl__, mengecualikan pernyataanrootdanSHOW, mencocokkan teks SQL audit dengan nama tabel, dan mengurutkan berdasarkanvisit_countmenurun. - 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, danvisit_count.
- Deskripsi: Dapatkan tabel panas teratas berdasarkan jumlah kunjungan log audit. Ini menggabungkan
-
top_bad_tables- Deskripsi: Dapatkan tabel buruk teratas berdasarkan skor kesehatan tabel, mengikuti logika
top-bad-tablesStar Management Studio. Ini menggunakan kembali perhitungan kesehatan tabel berdasarkaninformation_schema.be_tabletsdaninformation_schema.partitions_meta, memfilter skema sistem, mengurutkan berdasarkantable_health_scoremenaik, 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, dantable_health_score.
- Deskripsi: Dapatkan tabel buruk teratas berdasarkan skor kesehatan tabel, mengikuti logika
-
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:
TextContent: Representasi teks dari DataFrame dan catatan bahwa bagan tersebut untuk tampilan UI.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 kecualirefreshbenar. - 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.
- Deskripsi: Dapatkan ringkasan tabel tertentu: kolom (dari
-
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
refreshbenar. - 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.
- Deskripsi: Dapatkan ringkasan (kolom, jumlah baris, contoh baris) untuk semua tabel dalam database yang ditentukan. Menggunakan cache tingkat tabel untuk setiap tabel kecuali
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
/procLinux. Parameterpathmenentukan 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).
- Deskripsi: Mengakses informasi sistem internal StarRocks, mirip dengan
Prompts
Tidak ada yang ditentukan oleh server ini.
Perilaku Caching
- Tool
table_overviewdandb_overviewmenggunakan cache dalam memori untuk menyimpan teks ringkasan yang dihasilkan. - Kunci cache adalah tuple dari
(database_name, table_name). - Saat
table_overviewdipanggil, ia memeriksa cache terlebih dahulu. Jika hasil ada dan parameterrefreshadalahfalse(default), hasil cache dikembalikan segera. Jika tidak, ia mengambil data dari StarRocks, menyimpannya di cache, lalu mengembalikannya. - Saat
db_overviewdipanggil, ia mencantumkan semua tabel di database dan kemudian mencoba mengambil ringkasan untuk setiap tabel menggunakan logika caching yang sama dengantable_overview(memeriksa cache terlebih dahulu, mengambil jika perlu danrefreshadalahfalseatau cache miss). Jikarefreshadalahtrueuntukdb_overview, ia memaksa penyegaran untuk semua tabel di database tersebut. - Variabel lingkungan
STARROCKS_OVERVIEW_LIMITmenyediakan 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

