SingleStore
offiziellInteragieren Sie mit der SingleStore-Datenbankplattform
Was kann man mit Single Store MCP machen?
- Rufen Sie Ihre Benutzer- und Organisationsdetails ab — Bitten Sie den Assistenten, Ihre Kontoinformationen mit
get_user_infoundorganization_infoabzurufen. - Arbeitsbereiche verwalten — Listen Sie Arbeitsbereiche auf, erstellen, setzen Sie sie fort oder beenden Sie sie mit
workspaces_info,create_starter_workspace,resume_workspaceundterminate_starter_workspace. - SQL-Abfragen in einem Arbeitsbereich ausführen — Führen Sie SQL in einem verbundenen Arbeitsbereich aus, indem Sie die Abfrage und Verbindungsdetails über
run_sqlangeben. - Notebooks erstellen und planen — Erstellen Sie Notebooks mit
create_notebook_file, laden Sie Dateien mitupload_notebook_filehoch und planen Sie Jobs mitcreate_job_from_notebook. - Stage-Dateien verwalten — Listen Sie Dateien in Stage-Bereitstellungen auf, laden Sie sie hoch, verschieben Sie sie und löschen Sie sie mit
stage_list_files,stage_upload_file,stage_moveundstage_delete.
Dokumentation
SingleStore MCP-Server
[Model Context Protocol]((https://modelcontextprotocol.io/introduction) (MCP) ist ein standardisiertes Protokoll zur Verwaltung des Kontexts zwischen großen Sprachmodellen (LLMs) und externen Systemen. Dieses Repository stellt einen Installer und einen MCP-Server für SingleStore bereit und ermöglicht so eine nahtlose Integration.
Mit MCP können Sie Claude Desktop, Claude Code, Cursor oder jeden kompatiblen MCP-Client verwenden, um mit SingleStore in natürlicher Sprache zu interagieren und komplexe Vorgänge mühelos durchzuführen.
💡 Profi-Tipp: Sie sind unsicher, was der MCP-Server alles kann? Rufen Sie einfach den Prompt /help in Ihrem Chat auf!
Voraussetzungen
- Python >= v3.10.0
- uvx in Ihrer Python-Umgebung installiert
- VS Code, Cursor, Windsurf, Claude Desktop, Claude Code, Goose oder ein anderer MCP-Client
Erste Schritte
Erste Schritte
Installieren Sie zunächst den SingleStore MCP-Server mit Ihrem Client.
Die Standardkonfiguration funktioniert in den meisten Tools:
{
"mcpServers": {
"singlestore-mcp-server": {
"command": "uvx",
"args": [
"singlestore-mcp-server",
"start"
]
}
}
}
Keine API-Schlüssel, Tokens oder Umgebungsvariablen erforderlich! Der Server übernimmt die Authentifizierung beim Start automatisch über den Browser-OAuth.
Claude Desktop
Automatische Einrichtung:
uvx singlestore-mcp-server init --client=claude-desktop
Manuelle Einrichtung: Befolgen Sie die MCP-Installations-Anleitung und verwenden Sie die obige Standardkonfiguration.
Claude Code
Automatische Einrichtung:
uvx singlestore-mcp-server init --client=claude-code
Dadurch wird der Claude-CLI-Befehl automatisch für Sie ausgeführt.
Manuelle Einrichtung:
claude mcp add singlestore-mcp-server uvx singlestore-mcp-server start
Cursor
Automatische Einrichtung:
uvx singlestore-mcp-server init --client=cursor
Manuelle Einrichtung:
Gehen Sie zu Cursor Settings -> MCP -> Add new MCP Server. Vergeben Sie einen beliebigen Namen, verwenden Sie den Typ command mit dem Befehl uvx singlestore-mcp-server start. Sie können die Konfiguration auch überprüfen oder Befehlszeilenargumente hinzufügen, indem Sie auf Edit klicken.
VS Code
Automatische Einrichtung:
uvx singlestore-mcp-server init --client=vscode
Manuelle Einrichtung: Befolgen Sie die MCP-Installations-Anleitung und verwenden Sie die obige Standardkonfiguration. Sie können die Installation auch über die VS Code-CLI durchführen:
code --add-mcp '{"name":"singlestore-mcp-server","command":"uvx","args":["singlestore-mcp-server","start"]}'
Nach der Installation steht der SingleStore MCP-Server zur Verwendung mit Ihrem GitHub Copilot-Agenten in VS Code bereit.
Windsurf
Automatische Einrichtung:
uvx singlestore-mcp-server init --client=windsurf
Manuelle Einrichtung: Befolgen Sie die Windsurf MCP-Dokumentation. Verwenden Sie die obige Standardkonfiguration.
Gemini CLI
Automatische Einrichtung:
uvx singlestore-mcp-server init --client=gemini
Manuelle Einrichtung: Befolgen Sie die MCP-Installations-Anleitung und verwenden Sie die obige Standardkonfiguration.
LM Studio
Automatische Einrichtung:
uvx singlestore-mcp-server init --client=lm-studio
Manuelle Einrichtung:
Gehen Sie in der rechten Seitenleiste zu Program -> Install -> Edit mcp.json. Verwenden Sie die obige Standardkonfiguration.
Goose
Nur manuelle Einrichtung:
Gehen Sie zu Advanced settings -> Extensions -> Add custom extension. Vergeben Sie einen beliebigen Namen, verwenden Sie den Typ STDIO und setzen Sie command auf uvx singlestore-mcp-server start. Klicken Sie auf „Add Extension“.
Qodo Gen
Nur manuelle Einrichtung: Öffnen Sie das Qodo Gen-Chat-Panel in VSCode oder IntelliJ → Weitere Tools verbinden → + Neues MCP hinzufügen → Fügen Sie die obige Standardkonfiguration ein.
Klicken Sie auf Speichern.
Docker verwenden
HINWEIS: Bei der Verwendung von Docker ist ein API-Schlüssel erforderlich, da der OAuth-Ablauf für Server, die in Docker-Containern ausgeführt werden, nicht unterstützt wird.
{
"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"
]
}
}
}
Sie können das Docker-Image selbst erstellen:
docker build -t singlestore/mcp-server-singlestore .
Für mehr Sicherheit empfehlen wir die Verwendung von Docker Desktop zur Konfiguration des SingleStore MCP-Servers – siehe diesen Blogbeitrag für Details zum neuen MCP-Katalog von Docker.
Komponenten
Tools
Der Server implementiert die folgenden Tools:
-
get_user_info: Ruft Details zum aktuellen Benutzer ab
- Keine Argumente erforderlich
- Gibt Benutzerinformationen und Details zurück
-
organization_info: Ruft Details zur aktuellen Organisation des Benutzers ab
- Keine Argumente erforderlich
- Gibt Details der Organisation zurück
-
choose_organization: Auswahl aus verfügbaren Organisationen (nur verfügbar, wenn die Umgebungsvariable für den API-Schlüssel nicht gesetzt ist)
- Keine Argumente erforderlich
- Gibt eine Liste der verfügbaren Organisationen zur Auswahl zurück
-
set_organization: Legt die aktive Organisation fest (nur verfügbar, wenn die Umgebungsvariable für den API-Schlüssel nicht gesetzt ist)
- Argumente:
organization_id(String) - Legt die angegebene Organisation als aktiv fest
- Argumente:
-
workspace_groups_info: Ruft Details zu den für den Benutzer zugänglichen Arbeitsbereichsgruppen ab
- Keine Argumente erforderlich
- Gibt Details der Arbeitsbereichsgruppen zurück
-
workspaces_info: Ruft Details zu den Arbeitsbereichen in einer bestimmten Arbeitsbereichsgruppe ab
- Argumente:
workspace_group_id(String) - Gibt Details der Arbeitsbereiche zurück
- Argumente:
-
resume_workspace: Setzt einen angehaltenen Arbeitsbereich fort
- Argumente:
workspace_id(String) - Setzt den angegebenen Arbeitsbereich fort
- Argumente:
-
list_starter_workspaces: Listet alle für den Benutzer zugänglichen Starter-Arbeitsbereiche auf
- Keine Argumente erforderlich
- Gibt Details der verfügbaren Starter-Arbeitsbereiche zurück
-
create_starter_workspace: Erstellt einen neuen Starter-Arbeitsbereich
- Argumente: Konfigurationsparameter für den Arbeitsbereich
- Gibt Details des erstellten Starter-Arbeitsbereichs zurück
-
terminate_starter_workspace: Beendet einen bestehenden Starter-Arbeitsbereich
- Argumente:
workspace_id(String) - Beendet den angegebenen Starter-Arbeitsbereich
- Argumente:
-
list_regions: Ruft eine Liste aller Regionen ab, die Arbeitsbereiche unterstützen
- Keine Argumente erforderlich
- Gibt eine Liste der verfügbaren Regionen zurück
-
list_sharedtier_regions: Ruft eine Liste der Shared-Tier-Regionen ab
- Keine Argumente erforderlich
- Gibt eine Liste der Shared-Tier-Regionen zurück
-
run_sql: Führt SQL-Operationen auf einem verbundenen Arbeitsbereich aus
- Argumente:
workspace_id,database,sql_queryund Verbindungsparameter - Gibt die Ergebnisse der SQL-Abfrage in einem strukturierten Format zurück
- Argumente:
-
create_notebook_file: Erstellt eine neue Notebook-Datei in SingleStore Spaces
- Argumente:
notebook_name,content(optional) - Gibt Details des erstellten Notebooks zurück
- Argumente:
-
upload_notebook_file: Lädt eine Notebook-Datei in SingleStore Spaces hoch
- Argumente:
file_path,notebook_name - Gibt Details des hochgeladenen Notebooks zurück
- Argumente:
-
create_job_from_notebook: Erstellt einen geplanten Auftrag aus einem Notebook
- Argumente: Auftragskonfiguration einschließlich
notebook_path,schedule_modeusw. - Gibt Details des erstellten Auftrags zurück
- Argumente: Auftragskonfiguration einschließlich
-
get_job: Ruft Details eines bestehenden Auftrags ab
- Argumente:
job_id(String) - Gibt Details des angegebenen Auftrags zurück
- Argumente:
-
delete_job: Löscht einen bestehenden Auftrag
- Argumente:
job_id(String) - Löscht den angegebenen Auftrag
- Argumente:
-
stage_list_files: Listet Dateien und Ordner im Dateisystem einer Stage-Bereitstellung auf
- Argumente:
deployment_id(String),path(String, optional) - Gibt Ordnerinhalte einschließlich Dateien und Unterordner zurück
- Argumente:
-
stage_get_file: Ruft eine Datei aus Stage anhand des Pfads ab
- Argumente:
deployment_id(String),path(String),return_type(String: 'metadata', 'url' oder 'content') - Gibt Dateimetadaten, eine Download-URL oder Textinhalt zurück
- Argumente:
-
stage_create_folder: Erstellt einen Ordner in Stage
- Argumente:
deployment_id(String),path(String) - Gibt den Erstellungsstatus zurück
- Argumente:
-
stage_upload_file: Lädt eine Datei mit Textinhalt in Stage hoch
- Argumente:
deployment_id(String),path(String),content(String),local_path(String) - Gibt den Upload-Status zurück
- Argumente:
-
stage_move: Verschiebt oder benennt eine Datei oder einen Ordner in Stage um
- Argumente:
deployment_id(String),source_path(String),destination_path(String) - Gibt den Verschiebestatus zurück
- Argumente:
-
stage_delete: Löscht eine Datei oder einen Ordner aus Stage
- Argumente:
deployment_id(String),path(String) - Gibt den Löschstatus zurück
- Argumente:
Hinweis: Die Tools zur Organisationsverwaltung (choose_organization und set_organization) sind nur verfügbar, wenn die Umgebungsvariable für den API-Schlüssel nicht gesetzt ist, was eine interaktive Organisationsauswahl während der OAuth-Authentifizierung ermöglicht.
Entwicklung
Voraussetzungen
- Python >= 3.11
- uv für die Abhängigkeitsverwaltung
Einrichtung
- Repository klonen:
git clone https://github.com/singlestore-labs/mcp-server-singlestore.git
cd mcp-server-singlestore
- Abhängigkeiten installieren:
uv sync --dev
- Pre-Commit-Hooks einrichten (optional, aber empfohlen):
uv run pre-commit install
Entwicklungsworkflow
# 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
Tests ausführen
# Run test suite with coverage
./scripts/test.sh
# Or use pytest directly
uv run pytest
uv run pytest --cov=src --cov-report=html
Codequalität
Wir verwenden Ruff sowohl für Linting als auch für Formatierung:
# 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/
Release-Prozess
Releases werden über Git-Tags und automatisierte PyPI-Veröffentlichung verwaltet:
- Release erstellen:
./scripts/release.sh(interaktives Tool) - Automatische Veröffentlichung: Wird durch das Pushen von Version-Tags ausgelöst
- Keine manuellen PyPI-Uploads – vollständig automatisierte Pipeline
Siehe scripts/dev-workflow.md für eine detaillierte Workflow-Dokumentation.