SingleStore

chính thức

Tương tác với nền tảng cơ sở dữ liệu SingleStore

Bạn có thể làm gì với Single Store MCP?

  • Lấy thông tin người dùng và tổ chức của bạn — yêu cầu trợ lý truy xuất thông tin tài khoản của bạn bằng get_user_infoorganization_info.
  • Quản lý không gian làm việc — liệt kê, tạo, tiếp tục hoặc chấm dứt không gian làm việc bằng workspaces_info, create_starter_workspace, resume_workspaceterminate_starter_workspace.
  • Chạy truy vấn SQL trên không gian làm việc — thực thi SQL trên một không gian làm việc đã kết nối bằng cách cung cấp truy vấn và chi tiết kết nối qua run_sql.
  • Tạo và lên lịch notebook — xây dựng notebook bằng create_notebook_file, tải lên tệp bằng upload_notebook_file và lên lịch công việc bằng create_job_from_notebook.
  • Quản lý tệp Stage — liệt kê, tải lên, di chuyển và xóa tệp trong các triển khai Stage bằng stage_list_files, stage_upload_file, stage_movestage_delete.

Tài liệu

SingleStore MCP Server

MIT Licence PyPI Downloads

[Model Context Protocol]((https://modelcontextprotocol.io/introduction) (MCP) là một giao thức chuẩn hóa được thiết kế để quản lý ngữ cảnh giữa các mô hình ngôn ngữ lớn (LLM) và các hệ thống bên ngoài. Kho lưu trữ này cung cấp trình cài đặt và MCP Server cho Singlestore, cho phép tích hợp liền mạch.

Với MCP, bạn có thể sử dụng Claude Desktop, Claude Code, Cursor hoặc bất kỳ ứng dụng MCP tương thích nào để tương tác với SingleStore bằng ngôn ngữ tự nhiên, giúp thực hiện các thao tác phức tạp một cách dễ dàng.

💡 Mẹo chuyên nghiệp: Không chắc chắn máy chủ MCP có thể làm gì? Chỉ cần gọi prompt /help trong cuộc trò chuyện của bạn!

Yêu cầu

  • Python >= v3.10.0
  • uvx được cài đặt trong môi trường python của bạn
  • VS Code, Cursor, Windsurf, Claude Desktop, Claude Code, Goose hoặc bất kỳ ứng dụng MCP nào khác

Bắt đầu

Bắt đầu

Trước tiên, hãy cài đặt máy chủ SingleStore MCP với ứng dụng của bạn.

Cấu hình chuẩn hoạt động trong hầu hết các công cụ:

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

Không cần khóa API, mã thông báo hoặc biến môi trường! Máy chủ tự động xử lý xác thực qua OAuth trình duyệt khi khởi động.

Claude Desktop

Thiết lập tự động:

uvx singlestore-mcp-server init --client=claude-desktop

Thiết lập thủ công: Làm theo hướng dẫn cài đặt MCP, sử dụng cấu hình chuẩn ở trên.

Claude Code

Thiết lập tự động:

uvx singlestore-mcp-server init --client=claude-code

Lệnh này sẽ tự động chạy lệnh Claude CLI cho bạn.

Thiết lập thủ công:

claude mcp add singlestore-mcp-server uvx singlestore-mcp-server start
Cursor

Thiết lập tự động:

uvx singlestore-mcp-server init --client=cursor

Thiết lập thủ công: Vào Cursor Settings -> MCP -> Add new MCP Server. Đặt tên tùy ý, sử dụng loại command với lệnh uvx singlestore-mcp-server start. Bạn cũng có thể xác minh cấu hình hoặc thêm đối số dòng lệnh bằng cách nhấp vào Edit.

VS Code

Thiết lập tự động:

uvx singlestore-mcp-server init --client=vscode

Thiết lập thủ công: Làm theo hướng dẫn cài đặt MCP, sử dụng cấu hình chuẩn ở trên. Bạn cũng có thể cài đặt bằng VS Code CLI:

code --add-mcp '{"name":"singlestore-mcp-server","command":"uvx","args":["singlestore-mcp-server","start"]}'

Sau khi cài đặt, máy chủ SingleStore MCP sẽ sẵn sàng để sử dụng với tác nhân GitHub Copilot của bạn trong VS Code.

Windsurf

Thiết lập tự động:

uvx singlestore-mcp-server init --client=windsurf

Thiết lập thủ công: Làm theo tài liệu Windsurf MCP. Sử dụng cấu hình chuẩn ở trên.

Gemini CLI

Thiết lập tự động:

uvx singlestore-mcp-server init --client=gemini

Thiết lập thủ công: Làm theo hướng dẫn cài đặt MCP, sử dụng cấu hình chuẩn ở trên.

LM Studio

Thiết lập tự động:

uvx singlestore-mcp-server init --client=lm-studio

Thiết lập thủ công: Vào Program ở thanh bên phải -> Install -> Edit mcp.json. Sử dụng cấu hình chuẩn ở trên.

Goose

Chỉ thiết lập thủ công: Vào Advanced settings -> Extensions -> Add custom extension. Đặt tên tùy ý, sử dụng loại STDIO và đặt command thành uvx singlestore-mcp-server start. Nhấp vào "Add Extension".

Qodo Gen

Chỉ thiết lập thủ công: Mở bảng trò chuyện Qodo Gen trong VSCode hoặc IntelliJ → Kết nối thêm công cụ → + Thêm MCP mới → Dán cấu hình chuẩn ở trên.

Nhấp vào Save.

Sử dụng Docker

LƯU Ý: Cần có khóa API khi sử dụng Docker vì luồng OAuth không được hỗ trợ cho các máy chủ chạy trong container 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"
      ]
    }
  }
}

