AutoPeças MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| COL_NOME | No | Optional: Custom column name for 'Nome' | |
| COL_MARCA | No | Optional: Custom column name for 'Marca' | |
| COL_PRECO | No | Optional: Custom column name for 'Preço' | |
| COL_CODIGO | No | Optional: Custom column name for 'Código' | |
| SHEET_NAME | Yes | The name of the specific tab/sheet within the spreadsheet (e.g., AutoPeças) | |
| COL_ESTOQUE | No | Optional: Custom column name for 'Estoque' | |
| COL_CATEGORIA | No | Optional: Custom column name for 'Categoria' | |
| COL_DESCRICAO | No | Optional: Custom column name for 'Descrição' | |
| COL_FORNECEDOR | No | Optional: Custom column name for 'Fornecedor' | |
| SPREADSHEET_ID | Yes | The ID of the Google Spreadsheet, found in the URL: docs.google.com/spreadsheets/d/{ID}/edit | |
| COL_LOCALIZACAO | No | Optional: Custom column name for 'Localização' | |
| GOOGLE_CREDENTIALS_PATH | Yes | The local file path to the Google Service Account JSON credentials file |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| autopecas_buscar_pecaA | Busca peças na base AutoPeças por texto livre (nome, código ou descrição). Args: params (BuscarPecaInput): - query (str): Texto para busca (ex: 'filtro', 'vela', 'F-1023') - categoria (Optional[str]): Filtro por categoria (ex: 'Motor') - marca (Optional[str]): Filtro por marca (ex: 'Bosch') - apenas_em_estoque (bool): Se True, apenas peças com estoque disponível - limit (int): Máximo de resultados (padrão: 20) - offset (int): Paginação (padrão: 0) - formato (str): 'markdown' ou 'json' Returns: str: Lista de peças com código, nome, categoria, preço e estoque. Exemplos: - "Buscar filtros de óleo" → query="filtro de óleo" - "Velas Bosch disponíveis" → query="vela", marca="Bosch", apenas_em_estoque=True |
| autopecas_listar_pecasA | Lista todas as peças cadastradas na base AutoPeças com paginação e filtros opcionais. Args: params (ListarPecasInput): - categoria (Optional[str]): Filtrar por categoria - marca (Optional[str]): Filtrar por marca - apenas_em_estoque (bool): Apenas peças com estoque > 0 - limit (int): Máximo de resultados (padrão: 20) - offset (int): Paginação (padrão: 0) - formato (str): 'markdown' ou 'json' Exemplos: - "Listar peças de Freios" → categoria="Freios" - "Peças Bosch em estoque" → marca="Bosch", apenas_em_estoque=True |
| autopecas_obter_detalhesA | Retorna todos os dados de uma peça específica pelo código único. Args: params (ObterDetalhesPecaInput): - codigo (str): Código único da peça (ex: 'F-1023') - formato (str): 'markdown' ou 'json' Exemplos: - "Detalhes de F-1023" → codigo="F-1023" |
| autopecas_listar_categoriasB | Lista todas as categorias de peças com contagem total e em estoque por categoria. Args: params (ListarCategoriasInput): - formato (str): 'markdown' ou 'json' |
| autopecas_verificar_estoqueA | Verifica estoque de peças específicas ou exibe resumo geral por categoria. Se Args: params (VerificarEstoqueInput): - codigos (Optional[List[str]]): Códigos das peças a verificar - categoria (Optional[str]): Filtrar resumo por categoria - formato (str): 'markdown' ou 'json' Exemplos: - "Estoque de F-1023 e BP-0042" → codigos=["F-1023", "BP-0042"] - "Resumo do estoque de Freios" → categoria="Freios" |
| autopecas_listar_marcasA | Lista todas as marcas/fabricantes com contagem de peças por marca. Args: params (ListarMarcasInput): - categoria (Optional[str]): Filtrar por categoria - formato (str): 'markdown' ou 'json' Exemplos: - "Marcas de freios" → categoria="Freios" - "Listar todos os fabricantes" → (sem parâmetros) |
| leitos_listar_leitosA | Lista todos os leitos hospitalares com paginação e filtros combinados. Visão completa equivalente ao Agent Diretoria do N8N — sem restrição de tipo de quarto. Filtrável por tipo, Status_Ocupacao e Status_Limpeza. Colunas da planilha: ID_Leito, Quarto, Tipo_Quarto, Status_Ocupacao, Status_Limpeza, Paciente, Ultima_Limpeza. Args: params (ListarLeitosInput): - tipo_quarto (Optional[str]): 'Enfermaria', 'UTI', 'Apartamento', 'Semi-Intensivo' - status_ocupacao (Optional[str]): 'Disponível', 'Ocupado', 'Reservado' - status_limpeza (Optional[str]): 'Concluído', 'Pendente', 'Em Andamento' - limit (int): Máximo de resultados (padrão: 20) - offset (int): Paginação (padrão: 0) - formato (str): 'markdown' ou 'json' Exemplos: - "Todos os leitos de UTI" → tipo_quarto="UTI" - "Leitos com limpeza pendente" → status_limpeza="Pendente" - "Leitos disponíveis" → status_ocupacao="Disponível" |
| leitos_listar_enfermariaA | Lista apenas os leitos do tipo Enfermaria (Tipo_Quarto = 'Enfermaria'). Equivale ao Agent Enfermaria do N8N. Suporta os três relatórios do menu:
Args: params (ListarEnfermariaInput): - status_ocupacao (Optional[str]): 'Disponível', 'Ocupado', 'Reservado' - status_limpeza (Optional[str]): 'Concluído', 'Pendente', 'Em Andamento' - limit (int): Máximo de resultados (padrão: 20) - offset (int): Paginação (padrão: 0) - formato (str): 'markdown' ou 'json' Exemplos: - "Leitos de enfermaria disponíveis" → status_ocupacao="Disponível" - "Limpeza pendente na enfermaria" → status_limpeza="Pendente" |
| leitos_listar_utiA | Lista apenas os leitos do tipo UTI (Tipo_Quarto = 'UTI'). Equivale ao Agent UTI do N8N. Suporta os dois relatórios do menu:
Args: params (ListarUTIInput): - status_ocupacao (Optional[str]): 'Disponível', 'Ocupado', 'Reservado' - status_limpeza (Optional[str]): 'Concluído', 'Pendente', 'Em Andamento' - limit (int): Máximo de resultados (padrão: 20) - offset (int): Paginação (padrão: 0) - formato (str): 'markdown' ou 'json' Exemplos: - "Pacientes na UTI" → status_ocupacao="Ocupado" - "Leitos de UTI disponíveis" → status_ocupacao="Disponível" - "Dias de internação na UTI" → (sem filtros, ver Data_Internacao no resultado) |
| leitos_verificar_disponibilidadeA | Exibe leitos com Status_Ocupacao = 'Disponível', com resumo por tipo de quarto. Ferramenta central para admissão de pacientes: identifica quais leitos estão livres para ocupação imediata. Args: params (VerificarDisponibilidadeInput): - tipo_quarto (Optional[str]): Filtrar por tipo (ex: 'UTI', 'Enfermaria') - formato (str): 'markdown' ou 'json' Exemplos: - "Leitos de UTI disponíveis" → tipo_quarto="UTI" - "Quantos leitos livres temos?" → (sem parâmetros) |
| leitos_obter_detalhes_leitoA | Retorna todos os dados de um leito específico pelo campo ID_Leito. Args: params (ObterDetalhesLeitoInput): - leito_id (str): Valor do campo ID_Leito (ex: 'A-101', 'UTI-05') - formato (str): 'markdown' ou 'json' Exemplos: - "Detalhes do leito A-101" → leito_id="A-101" - "Quem está no UTI-05?" → leito_id="UTI-05" |
| leitos_resumo_ocupacaoA | Dashboard de ocupação e limpeza agrupado por Tipo_Quarto. Exibe dois painéis:
Equivale à visão do Agent Diretoria e suporta os relatórios de Ocupação e Status de Limpeza do Agent Enfermaria. Args: params (ResumoOcupacaoInput): - tipo_quarto (Optional[str]): Filtrar por tipo de quarto - formato (str): 'markdown' ou 'json' Exemplos: - "Dashboard geral" → (sem parâmetros) - "Resumo da enfermaria" → tipo_quarto="Enfermaria" |
| leitos_atualizar_status_limpezaA | Atualiza o campo Status_Limpeza de um leito na planilha Google Sheets. Operação de ESCRITA — equivale ao nó 'Atualizar Base de Dados Hospital' do N8N (mcp-all-nodes.json). Localiza o leito pelo ID_Leito e atualiza apenas o campo Status_Limpeza. Requer que a Service Account tenha permissão de EDITOR na planilha. Args: params (AtualizarStatusLimpezaInput): - leito_id (str): ID do leito a atualizar (campo ID_Leito, ex: 'A-101') - status_limpeza (str): Novo status (ex: 'Concluído', 'Pendente', 'Em Andamento') Returns: str: Confirmação da atualização ou mensagem de erro. Exemplos: - "Marcar limpeza do A-101 como concluída" → leito_id="A-101", status_limpeza="Concluído" - "Sinalizar UTI-05 com limpeza pendente" → leito_id="UTI-05", status_limpeza="Pendente" |
| leitos_enviar_notificacaoA | Envia notificação por e-mail via Gmail SMTP. Equivale ao nó 'Enviar Email' (gmailTool) disponível para todos os agentes (Diretoria, Enfermaria, UTI) em mcp-all-nodes.json. Requer GMAIL_USER e GMAIL_APP_PASSWORD no .env. Crie uma Senha de App em: myaccount.google.com/apppasswords Args: params (EnviarNotificacaoInput): - destinatario (str): E-mail do destinatário - assunto (str): Assunto do e-mail - mensagem (str): Corpo da mensagem (texto simples) Exemplos: - "Avisar que leito A-101 está disponível" → destinatario="equipe@hospital.com.br", assunto="Leito A-101 disponível", mensagem="O leito A-101 foi liberado e está pronto." |
| leitos_enviar_smsA | Envia SMS via Twilio REST API. Equivale ao nó 'Enviar SMS' (twilioTool) disponível para os agentes Enfermaria e UTI em mcp-all-nodes.json. Requer TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN e TWILIO_FROM_NUMBER no .env. Args: params (EnviarSMSInput): - destinatario (str): Número no formato E.164 (ex: '+5511952767064') - mensagem (str): Texto do SMS (até 160 chars para SMS simples) Exemplos: - "Avisar por SMS que UTI-05 foi liberada" → destinatario="+5511999999999", mensagem="Leito UTI-05 disponível para nova internação." |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
The tool set suffers from significant ambiguity due to overlapping purposes. For example, 'autopecas_listar_pecas' and 'autopecas_buscar_peca' both retrieve parts with similar filters, and 'leitos_listar_leitos', 'leitos_listar_enfermaria', and 'leitos_listar_uti' all list beds with overlapping functionality. This creates confusion about which tool to use for specific queries, especially within each domain.
Naming is mostly consistent with a clear prefix pattern ('autopecas_' and 'leitos_') and verb_noun structure (e.g., 'listar_categorias', 'obter_detalhes'). However, there are minor deviations like 'autopecas_buscar_peca' (using 'buscar' instead of 'listar' or 'pesquisar') and 'leitos_verificar_disponibilidade' (which could align better with others like 'listar_disponibilidade'). Overall, the conventions are readable and predictable.
With 15 tools, the count is borderline high but reasonable given the two distinct domains (auto parts and hospital beds). However, the set feels heavy due to redundant tools within each domain (e.g., multiple listing tools for beds), suggesting it could be streamlined without losing functionality. It's not extreme, but it approaches the upper limit of what's well-scoped.
For both domains, the tool surface covers core operations well: search, list, get details, and check status for auto parts; and list, update, notify, and check availability for hospital beds. Minor gaps exist, such as no update or delete tools for auto parts (e.g., modifying part details) and no direct patient admission tools for beds, but agents can work around these with the available tools.