SingleStore

официальный

Взаимодействие с платформой базы данных SingleStore

Что можно делать с SingleStore MCP?

  • Получите данные о пользователе и организации — попросите ассистента получить информацию о вашей учетной записи с помощью get_user_info и organization_info.
  • Управляйте рабочими пространствами — просматривайте, создавайте, возобновляйте или завершайте рабочие пространства с помощью workspaces_info, create_starter_workspace, resume_workspace и terminate_starter_workspace.
  • Выполняйте SQL-запросы в рабочем пространстве — выполняйте SQL в подключенном рабочем пространстве, указав запрос и параметры подключения через run_sql.
  • Создавайте и планируйте блокноты — создавайте блокноты с помощью create_notebook_file, загружайте файлы с помощью upload_notebook_file и планируйте задания с помощью create_job_from_notebook.
  • Управляйте файлами Stage — просматривайте, загружайте, перемещайте и удаляйте файлы в развертываниях Stage с помощью stage_list_files, stage_upload_file, stage_move и stage_delete.

Документация

SingleStore MCP Server

MIT Licence PyPI Downloads

[Model Context Protocol]((https://modelcontextprotocol.io/introduction) (MCP) — это стандартизированный протокол, предназначенный для управления контекстом между большими языковыми моделями (LLM) и внешними системами. Этот репозиторий предоставляет установщик и MCP-сервер для Singlestore, обеспечивая бесшовную интеграцию.

С помощью MCP вы можете использовать Claude Desktop, Claude Code, Cursor или любой совместимый MCP-клиент для взаимодействия с SingleStore на естественном языке, что упрощает выполнение сложных операций.

💡 Совет профессионала: Не уверены, что умеет MCP-сервер? Просто вызовите промпт /help в вашем чате!

Требования

  • Python >= v3.10.0
  • uvx, установленный в вашем окружении Python
  • VS Code, Cursor, Windsurf, Claude Desktop, Claude Code, Goose или любой другой MCP-клиент

Начало работы

Начало работы

Сначала установите MCP-сервер SingleStore с вашим клиентом.

Стандартная конфигурация работает в большинстве инструментов:

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

Никаких API-ключей, токенов или переменных окружения не требуется! Сервер автоматически выполняет аутентификацию через OAuth в браузере при запуске.

Claude Desktop

Автоматическая настройка:

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

Ручная настройка: Следуйте руководству по установке MCP, используйте стандартную конфигурацию выше.

Claude Code

Автоматическая настройка:

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

Это автоматически выполнит команду Claude CLI за вас.

Ручная настройка:

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

Автоматическая настройка:

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

Ручная настройка: Перейдите в Cursor Settings -> MCP -> Add new MCP Server. Назовите по своему усмотрению, используйте тип command с командой uvx singlestore-mcp-server start. Вы также можете проверить конфигурацию или добавить аргументы командной строки, нажав Edit.

VS Code

Автоматическая настройка:

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

Ручная настройка: Следуйте руководству по установке MCP, используйте стандартную конфигурацию выше. Вы также можете установить с помощью VS Code CLI:

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

После установки MCP-сервер SingleStore будет доступен для использования с вашим агентом GitHub Copilot в VS Code.

Windsurf

Автоматическая настройка:

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

Ручная настройка: Следуйте документации Windsurf MCP. Используйте стандартную конфигурацию выше.

Gemini CLI

Автоматическая настройка:

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

Ручная настройка: Следуйте руководству по установке MCP, используйте стандартную конфигурацию выше.

LM Studio

Автоматическая настройка:

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

Ручная настройка: Перейдите в Program на правой боковой панели -> Install -> Edit mcp.json. Используйте стандартную конфигурацию выше.

Goose

Только ручная настройка: Перейдите в Advanced settings -> Extensions -> Add custom extension. Назовите по своему усмотрению, используйте тип STDIO и установите command в uvx singlestore-mcp-server start. Нажмите «Add Extension».

Qodo Gen

Только ручная настройка: Откройте панель чата Qodo Gen в VSCode или IntelliJ → Connect more tools → + Add new MCP → Вставьте стандартную конфигурацию выше.

Нажмите Save.

Использование Docker

ПРИМЕЧАНИЕ: При использовании Docker требуется API-ключ, поскольку поток OAuth не поддерживается для серверов, работающих в контейнерах 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"
      ]
    }
  }
}

Вы можете собрать образ Docker самостоятельно:

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

Для лучшей безопасности мы рекомендуем использовать Docker Desktop для настройки MCP-сервера SingleStore — подробности о новом каталоге MCP от Docker см. в этом блоге.

Компоненты

Инструменты

