SingleStore
resmiBerinteraksi dengan platform basis data SingleStore
Apa yang bisa Anda lakukan dengan SingleStore MCP?
- Dapatkan detail pengguna dan organisasi Anda — minta asisten untuk mengambil info akun Anda dengan
get_user_infodanorganization_info. - Kelola ruang kerja — daftar, buat, lanjutkan, atau hentikan ruang kerja menggunakan
workspaces_info,create_starter_workspace,resume_workspace, danterminate_starter_workspace. - Jalankan kueri SQL di ruang kerja — jalankan SQL terhadap ruang kerja yang terhubung dengan memberikan kueri dan detail koneksi melalui
run_sql. - Buat dan jadwalkan notebook — buat notebook dengan
create_notebook_file, unggah file denganupload_notebook_file, dan jadwalkan pekerjaan dengancreate_job_from_notebook. - Kelola file Stage — daftar, unggah, pindahkan, dan hapus file di deployment Stage menggunakan
stage_list_files,stage_upload_file,stage_move, danstage_delete.
Dokumentasi
Server MCP SingleStore
Model Context Protocol (MCP) adalah protokol terstandarisasi yang dirancang untuk mengelola konteks antara model bahasa besar (LLM) dan sistem eksternal. Repositori ini menyediakan penginstal dan Server MCP untuk Singlestore, memungkinkan integrasi yang mulus.
Dengan MCP, Anda dapat menggunakan Claude Desktop, Claude Code, Cursor, atau klien MCP kompatibel lainnya untuk berinteraksi dengan SingleStore menggunakan bahasa alami, sehingga memudahkan Anda melakukan operasi kompleks dengan mudah.
💡 Tips Pro: Tidak yakin apa yang bisa dilakukan server MCP? Cukup panggil prompt /help di obrolan Anda!
Persyaratan
- Python >= v3.10.0
- uvx terinstal di lingkungan Python Anda
- VS Code, Cursor, Windsurf, Claude Desktop, Claude Code, Goose, atau klien MCP lainnya
Memulai
Memulai
Pertama, instal server MCP SingleStore dengan klien Anda.
Konfigurasi standar berfungsi di sebagian besar alat:
{
"mcpServers": {
"singlestore-mcp-server": {
"command": "uvx",
"args": [
"singlestore-mcp-server",
"start"
]
}
}
}
Tidak diperlukan kunci API, token, atau variabel lingkungan! Server secara otomatis menangani autentikasi melalui OAuth browser saat dimulai.
Claude Desktop
Pengaturan otomatis:
uvx singlestore-mcp-server init --client=claude-desktop
Pengaturan manual: Ikuti panduan instalasi MCP, gunakan konfigurasi standar di atas.
Claude Code
Pengaturan otomatis:
uvx singlestore-mcp-server init --client=claude-code
Ini akan secara otomatis menjalankan perintah Claude CLI untuk Anda.
Pengaturan manual:
claude mcp add singlestore-mcp-server uvx singlestore-mcp-server start
Cursor
Pengaturan otomatis:
uvx singlestore-mcp-server init --client=cursor
Pengaturan manual:
Buka Cursor Settings -> MCP -> Add new MCP Server. Beri nama sesuai keinginan, gunakan tipe command dengan perintah uvx singlestore-mcp-server start. Anda juga dapat memverifikasi konfigurasi atau menambahkan argumen baris perintah dengan mengklik Edit.
VS Code
Pengaturan otomatis:
uvx singlestore-mcp-server init --client=vscode
Pengaturan manual: Ikuti panduan instalasi MCP, gunakan konfigurasi standar di atas. Anda juga dapat menginstal menggunakan CLI VS Code:
code --add-mcp '{"name":"singlestore-mcp-server","command":"uvx","args":["singlestore-mcp-server","start"]}'
Setelah instalasi, server MCP SingleStore akan tersedia untuk digunakan dengan agen GitHub Copilot Anda di VS Code.
Windsurf
Pengaturan otomatis:
uvx singlestore-mcp-server init --client=windsurf
Pengaturan manual: Ikuti dokumentasi Windsurf MCP. Gunakan konfigurasi standar di atas.
Gemini CLI
Pengaturan otomatis:
uvx singlestore-mcp-server init --client=gemini
Pengaturan manual: Ikuti panduan instalasi MCP, gunakan konfigurasi standar di atas.
LM Studio
Pengaturan otomatis:
uvx singlestore-mcp-server init --client=lm-studio
Pengaturan manual:
Buka Program di bilah sisi kanan -> Install -> Edit mcp.json. Gunakan konfigurasi standar di atas.
Goose
Hanya pengaturan manual:
Buka Advanced settings -> Extensions -> Add custom extension. Beri nama sesuai keinginan, gunakan tipe STDIO, dan atur command ke uvx singlestore-mcp-server start. Klik "Add Extension".
Qodo Gen
Hanya pengaturan manual: Buka panel obrolan Qodo Gen di VSCode atau IntelliJ → Hubungkan lebih banyak alat → + Tambah MCP baru → Tempelkan konfigurasi standar di atas.
Klik Simpan.
Menggunakan Docker
CATATAN: Kunci API diperlukan saat menggunakan Docker karena alur OAuth tidak didukung untuk server yang berjalan di kontainer Docker.
{
"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"
]
}
}
}
Anda dapat membangun citra Docker sendiri:
docker build -t singlestore/mcp-server-singlestore .
Untuk keamanan yang lebih baik, kami merekomendasikan menggunakan Docker Desktop untuk mengonfigurasi server MCP SingleStore—lihat postingan blog ini untuk detail tentang Katalog MCP baru Docker.
Komponen
Alat
Server mengimplementasikan alat-alat berikut:
-
get_user_info: Mengambil detail tentang pengguna saat ini
- Tidak memerlukan argumen
- Mengembalikan informasi dan detail pengguna
-
organization_info: Mengambil detail tentang organisasi pengguna saat ini
- Tidak memerlukan argumen
- Mengembalikan detail organisasi
-
choose_organization: Memilih dari organisasi yang tersedia (hanya tersedia saat variabel lingkungan kunci API tidak diatur)
- Tidak memerlukan argumen
- Mengembalikan daftar organisasi yang tersedia untuk dipilih
-
set_organization: Mengatur organisasi aktif (hanya tersedia saat variabel lingkungan kunci API tidak diatur)
- Argumen:
organization_id(string) - Menetapkan organisasi yang ditentukan sebagai aktif
- Argumen:
-
workspace_groups_info: Mengambil detail tentang grup ruang kerja yang dapat diakses oleh pengguna
- Tidak memerlukan argumen
- Mengembalikan detail grup ruang kerja
-
workspaces_info: Mengambil detail tentang ruang kerja dalam grup ruang kerja tertentu
- Argumen:
workspace_group_id(string) - Mengembalikan detail ruang kerja
- Argumen:
-
resume_workspace: Melanjutkan ruang kerja yang ditangguhkan
- Argumen:
workspace_id(string) - Melanjutkan ruang kerja yang ditentukan
- Argumen:
-
list_starter_workspaces: Mencantumkan semua ruang kerja pemula yang dapat diakses oleh pengguna
- Tidak memerlukan argumen
- Mengembalikan detail ruang kerja pemula yang tersedia
-
create_starter_workspace: Membuat ruang kerja pemula baru
- Argumen: parameter konfigurasi ruang kerja
- Mengembalikan detail ruang kerja pemula yang dibuat
-
terminate_starter_workspace: Menghentikan ruang kerja pemula yang ada
- Argumen:
workspace_id(string) - Menghentikan ruang kerja pemula yang ditentukan
- Argumen:
-
list_regions: Mengambil daftar semua wilayah yang mendukung ruang kerja
- Tidak memerlukan argumen
- Mengembalikan daftar wilayah yang tersedia
-
list_sharedtier_regions: Mengambil daftar wilayah tingkat bersama
- Tidak memerlukan argumen
- Mengembalikan daftar wilayah tingkat bersama
-
run_sql: Menjalankan operasi SQL pada ruang kerja yang terhubung
- Argumen:
workspace_id,database,sql_query, dan parameter koneksi - Mengembalikan hasil kueri SQL dalam format terstruktur
- Argumen:
-
create_notebook_file: Membuat file notebook baru di SingleStore Spaces
- Argumen:
notebook_name,content(opsional) - Mengembalikan detail notebook yang dibuat
- Argumen:
-
upload_notebook_file: Mengunggah file notebook ke SingleStore Spaces
- Argumen:
file_path,notebook_name - Mengembalikan detail notebook yang diunggah
- Argumen:
-
create_job_from_notebook: Membuat pekerjaan terjadwal dari notebook
- Argumen: konfigurasi pekerjaan termasuk
notebook_path,schedule_mode, dll. - Mengembalikan detail pekerjaan yang dibuat
- Argumen: konfigurasi pekerjaan termasuk
-
get_job: Mengambil detail pekerjaan yang ada
- Argumen:
job_id(string) - Mengembalikan detail pekerjaan yang ditentukan
- Argumen:
-
delete_job: Menghapus pekerjaan yang ada
- Argumen:
job_id(string) - Menghapus pekerjaan yang ditentukan
- Argumen:
-
stage_list_files: Mencantumkan file dan folder dalam sistem file deployment Stage
- Argumen:
deployment_id(string),path(string, opsional) - Mengembalikan isi folder termasuk file dan subfolder
- Argumen:
-
stage_get_file: Mendapatkan file dari Stage berdasarkan jalur
- Argumen:
deployment_id(string),path(string),return_type(string: 'metadata', 'url', atau 'content') - Mengembalikan metadata file, URL unduhan, atau konten teks
- Argumen:
-
stage_create_folder: Membuat folder di Stage
- Argumen:
deployment_id(string),path(string) - Mengembalikan status pembuatan
- Argumen:
-
stage_upload_file: Mengunggah file ke Stage dengan konten teks
- Argumen:
deployment_id(string),path(string),content(string),local_path(string) - Mengembalikan status unggahan
- Argumen:
-
stage_move: Memindahkan atau mengganti nama file atau folder di Stage
- Argumen:
deployment_id(string),source_path(string),destination_path(string) - Mengembalikan status pemindahan
- Argumen:
-
stage_delete: Menghapus file atau folder dari Stage
- Argumen:
deployment_id(string),path(string) - Mengembalikan status penghapusan
- Argumen:
Catatan: Alat manajemen organisasi (choose_organization dan set_organization) hanya tersedia saat variabel lingkungan kunci API tidak diatur, memungkinkan pemilihan organisasi interaktif selama autentikasi OAuth.
Pengembangan
Prasyarat
- Python >= 3.11
- uv untuk manajemen dependensi
Pengaturan
- Kloning repositori:
git clone https://github.com/singlestore-labs/mcp-server-singlestore.git
cd mcp-server-singlestore
- Instal dependensi:
uv sync --dev
- Siapkan pre-commit hooks (opsional namun disarankan):
uv run pre-commit install
Alur Kerja Pengembangan
# 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
Menjalankan Pengujian
# Run test suite with coverage
./scripts/test.sh
# Or use pytest directly
uv run pytest
uv run pytest --cov=src --cov-report=html
Kualitas Kode
Kami menggunakan Ruff untuk linting dan pemformatan:
# 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/
Proses Rilis
Rilis dikelola melalui tag git dan publikasi PyPI otomatis:
- Buat rilis:
./scripts/release.sh(alat interaktif) - Publikasi otomatis: Dipicu dengan mendorong tag versi
- Tidak ada unggahan PyPI manual - pipeline sepenuhnya otomatis
Lihat scripts/dev-workflow.md untuk dokumentasi alur kerja terperinci.