SingleStore

resmi

Berinteraksi 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_info dan organization_info.
  • Kelola ruang kerja — daftar, buat, lanjutkan, atau hentikan ruang kerja menggunakan workspaces_info, create_starter_workspace, resume_workspace, dan terminate_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 dengan upload_notebook_file, dan jadwalkan pekerjaan dengan create_job_from_notebook.
  • Kelola file Stage — daftar, unggah, pindahkan, dan hapus file di deployment Stage menggunakan stage_list_files, stage_upload_file, stage_move, dan stage_delete.

Dokumentasi

Server MCP SingleStore

MIT Licence PyPI Downloads

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
  • 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
  • resume_workspace: Melanjutkan ruang kerja yang ditangguhkan

    • Argumen: workspace_id (string)
    • Melanjutkan ruang kerja yang ditentukan
  • 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
  • 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
  • create_notebook_file: Membuat file notebook baru di SingleStore Spaces

    • Argumen: notebook_name, content (opsional)
    • Mengembalikan detail notebook yang dibuat
  • upload_notebook_file: Mengunggah file notebook ke SingleStore Spaces

    • Argumen: file_path, notebook_name
    • Mengembalikan detail notebook yang diunggah
  • create_job_from_notebook: Membuat pekerjaan terjadwal dari notebook

    • Argumen: konfigurasi pekerjaan termasuk notebook_path, schedule_mode, dll.
    • Mengembalikan detail pekerjaan yang dibuat
  • get_job: Mengambil detail pekerjaan yang ada

    • Argumen: job_id (string)
    • Mengembalikan detail pekerjaan yang ditentukan
  • delete_job: Menghapus pekerjaan yang ada

    • Argumen: job_id (string)
    • Menghapus pekerjaan yang ditentukan
  • 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
  • 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
  • stage_create_folder: Membuat folder di Stage

    • Argumen: deployment_id (string), path (string)
    • Mengembalikan status pembuatan
  • stage_upload_file: Mengunggah file ke Stage dengan konten teks

    • Argumen: deployment_id (string), path (string), content (string), local_path (string)
    • Mengembalikan status unggahan
  • stage_move: Memindahkan atau mengganti nama file atau folder di Stage

    • Argumen: deployment_id (string), source_path (string), destination_path (string)
    • Mengembalikan status pemindahan
  • stage_delete: Menghapus file atau folder dari Stage

    • Argumen: deployment_id (string), path (string)
    • Mengembalikan status penghapusan

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

  1. Kloning repositori:
git clone https://github.com/singlestore-labs/mcp-server-singlestore.git
cd mcp-server-singlestore
  1. Instal dependensi:
uv sync --dev
  1. 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:

  1. Buat rilis: ./scripts/release.sh (alat interaktif)
  2. Publikasi otomatis: Dipicu dengan mendorong tag versi
  3. Tidak ada unggahan PyPI manual - pipeline sepenuhnya otomatis

Lihat scripts/dev-workflow.md untuk dokumentasi alur kerja terperinci.