SingleStore MCP Server
oficialInteraja com a plataforma de banco de dados SingleStore
Documentação
Servidor MCP SingleStore
[Model Context Protocol]((https://modelcontextprotocol.io/introduction) (MCP) é um protocolo padronizado projetado para gerenciar o contexto entre modelos de linguagem de grande escala (LLMs) e sistemas externos. Este repositório fornece um instalador e um Servidor MCP para o SingleStore, permitindo uma integração perfeita.
Com o MCP, você pode usar o Claude Desktop, Claude Code, Cursor ou qualquer cliente MCP compatível para interagir com o SingleStore usando linguagem natural, facilitando a execução de operações complexas sem esforço.
💡 Dica Profissional: Não sabe o que o servidor MCP pode fazer? Basta chamar o prompt /help no seu chat!
Requisitos
- Python >= v3.10.0
- uvx instalado no seu ambiente Python
- VS Code, Cursor, Windsurf, Claude Desktop, Claude Code, Goose ou qualquer outro cliente MCP
Primeiros passos
Primeiros passos
Primeiro, instale o servidor MCP SingleStore com o seu cliente.
A configuração padrão funciona na maioria das ferramentas:
{
"mcpServers": {
"singlestore-mcp-server": {
"command": "uvx",
"args": [
"singlestore-mcp-server",
"start"
]
}
}
}
Sem necessidade de chaves de API, tokens ou variáveis de ambiente! O servidor gerencia automaticamente a autenticação via OAuth no navegador quando iniciado.
Claude Desktop
Configuração automática:
uvx singlestore-mcp-server init --client=claude-desktop
Configuração manual: Siga o guia de instalação do MCP, use a configuração padrão acima.
Claude Code
Configuração automática:
uvx singlestore-mcp-server init --client=claude-code
Isso executará automaticamente o comando Claude CLI para você.
Configuração manual:
claude mcp add singlestore-mcp-server uvx singlestore-mcp-server start
Cursor
Configuração automática:
uvx singlestore-mcp-server init --client=cursor
Configuração manual:
Vá para Cursor Settings -> MCP -> Add new MCP Server. Dê o nome que preferir, use o tipo command com o comando uvx singlestore-mcp-server start. Você também pode verificar a configuração ou adicionar argumentos de linha de comando clicando em Edit.
VS Code
Configuração automática:
uvx singlestore-mcp-server init --client=vscode
Configuração manual: Siga o guia de instalação do MCP, use a configuração padrão acima. Você também pode instalar usando a CLI do VS Code:
code --add-mcp '{"name":"singlestore-mcp-server","command":"uvx","args":["singlestore-mcp-server","start"]}'
Após a instalação, o servidor MCP SingleStore estará disponível para uso com o seu agente GitHub Copilot no VS Code.
Windsurf
Configuração automática:
uvx singlestore-mcp-server init --client=windsurf
Configuração manual: Siga a documentação do MCP do Windsurf. Use a configuração padrão acima.
Gemini CLI
Configuração automática:
uvx singlestore-mcp-server init --client=gemini
Configuração manual: Siga o guia de instalação do MCP, use a configuração padrão acima.
LM Studio
Configuração automática:
uvx singlestore-mcp-server init --client=lm-studio
Configuração manual:
Vá para Program na barra lateral direita -> Install -> Edit mcp.json. Use a configuração padrão acima.
Goose
Apenas configuração manual:
Vá para Advanced settings -> Extensions -> Add custom extension. Dê o nome que preferir, use o tipo STDIO e defina o command como uvx singlestore-mcp-server start. Clique em "Add Extension".
Qodo Gen
Apenas configuração manual: Abra o painel de chat do Qodo Gen no VSCode ou IntelliJ → Conectar mais ferramentas → + Adicionar novo MCP → Cole a configuração padrão acima.
Clique em Salvar.
Usando Docker
NOTA: Uma chave de API é necessária ao usar Docker porque o fluxo OAuth não é suportado para servidores executando em contêineres 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"
]
}
}
}
Você mesmo pode construir a imagem Docker:
docker build -t singlestore/mcp-server-singlestore .
Para maior segurança, recomendamos usar o Docker Desktop para configurar o servidor MCP SingleStore — veja este post no blog para detalhes sobre o novo Catálogo MCP do Docker.
Componentes
Ferramentas
O servidor implementa as seguintes ferramentas:
-
get_user_info: Recupera detalhes sobre o usuário atual
- Nenhum argumento necessário
- Retorna informações e detalhes do usuário
-
organization_info: Recupera detalhes sobre a organização atual do usuário
- Nenhum argumento necessário
- Retorna detalhes da organização
-
choose_organization: Escolhe entre as organizações disponíveis (disponível apenas quando a variável de ambiente da chave de API não está definida)
- Nenhum argumento necessário
- Retorna uma lista de organizações disponíveis para escolha
-
set_organization: Define a organização ativa (disponível apenas quando a variável de ambiente da chave de API não está definida)
- Argumentos:
organization_id(string) - Define a organização especificada como ativa
- Argumentos:
-
workspace_groups_info: Recupera detalhes sobre os grupos de workspace acessíveis ao usuário
- Nenhum argumento necessário
- Retorna detalhes dos grupos de workspace
-
workspaces_info: Recupera detalhes sobre os workspaces em um grupo de workspace específico
- Argumentos:
workspace_group_id(string) - Retorna detalhes dos workspaces
- Argumentos:
-
resume_workspace: Retoma um workspace suspenso
- Argumentos:
workspace_id(string) - Retoma o workspace especificado
- Argumentos:
-
list_starter_workspaces: Lista todos os workspaces iniciais acessíveis ao usuário
- Nenhum argumento necessário
- Retorna detalhes dos workspaces iniciais disponíveis
-
create_starter_workspace: Cria um novo workspace inicial
- Argumentos: parâmetros de configuração do workspace
- Retorna detalhes do workspace inicial criado
-
terminate_starter_workspace: Encerra um workspace inicial existente
- Argumentos:
workspace_id(string) - Encerra o workspace inicial especificado
- Argumentos:
-
list_regions: Recupera uma lista de todas as regiões que suportam workspaces
- Nenhum argumento necessário
- Retorna uma lista de regiões disponíveis
-
list_sharedtier_regions: Recupera uma lista de regiões de tier compartilhado
- Nenhum argumento necessário
- Retorna uma lista de regiões de tier compartilhado
-
run_sql: Executa operações SQL em um workspace conectado
- Argumentos:
workspace_id,database,sql_querye parâmetros de conexão - Retorna os resultados da consulta SQL em um formato estruturado
- Argumentos:
-
create_notebook_file: Cria um novo arquivo de notebook no SingleStore Spaces
- Argumentos:
notebook_name,content(opcional) - Retorna detalhes do notebook criado
- Argumentos:
-
upload_notebook_file: Envia um arquivo de notebook para o SingleStore Spaces
- Argumentos:
file_path,notebook_name - Retorna detalhes do notebook enviado
- Argumentos:
-
create_job_from_notebook: Cria um job agendado a partir de um notebook
- Argumentos: configuração do job incluindo
notebook_path,schedule_mode, etc. - Retorna detalhes do job criado
- Argumentos: configuração do job incluindo
-
get_job: Recupera detalhes de um job existente
- Argumentos:
job_id(string) - Retorna detalhes do job especificado
- Argumentos:
-
delete_job: Exclui um job existente
- Argumentos:
job_id(string) - Exclui o job especificado
- Argumentos:
-
stage_list_files: Lista arquivos e pastas no sistema de arquivos de uma implantação Stage
- Argumentos:
deployment_id(string),path(string, opcional) - Retorna o conteúdo da pasta, incluindo arquivos e subpastas
- Argumentos:
-
stage_get_file: Obtém um arquivo do Stage pelo caminho
- Argumentos:
deployment_id(string),path(string),return_type(string: 'metadata', 'url' ou 'content') - Retorna metadados do arquivo, uma URL de download ou conteúdo de texto
- Argumentos:
-
stage_create_folder: Cria uma pasta no Stage
- Argumentos:
deployment_id(string),path(string) - Retorna o status da criação
- Argumentos:
-
stage_upload_file: Envia um arquivo para o Stage com conteúdo de texto
- Argumentos:
deployment_id(string),path(string),content(string),local_path(string) - Retorna o status do envio
- Argumentos:
-
stage_move: Move ou renomeia um arquivo ou pasta no Stage
- Argumentos:
deployment_id(string),source_path(string),destination_path(string) - Retorna o status da movimentação
- Argumentos:
-
stage_delete: Exclui um arquivo ou pasta do Stage
- Argumentos:
deployment_id(string),path(string) - Retorna o status da exclusão
- Argumentos:
Nota: As ferramentas de gerenciamento de organização (choose_organization e set_organization) estão disponíveis apenas quando a variável de ambiente da chave de API não está definida, permitindo a seleção interativa da organização durante a autenticação OAuth.
Desenvolvimento
Pré-requisitos
- Python >= 3.11
- uv para gerenciamento de dependências
Configuração
- Clone o repositório:
git clone https://github.com/singlestore-labs/mcp-server-singlestore.git
cd mcp-server-singlestore
- Instale as dependências:
uv sync --dev
- Configure os hooks de pre-commit (opcional, mas recomendado):
uv run pre-commit install
Fluxo de Trabalho de Desenvolvimento
# 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
Executando Testes
# Run test suite with coverage
./scripts/test.sh
# Or use pytest directly
uv run pytest
uv run pytest --cov=src --cov-report=html
Qualidade do Código
Usamos Ruff tanto para linting quanto para formatação:
# 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/
Processo de Lançamento
Os lançamentos são gerenciados por meio de tags git e publicação automatizada no PyPI:
- Criar lançamento:
./scripts/release.sh(ferramenta interativa) - Publicação automática: Acionada ao enviar tags de versão
- Sem uploads manuais para o PyPI - pipeline totalmente automatizado
Consulte scripts/dev-workflow.md para documentação detalhada do fluxo de trabalho.