Bạn có thể tự xây dựng image Docker:

docker build -t singlestore/mcp-server-singlestore .

Để bảo mật tốt hơn, chúng tôi khuyên bạn nên sử dụng Docker Desktop để cấu hình máy chủ SingleStore MCP—xem bài đăng blog này để biết chi tiết về Danh mục MCP mới của Docker.

Thành phần

Công cụ

Máy chủ triển khai các công cụ sau:

  • get_user_info: Truy xuất thông tin chi tiết về người dùng hiện tại

    • Không yêu cầu đối số
    • Trả về thông tin và chi tiết người dùng
  • organization_info: Truy xuất thông tin chi tiết về tổ chức hiện tại của người dùng

    • Không yêu cầu đối số
    • Trả về chi tiết của tổ chức
  • choose_organization: Chọn từ các tổ chức có sẵn (chỉ khả dụng khi biến môi trường khóa API không được đặt)

    • Không yêu cầu đối số
    • Trả về danh sách các tổ chức có sẵn để chọn
  • set_organization: Đặt tổ chức đang hoạt động (chỉ khả dụng khi biến môi trường khóa API không được đặt)

    • Đối số: organization_id (chuỗi)
    • Đặt tổ chức được chỉ định làm hoạt động
  • workspace_groups_info: Truy xuất thông tin chi tiết về các nhóm không gian làm việc mà người dùng có thể truy cập

    • Không yêu cầu đối số
    • Trả về chi tiết của các nhóm không gian làm việc
  • workspaces_info: Truy xuất thông tin chi tiết về các không gian làm việc trong một nhóm không gian làm việc cụ thể

    • Đối số: workspace_group_id (chuỗi)
    • Trả về chi tiết của các không gian làm việc
  • resume_workspace: Tiếp tục một không gian làm việc bị tạm dừng

    • Đối số: workspace_id (chuỗi)
    • Tiếp tục không gian làm việc được chỉ định
  • list_starter_workspaces: Liệt kê tất cả các không gian làm việc khởi đầu mà người dùng có thể truy cập

    • Không yêu cầu đối số
    • Trả về chi tiết của các không gian làm việc khởi đầu có sẵn
  • create_starter_workspace: Tạo một không gian làm việc khởi đầu mới

    • Đối số: tham số cấu hình không gian làm việc
    • Trả về chi tiết của không gian làm việc khởi đầu đã tạo
  • terminate_starter_workspace: Chấm dứt một không gian làm việc khởi đầu hiện có

    • Đối số: workspace_id (chuỗi)
    • Chấm dứt không gian làm việc khởi đầu được chỉ định
  • list_regions: Truy xuất danh sách tất cả các khu vực hỗ trợ không gian làm việc

    • Không yêu cầu đối số
    • Trả về danh sách các khu vực có sẵn
  • list_sharedtier_regions: Truy xuất danh sách các khu vực bậc dùng chung

    • Không yêu cầu đối số
    • Trả về danh sách các khu vực bậc dùng chung
  • run_sql: Thực thi các thao tác SQL trên một không gian làm việc được kết nối

    • Đối số: workspace_id, database, sql_query và các tham số kết nối
    • Trả về kết quả của truy vấn SQL ở định dạng có cấu trúc
  • create_notebook_file: Tạo một tệp notebook mới trong SingleStore Spaces

    • Đối số: notebook_name, content (tùy chọn)
    • Trả về chi tiết của notebook đã tạo
  • upload_notebook_file: Tải lên một tệp notebook vào SingleStore Spaces

    • Đối số: file_path, notebook_name
    • Trả về chi tiết của notebook đã tải lên
  • create_job_from_notebook: Tạo một công việc được lên lịch từ một notebook

    • Đối số: cấu hình công việc bao gồm notebook_path, schedule_mode, v.v.
    • Trả về chi tiết của công việc đã tạo
  • get_job: Truy xuất chi tiết của một công việc hiện có

    • Đối số: job_id (chuỗi)
    • Trả về chi tiết của công việc được chỉ định
  • delete_job: Xóa một công việc hiện có

    • Đối số: job_id (chuỗi)
    • Xóa công việc được chỉ định
  • stage_list_files: Liệt kê các tệp và thư mục trong hệ thống tệp của một triển khai Stage

    • Đối số: deployment_id (chuỗi), path (chuỗi, tùy chọn)
    • Trả về nội dung thư mục bao gồm các tệp và thư mục con
  • stage_get_file: Lấy một tệp từ Stage theo đường dẫn

    • Đối số: deployment_id (chuỗi), path (chuỗi), return_type (chuỗi: 'metadata', 'url' hoặc 'content')
    • Trả về siêu dữ liệu tệp, URL tải xuống hoặc nội dung văn bản
  • stage_create_folder: Tạo một thư mục trong Stage

    • Đối số: deployment_id (chuỗi), path (chuỗi)
    • Trả về trạng thái tạo
  • stage_upload_file: Tải lên một tệp vào Stage với nội dung văn bản

    • Đối số: deployment_id (chuỗi), path (chuỗi), content (chuỗi), local_path (chuỗi)
    • Trả về trạng thái tải lên
  • stage_move: Di chuyển hoặc đổi tên một tệp hoặc thư mục trong Stage

    • Đối số: deployment_id (chuỗi), source_path (chuỗi), destination_path (chuỗi)
    • Trả về trạng thái di chuyển
  • stage_delete: Xóa một tệp hoặc thư mục khỏi Stage

    • Đối số: deployment_id (chuỗi), path (chuỗi)
    • Trả về trạng thái xóa

