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
[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 для управления зависимостями
Настройка
- Клонируйте репозиторий:
git clone https://github.com/singlestore-labs/mcp-server-singlestore.git
cd mcp-server-singlestore
- Установите зависимости:
uv sync --dev
- Настройте 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:
- Создание релиза:
./scripts/release.sh(интерактивный инструмент) - Автоматическая публикация: Запускается при пуше тегов версий
- Никаких ручных загрузок в PyPI — полностью автоматизированный пайплайн
См. scripts/dev-workflow.md для подробной документации по рабочему процессу.