Tá Rodando
Uptime monitoring and a public status page for Brazilian teams.
What it can do
- Ver Conta: Mostra o plano da conta no Tá Rodando (free ou pro), o teto de monitores e quantos já estão ativos, os intervalos de checagem permitidos e a status page pública (URL + snippet markdown do b
- Listar Monitores: Lista os monitores HTTP da conta com as 3 respostas da lista do painel: está no ar (`state`: operational/degraded/partial_outage/major_outage, `failing` = último check falhou e o mon
- Status Monitor: Detalhe de um monitor: status, configuração, o último check (ok, latência em ms, erro e horário) e, se o último check falhou, `lastFailure.message` com o motivo em português (a mesma f
What data it sees
Do you need an account
No: the server works without sign-in
Uptime monitoring and a public status page for Brazilian teams. Create HTTP monitors and down/up alerts (email, Telegram, Slack, Discord, Google Chat, webhook), check uptime and past outages, and manage the status page from your agent.
How to connect
How to connect Tá Rodando to Claude
The server address to paste into Claude settings:
https://tarodando--felipemattoseu.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Tá Rodando to ChatGPT
The server address to paste into ChatGPT settings:
https://tarodando--felipemattoseu.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Tá Rodando to Cursor
The server address to paste into Cursor settings:
https://tarodando--felipemattoseu.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (19)
Raw names from tools/list. Only developers need these.
| ver_conta | Mostra o plano da conta no Tá Rodando (free ou pro), o teto de monitores e quantos já estão ativos, os intervalos de checagem permitidos e a status page pública (URL + snippet markdown do badge; `identityChosen: false` = nome e endereço ainda são os automáticos do cadastro), ou null se a conta não tem página, e `onboarding` (os primeiros passos do topo do painel: monitor, alertas, página, seções, agente — cada um com `label`, `done` e `url` absoluta do passo no painel). |
| listar_monitores | Lista os monitores HTTP da conta com as 3 respostas da lista do painel: está no ar (`state`: operational/degraded/partial_outage/major_outage, `failing` = último check falhou e o monitor ainda não marcou fora do ar, paused, awaiting = sem dados), quem é avisado (`channels`: label + kind, o "avisar em" do monitor; lista vazia = não avisa ninguém) e se aparece na status page (`statusPage`: URL da página, ou null = privado; `section`: nome da seção). Traz também `status` (o que a página pública mostra), último check, intervalo e se está pausado por excesso do plano. |
| status_monitor | Detalhe de um monitor: status, configuração, o último check (ok, latência em ms, erro e horário) e, se o último check falhou, `lastFailure.message` com o motivo em português (a mesma frase do painel). `ocorrenciaAberta`: a ocorrência em andamento (ver listar_ocorrencias) ou null. `monitor.state` traz o estado: `failing` = o último check falhou mas o monitor ainda não marcou fora do ar (acontece com o check feito na criação; a página pública segue operacional e o time ainda não foi avisado; se o próximo check do monitor falhar, vira major_outage e avisa). Uma falha num check do monitor agenda uma re-checagem ~30 s depois; a 2ª falha seguida vira major_outage e avisa o time. |
| listar_checks | Checks anteriores de um monitor (mais novo primeiro: horário, ok/falha, latência em ms, erro) e o resumo da janela: % de disponibilidade, nº de checks e falhas, latência média e p95. O % de 90d é o mesmo da status page pública. Checks individuais ficam guardados 8 dias; 30d/90d trazem só o resumo diário (sem latência). monitor.paused = true: pausado (à mão ou fora do teto do plano), sem checks novos — janela vazia não é queda. Paginação: repita com cursor = nextCursor. |
| criar_monitor | Cria um monitor HTTP para uma URL pública (https://…). O Tá Rodando checa no intervalo escolhido, refaz o check ~30 s depois de uma falha, marca o serviço como fora do ar na 2ª falha seguida e avisa o time. O monitor nasce privado e avisando os canais padrão da conta (o "avisar em"); passe `section` para aparecer na status page. Antes de gravar, a URL é testada: endereço do Tá Rodando que não existe ou a própria status page são recusados; URL que está falhando agora devolve url_failing com o motivo, e só é criada com `confirmar: true`. Respeita o teto do plano: se estourar, devolve plan_limit (no grátis, com o link de upgrade). |
| atualizar_monitor | Altera nome, URL, intervalo ou seção de um monitor. Só os campos enviados mudam; section: null tira o serviço da seção. Num monitor privado, `section` publica: ele passa a aparecer na status page, nessa seção. A página inteira (várias seções, ordem, tirar da página) é editada por estruturar_pagina. URL nova passa pela mesma validação de criar_monitor (url_failing só grava com `confirmar: true`). |
| pausar_monitor | Pausa um monitor sem apagar o histórico: para de checar, não avisa ninguém e libera a vaga no limite do plano. Na status page o serviço aparece como Pausado. retomar_monitor volta a checar. |
| retomar_monitor | Retoma um monitor pausado com pausar_monitor. Volta a checar no próximo ciclo do worker (até 30 min). Se a conta já usa todas as vagas do plano, devolve plan_limit e o monitor continua pausado. |
| remover_monitor | Apaga um monitor (e o serviço correspondente da status page, se houver), junto com o histórico de checks. Irreversível. |
| listar_ocorrencias | Ocorrências dos monitores nos últimos 90 dias, mais recente primeiro. Ocorrência = um episódio de queda de um monitor (abre na 2ª falha seguida, fecha quando volta ou quando o monitor é pausado). É PRIVADA: só o time vê; não é o incidente público da status page. Por ocorrência: id, monitor, numero, aberta, inicio, fim, duracao_seg (fonte única da duração, a mesma do painel), motivo, falhas, avisos (quem foi avisado por canal: enviado/falhou/pendente; lista vazia = ninguém foi avisado) e incidente_id (null = não publicada). |
| ver_ocorrencia | Detalhe de uma ocorrência: os campos de listar_ocorrencias + linha_do_tempo (falhas, início, avisos por canal, volta, encerramento, publicação) com os mesmos textos do painel. Falhas individuais só existem enquanto o check cru está guardado (8 dias). |
| publicar_ocorrencia | Transforma uma ocorrência em incidente PÚBLICO na status page (avisa os assinantes da página). Sem `confirmar`, só devolve o rascunho (título, serviço, início, severidade, status, mensagem) e não publica nada; com confirmar: true, publica. Aceita titulo, mensagem, severidade e status para ajustar o rascunho. Ocorrência já encerrada vira incidente retroativo, já resolvido. Só vale pra monitor que aparece na status page; uma ocorrência gera no máximo um incidente. |
| listar_canais | Lista os canais de alerta da conta (email, Slack, Discord, Google Chat, webhook ou Telegram) e os ids dos monitores vinculados a cada um. URL de webhook vem mascarada (só o host), porque ela é credencial. Telegram vem com target null e connected; se connected for false, ainda não recebe nada e connectUrl é o link pro usuário abrir. |
| criar_canal | Cria um canal por onde o time recebe o alerta de monitor caiu/voltou. kind email recebe um endereço; slack, discord, google_chat e webhook recebem a URL do webhook (tem que ser pública). kind telegram não leva target: o canal volta com connected: false, um connectUrl (chat pessoal) e um connectGroupUrl (grupo do time); o canal só recebe alertas depois que alguém abre um desses links no Telegram e toca em Começar (ou escolhe o grupo), e aí listar_canais mostra connected: true. O link vale 24 h; depois disso, o canal precisa ser apagado e criado de novo. O canal nasce sem monitores (vínculo por vincular_canal). Máximo de 20 canais por conta. |
| vincular_canal | Liga o canal a monitores: quando um deles cair ou voltar, o alerta sai por esse canal. monitorIds é uma lista de ids (de listar_monitores) ou "all" pra todos os monitores de hoje (monitor criado depois não entra sozinho). Soma aos vínculos que já existem; repetir não duplica. Devolve os monitores vinculados agora. |
| testar_canal | Manda a mensagem de teste do painel pelo canal. Limite: 1 teste por minuto por canal (rate_limited, com espera de 60 s). Erros: send_failed = o destino recusou (email/URL; no Telegram, o bot foi bloqueado ou o chat sumiu); not_connected = canal Telegram ainda sem chat (falta abrir o connectUrl); provider_error = falha do Tá Rodando ou do provedor, com o destino ok. |
| remover_canal | Apaga o canal e todos os vínculos dele com monitores, inclusive os feitos no painel. Os alertas param de sair por ali. Irreversível. |
| configurar_status_page | Altera a status page pública da conta: nome (título), endereço (subdomínio em <slug>.tarodando.com.br), descrição, link do site, link de contato, logo e favicon — tudo que a aba Nome e endereço da Status page no painel edita, com as mesmas regras. Só os campos enviados mudam. O slug é normalizado (minúsculas, sem acento, hífens) e precisa de 3+ caracteres; endereço em uso devolve slug_taken; endereço reservado, reserved_slug. Se a conta ainda não tem status page (statusPage null em ver_conta), a tool cria: aí `name`, `slug` e `monitorIds` são obrigatórios (sem os três devolve no_page; se a conta já ganhou página no meio do caminho, page_exists). `monitorIds` decide o que fica PÚBLICO: ids de listar_monitores, "all" ou [] pra nenhum. Se algum id não for monitor da conta, nada é criado e volta monitor_not_found com os ids recusados. Seções e a lista de monitores da página são editadas por estruturar_pagina. Devolve a URL nova; ao trocar o endereço, o antigo para de funcionar e a resposta lista monitores que ainda checam o endereço antigo (não altera nada sozinha). |
| estruturar_pagina | Põe monitores em seções da status page — o "Salvar estrutura" do painel. Recebe a estrutura INTEIRA: a lista ordenada de seções, cada uma com os ids (de listar_monitores) dos monitores na ordem em que aparecem. Seção que já existe é reconhecida pelo `id` ou, sem id, pelo nome (pra renomear, mande o `id` com o nome novo); seção que não vier é apagada; monitor que não estiver em nenhuma seção volta a privado (checa e avisa o time, sem aparecer na página). A estrutura atual está em listar_monitores (`section` e `statusPage`). Tudo ou nada: com seção sem nome, nomes repetidos, a mesma seção duas vezes ou id desconhecido, nada é gravado (invalid_structure). Sem status page, devolve no_page. |