loading…
Search for a command to run...
loading…
A Python-based MCP server that exposes auto parts inventory data stored in Google Sheets. It enables AI assistants to search, list, and check stock levels for a
A Python-based MCP server that exposes auto parts inventory data stored in Google Sheets. It enables AI assistants to search, list, and check stock levels for automotive parts via the Model Context Protocol.
MCP Server em Python que lê e escreve em abas de uma planilha Google Sheets via protocolo MCP — compatível com Claude Desktop, Claude Code e qualquer MCP Client (inclusive o nó mcpClientTool do N8N).
O servidor cobre dois domínios em um único processo, cada um mapeado para uma aba da mesma planilha:
| Domínio | Aba | Tools |
|---|---|---|
| AutoPeças (AutoMax) | AutoPeças (gid=0) |
6 tools — somente leitura |
| Leitos Hospitalares | Leitos (gid=1562350974) |
9 tools — leitura, escrita, e-mail e SMS |
pipleitos_atualizar_status_limpeza)cd mcp-alura
uv sync # ou: pip install -e .
1. Credenciais Google (Service Account)
2. Variáveis de ambiente
cp .env.example .env
Edite o .env com no mínimo:
SPREADSHEET_ID=1zt4h2v3ldK3zELNNmvyn02elEB9dHdfXD5q85ZYh2k0
AUTOPECAS_SHEET_NAME=AutoPeças
LEITOS_SHEET_NAME=Leitos
GOOGLE_CREDENTIALS_PATH=/caminho/para/service_account.json
# Para leitos_enviar_notificacao (e-mail):
[email protected]
GMAIL_APP_PASSWORD=xxxx_xxxx_xxxx_xxxx
# Para leitos_enviar_sms:
TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TWILIO_AUTH_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TWILIO_FROM_NUMBER=+18647139932
O
SPREADSHEET_IDestá na URL:docs.google.com/spreadsheets/d/**{ID}**/edit
Aba AutoPeças:
| Código | Nome | Categoria | Marca | Preço | Estoque | Fornecedor | Descrição | Localização |
|---|---|---|---|---|---|---|---|---|
| F-1023 | Filtro de Óleo | Motor | Bosch | 35.90 | 48 | AutoDist | ... | Prateleira A3 |
Aba Leitos — colunas confirmadas pelo schema do nó N8N:
| ID_Leito | Quarto | Tipo_Quarto | Status_Ocupacao | Status_Limpeza | Paciente | Ultima_Limpeza |
|---|---|---|---|---|---|---|
| A-101 | Quarto 10 | Enfermaria | Ocupado | Concluído | João Silva | 2025-03-28 |
| UTI-05 | UTI Norte | UTI | Disponível | Pendente | — | 2025-03-27 |
Os nomes das colunas podem ser ajustados no
.envcomCOL_*eLEITOS_COL_*.
| Tool | O que faz |
|---|---|
autopecas_buscar_peca |
Busca por nome, código ou descrição |
autopecas_listar_pecas |
Lista o catálogo com paginação e filtros |
autopecas_obter_detalhes |
Detalhes completos de uma peça pelo código |
autopecas_listar_categorias |
Categorias com contagem de peças |
autopecas_verificar_estoque |
Estoque por código ou resumo por categoria |
autopecas_listar_marcas |
Fabricantes com contagem de peças |
Mapeamento dos agentes N8N (mcp-all-nodes.json) para tools Python:
| Agent N8N | Filtro | Tools equivalentes |
|---|---|---|
| Agent Diretoria | Acesso total | leitos_listar_leitos, leitos_resumo_ocupacao, leitos_verificar_disponibilidade, leitos_obter_detalhes_leito |
| Agent Enfermaria | Tipo_Quarto = Enfermaria |
leitos_listar_enfermaria |
| Agent UTI | Tipo_Quarto = UTI |
leitos_listar_uti |
| Todos os agentes | — | leitos_enviar_notificacao, leitos_enviar_sms |
| Nó de escrita N8N | row_number → ID_Leito |
leitos_atualizar_status_limpeza |
| Tool | Leitura/Escrita | O que faz |
|---|---|---|
leitos_listar_leitos |
Leitura | Lista todos os leitos; filtrável por Tipo_Quarto, Status_Ocupacao, Status_Limpeza |
leitos_listar_enfermaria |
Leitura | Filtro fixo Tipo_Quarto=Enfermaria — relatórios de ocupação e limpeza |
leitos_listar_uti |
Leitura | Filtro fixo Tipo_Quarto=UTI — dias internados e contagem de pacientes |
leitos_verificar_disponibilidade |
Leitura | Leitos com Status_Ocupacao=Disponível, resumo por tipo |
leitos_obter_detalhes_leito |
Leitura | Dados completos de um leito pelo ID_Leito |
leitos_resumo_ocupacao |
Leitura | Dashboard: ocupação e limpeza agrupados por Tipo_Quarto |
leitos_atualizar_status_limpeza |
Escrita | Atualiza Status_Limpeza de um leito pelo ID_Leito |
leitos_enviar_notificacao |
Externo | Envia e-mail via Gmail SMTP |
leitos_enviar_sms |
Externo | Envia SMS via Twilio REST API |
Status_Ocupacao: Disponível 🟢 · Ocupado 🔴 · Reservado 🔵
Status_Limpeza: Concluído ✅ · Pendente ⚠️ · Em Andamento 🔄
Tipos de quarto: Enfermaria · UTI · Apartamento · Semi-Intensivo
A tool leitos_enviar_notificacao usa Gmail SMTP com Senha de App:
GMAIL_APP_PASSWORD no .envA tool leitos_enviar_sms usa a API REST do Twilio:
Account SID e Auth Token no dashboardTWILIO_FROM_NUMBERAdicione ao ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"hospital-mcp": {
"command": "uv",
"args": ["run", "--project", "/caminho/para/mcp-alura", "python", "server.py"],
"env": {
"SPREADSHEET_ID": "1zt4h2v3ldK3zELNNmvyn02elEB9dHdfXD5q85ZYh2k0",
"AUTOPECAS_SHEET_NAME": "AutoPeças",
"LEITOS_SHEET_NAME": "Leitos",
"GOOGLE_CREDENTIALS_PATH": "/caminho/para/service_account.json",
"GMAIL_USER": "[email protected]",
"GMAIL_APP_PASSWORD": "xxxx_xxxx_xxxx_xxxx",
"TWILIO_ACCOUNT_SID": "ACxxxxxxxx",
"TWILIO_AUTH_TOKEN": "xxxxxxxx",
"TWILIO_FROM_NUMBER": "+18647139932"
}
}
}
}
claude mcp add hospital-mcp -- uv run --project /caminho/para/mcp-alura python server.py
Configure o nó MCP Client Tool apontando para o endpoint do servidor.
Os três agentes N8N podem compartilhar o mesmo servidor MCP Python,
cada um utilizando as tools adequadas ao seu papel via include: selected.
uv run python server.py
Para inspecionar as 15 tools com o MCP Inspector:
npx @modelcontextprotocol/inspector uv run python server.py
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"autope-as-mcp-server": {
"command": "npx",
"args": []
}
}
}