Lưu ý: Các công cụ quản lý tổ chức (choose_organizationset_organization) chỉ khả dụng khi biến môi trường khóa API không được đặt, cho phép lựa chọn tổ chức tương tác trong quá trình xác thực OAuth.

Phát triển

Điều kiện tiên quyết

  • Python >= 3.11
  • uv để quản lý phụ thuộc

Thiết lập

  1. Sao chép kho lưu trữ:
git clone https://github.com/singlestore-labs/mcp-server-singlestore.git
cd mcp-server-singlestore
  1. Cài đặt các phụ thuộc:
uv sync --dev
  1. Thiết lập pre-commit hooks (tùy chọn nhưng được khuyến nghị):
uv run pre-commit install

Quy trình phát triển

# 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

Chạy kiểm thử

# Run test suite with coverage
./scripts/test.sh

# Or use pytest directly
uv run pytest
uv run pytest --cov=src --cov-report=html

Chất lượng mã

Chúng tôi sử dụng Ruff cho cả kiểm tra lint và định dạng:

# 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/

Quy trình phát hành

Các bản phát hành được quản lý thông qua thẻ git và xuất bản PyPI tự động:

  1. Tạo bản phát hành: ./scripts/release.sh (công cụ tương tác)
  2. Xuất bản tự động: Được kích hoạt bằng cách đẩy thẻ phiên bản
  3. Không tải lên PyPI thủ công - quy trình hoàn toàn tự động

Xem scripts/dev-workflow.md để biết tài liệu quy trình làm việc chi tiết.