Сервер реализует следующие инструменты:

  • get_user_info: Получить информацию о текущем пользователе

    • Аргументы не требуются
    • Возвращает информацию о пользователе и детали
  • organization_info: Получить информацию об организации текущего пользователя

    • Аргументы не требуются
    • Возвращает детали организации
  • choose_organization: Выбрать из доступных организаций (доступно только если переменная окружения API-ключа не задана)

    • Аргументы не требуются
    • Возвращает список доступных организаций для выбора
  • set_organization: Установить активную организацию (доступно только если переменная окружения API-ключа не задана)

    • Аргументы: organization_id (строка)
    • Устанавливает указанную организацию как активную
  • workspace_groups_info: Получить информацию о группах рабочих пространств, доступных пользователю

    • Аргументы не требуются
    • Возвращает детали групп рабочих пространств
  • workspaces_info: Получить информацию о рабочих пространствах в конкретной группе

    • Аргументы: workspace_group_id (строка)
    • Возвращает детали рабочих пространств
  • resume_workspace: Возобновить приостановленное рабочее пространство

    • Аргументы: workspace_id (строка)
    • Возобновляет указанное рабочее пространство
  • list_starter_workspaces: Список всех стартовых рабочих пространств, доступных пользователю

    • Аргументы не требуются
    • Возвращает детали доступных стартовых рабочих пространств
  • create_starter_workspace: Создать новое стартовое рабочее пространство

    • Аргументы: параметры конфигурации рабочего пространства
    • Возвращает детали созданного стартового рабочего пространства
  • terminate_starter_workspace: Завершить существующее стартовое рабочее пространство

    • Аргументы: workspace_id (строка)
    • Завершает указанное стартовое рабочее пространство
  • list_regions: Получить список всех регионов, поддерживающих рабочие пространства

    • Аргументы не требуются
    • Возвращает список доступных регионов
  • list_sharedtier_regions: Получить список регионов общего уровня

    • Аргументы не требуются
    • Возвращает список регионов общего уровня
  • run_sql: Выполнить SQL-операции в подключенном рабочем пространстве

    • Аргументы: workspace_id, database, sql_query и параметры подключения
    • Возвращает результаты SQL-запроса в структурированном формате
  • create_notebook_file: Создать новый файл блокнота в SingleStore Spaces

    • Аргументы: notebook_name, content (опционально)
    • Возвращает детали созданного блокнота
  • upload_notebook_file: Загрузить файл блокнота в SingleStore Spaces

    • Аргументы: file_path, notebook_name
    • Возвращает детали загруженного блокнота
  • create_job_from_notebook: Создать запланированное задание из блокнота

    • Аргументы: конфигурация задания, включая notebook_path, schedule_mode и т.д.
    • Возвращает детали созданного задания
  • get_job: Получить информацию о существующем задании

    • Аргументы: job_id (строка)
    • Возвращает детали указанного задания
  • delete_job: Удалить существующее задание

    • Аргументы: job_id (строка)
    • Удаляет указанное задание
  • stage_list_files: Список файлов и папок в файловой системе развертывания Stage

    • Аргументы: deployment_id (строка), path (строка, опционально)
    • Возвращает содержимое папки, включая файлы и подпапки
  • stage_get_file: Получить файл из Stage по пути

    • Аргументы: deployment_id (строка), path (строка), return_type (строка: 'metadata', 'url' или 'content')
    • Возвращает метаданные файла, URL для скачивания или текстовое содержимое
  • stage_create_folder: Создать папку в Stage

    • Аргументы: deployment_id (строка), path (строка)
    • Возвращает статус создания
  • stage_upload_file: Загрузить файл в Stage с текстовым содержимым

    • Аргументы: deployment_id (строка), path (строка), content (строка), local_path (строка)
    • Возвращает статус загрузки
  • stage_move: Переместить или переименовать файл или папку в Stage

    • Аргументы: deployment_id (строка), source_path (строка), destination_path (строка)
    • Возвращает статус перемещения
  • stage_delete: Удалить файл или папку из Stage

    • Аргументы: deployment_id (строка), path (строка)
    • Возвращает статус удаления

Примечание: Инструменты управления организацией (choose_organization и set_organization) доступны только если переменная окружения API-ключа не задана, что позволяет интерактивно выбирать организацию во время OAuth-аутентификации.

Разработка

Предварительные требования

  • Python >= 3.11
  • uv для управления зависимостями

Настройка

  1. Клонируйте репозиторий:
git clone https://github.com/singlestore-labs/mcp-server-singlestore.git
cd mcp-server-singlestore
  1. Установите зависимости:
uv sync --dev
  1. Настройте pre-commit хуки (опционально, но рекомендуется):
uv run pre-commit install

Рабочий процесс разработки

# 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

Запуск тестов

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

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

Качество кода

Мы используем Ruff как для линтинга, так и для форматирования:

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

Процесс выпуска

Релизы управляются через git-теги и автоматическую публикацию в PyPI:

  1. Создание релиза: ./scripts/release.sh (интерактивный инструмент)
  2. Автоматическая публикация: Запускается при пуше тегов версий
  3. Никаких ручных загрузок в PyPI — полностью автоматизированный пайплайн

См. scripts/dev-workflow.md для подробной документации по рабочему процессу.