Restam 50 lugares de fundador. Premium grátis agora

Para quem cria agentes · Funciona com o Claude

Dê mãos ao seu agente.

O TaskQ é um servidor MCP em que cada ferramenta é executada por uma pessoa. O seu agente planeia; as pessoas fazem; as evidências voltam estruturadas.

Grátis até 3 pessoas. Sem cartão.

Endereço MCPhttps://taskq.isat.pt/mcp
  • Servidor MCP remoto com OAuth
  • Standard Webhooks para acordar o seu executor
  • As pessoas aprovam; o servidor aplica as regras
Uma sessão do agente com o conector TaskQO agente chama get_workspace e recebe locais, localizações e recursos. Chama propose_phase com 4 passos num bloco e abre-se um pedido de aprovação. O orquestrador aprova. Depois, o agente chama get_evidence para o passo 2 e recebe uma fotografia e uma medição de 412 mm.Claude · conector TaskQ› get_workspace‹ locais, localizações, recursos› propose_phase 4 passos · 1 bloco‹ approval_request: pendente✓ Aprovado pelo orquestrador› get_evidence passo 2‹ foto · 412 mmO passo no telemóvel do operadorPasso 2 de 5 da tarefa Arrumar o armário A. Instrução: medir a gaveta A3 com o paquímetro. Um diagrama do armário destaca a gaveta A3. O campo de evidência pede uma medição em milímetros, preenchida com 412. Botões: Concluído, Não consigo, Mais detalhe e Parar por segurança.Passo 2 de 5 · Arrumar o armário AMeça a gaveta A3com o paquímetroA3 · Armário AEcrã do passoA1B1C1D1A2B2C2D2A3B3C3D3Medição (mm)412ConcluídoNão consigoMais detalheParar por segurança
O seu agente chama o TaskQ como qualquer servidor MCP. O passo chega ao telemóvel de uma pessoa e as evidências voltam ao seu agente.

Capacidades

Ferramentas executadas por pessoas.

Uma capacidade é um tipo de passo com um contrato: medir, fazer uma compra, mover um item. Para o seu agente, funciona como qualquer outra ferramenta. Lê as instruções, preenche o esquema de entrada e recebe evidências estruturadas. A única diferença é quem a executa: uma pessoa, no telemóvel.

Cada capacidade tem um contrato em cinco partes

  1. Instruções para o agente agent_instructions

    Em markdown: quando a usar, como escrever o passo, erros comuns.

  2. Esquema de entrada input_schema

    O que o seu agente tem de preencher, em JSON Schema.

  3. Esquema de evidências evidence_schema

    O que volta. Sem ele, o passo não pode fechar.

  4. Requisitos de execução requirements

    Qualificações, recursos e tipo de localização.

  5. Regras impostas pelo servidor rules

    Limite por pedido, limiar de aprovação, orçamento e risco.

As regras vivem no servidor; as orientações vivem no texto. O seu agente pode propor o que quiser. Não consegue contornar um limite de gastos com argumentos, porque é o TaskQ que o impõe.

capability: purchaseYAML
key: purchase
version: 1
name:
  en: Purchase
  pt-PT: Compra
agent_instructions: |
  Use when the task is missing material. Always give an estimated price
  and an alternative in case the item is out of stock.
input_schema:
  item: string
  quantity: number
  suggested_store: string
  estimated_price: { amount: number, currency: string }
evidence_schema:
  - kind: document
    description: invoice issued to the workspace tax ID
requirements:
  qualifications: []
rules:
  max_per_request: { amount: 50, currency: EUR }
  approval_above: { amount: 50, currency: EUR }
  budget: task
default_gadget: purchase-receipt
risk: medium
Exemplo de configuração da especificação do TaskQ. Os valores são ilustrativos.

10 capacidades prontas desde o primeiro dia

As capacidades são configuráveis e têm versões, como as skills, e nenhuma está fixa no código. O seu agente pode propor uma capacidade nova ou uma nova versão; cada uma passa por um pedido de aprovação.

  • label_location

    Colar uma etiqueta impressa com um código legível (como A3) numa localização e fotografá-la.

  • photograph

    Fotografar uma localização, um objeto ou um estado, como referência ou para o seu agente analisar.

  • inventory_location

    Listar o que está numa localização, com quantidades e uma fotografia, podendo esvaziá-la para uma área de preparação.

  • move_item

    Mover itens de uma localização para outra e fotografá-los no novo lugar.

  • measure

    Medir uma dimensão ou grandeza com uma ferramenta e indicar o valor na unidade pedida.

  • purchase

    Ir buscar material em falta a uma loja e trazer a fatura emitida com o NIF da organização. O TaskQ regista a compra; nunca movimenta dinheiro.

  • transport_resource

    Levar uma ferramenta, um veículo ou material para outro local ou morada e registar onde fica.

  • operate_tool

    Usar uma ferramenta ou máquina (corte a laser, impressora 3D, berbequim) numa operação definida, seguindo as notas de segurança.

  • verify_result

    Verificar o resultado com critérios explícitos e fotografar o estado final.

  • sync_with_orchestrator

    Uma reunião curta no local entre operadores e o orquestrador, com um resumo escrito.

Servidor MCP

Um servidor MCP remoto. 16 ferramentas. Pessoas do outro lado.

Adicione o TaskQ ao claude.ai ou ao Claude Code como conector personalizado. O seu agente lê o espaço de trabalho, propõe fases e lê as evidências que as pessoas enviam.

  • Remoto, por Streamable HTTP

    Nada para instalar nem alojar. Aponte o seu cliente para o endereço.

  • Início de sessão com OAuth

    Inicia sessão com a sua conta do TaskQ e escolhe o espaço de trabalho. Sem chaves de API para colar ou deixar escapar.

  • Um orquestrador, um espaço de trabalho

    Cada token fica associado a um membro com a função de orquestrador e só vê o espaço de trabalho desse membro. Cada chamada volta a verificar a função.

  • Inglês para as máquinas

    Os nomes das ferramentas, as descrições, os parâmetros e os erros estão em inglês, seja qual for a língua de trabalho da sua equipa.

Ligue o seu cliente

Endereçohttps://taskq.isat.pt/mcp

claude.ai e aplicações Claude: Definições → Conectores → Adicionar conector personalizado. Cole o endereço, inicie sessão no TaskQ e escolha o espaço de trabalho.

Claude Code: adicione o servidor e execute /mcp para iniciar sessão.

Só os orquestradores podem ligar. Se a sua organização no Claude esconder a opção, peça ao administrador para permitir conectores personalizados.

TerminalShell
claude mcp add --transport http taskq https://taskq.isat.pt/mcp

As 16 ferramentas

Leitura
Lê o estado atual e nada mais.
Proposta
Abre um pedido de aprovação. Nada acontece até uma pessoa aprovar.
Escrita direta
Escreve diretamente, dentro do espaço de trabalho do token.
Ferramentas MCP do TaskQ: 8 de leitura, 4 de proposta e 4 de escrita direta.
FerramentaO que fazEfeito
get_workspaceLocais, mapa de localizações, recursos e o seu estado, membros com qualificações e disponibilidade agregadaLeitura
list_capabilitiesCatálogo com contratos e gadgets predefinidosLeitura
list_gadgetsBiblioteca de gadgets aprovados, com esquemas de dadosLeitura
create_taskTítulo, objetivo, local, orçamento e quem decide nos pontos de decisãoEscrita direta
propose_phaseConjunto de passos com entradas, localizações, recursos, dependências, blocos, gadgets e anexosProposta
propose_capabilityCapacidade nova ou nova versão de uma existenteProposta
propose_gadgetCódigo, esquema e dados de exemplo para pré-visualizaçãoProposta
propose_map_changeNovas localizações, etiquetas ou disposiçãoProposta
get_taskEstado, fases, passos e exceçõesLeitura
get_evidenceFotografias (como imagens), medições, documentos e anotações de um passo ou de uma faseLeitura
attach_fileCarrega um ficheiro do agente para anexar a um passo proposto (por exemplo, um desenho ou uma lista de materiais)Escrita direta
list_unarchived_filesFicheiros enviados pelos operadores e ainda não arquivados, por tarefa ou em todo o espaço de trabalhoLeitura
get_fileConteúdo do ficheiro na resposta, mais um link assinado válido durante alguns minutosLeitura
mark_file_archivedMarca um ficheiro como arquivado com a referência do destino e inicia o período de retençãoEscrita direta
list_pending_decision_pointsO que está à espera de decisão, por tarefaLeitura
close_taskFecha a tarefa com um resumoEscrita direta

Erros que o seu agente consegue corrigir

propose_phase verifica tudo antes de abrir o pedido de aprovação: as capacidades existem, as entradas cumprem os esquemas, as regras de orçamento são respeitadas, os recursos e as localizações são conhecidos e as dependências não têm ciclos. Devolve todos os erros de uma vez, para o seu agente os corrigir numa só passagem.

Propostas por omissão

Tudo o que o seu agente escreve é uma proposta, exceto o que o espaço de trabalho marca para aprovação automática por nível de risco (Premium, desligada por omissão).

Trabalho em paralelo · Várias mãos, sem choques

Paralelo por declaração.

O seu agente declara as dependências, os recursos exclusivos e a localização de cada passo. O distribuidor calcula o que pode correr ao mesmo tempo, como threads com locks. Se já escreveu código multithread, conhece o modelo. O seu agente nunca tem de decidir quem faz o quê.

Dois operadores a trabalhar na mesma fase em paraleloCronologia com duas faixas. A lista por baixo do diagrama descreve-a passo a passo.Operador 1Operador 2Bloco: fica com o paquímetroespera pelopaquímetroEsvaziar A3Medir A3Medir A4Esvaziar B1Fotografar B1Medir B2Levar o armário2 pessoastempopaquímetro
  1. O Operador 1 faz um bloco: Esvaziar A3, Medir A3, Medir A4. O bloco fica com o paquímetro do início ao fim.
  2. Ao mesmo tempo, o Operador 2 esvazia e fotografa B1.
  3. Medir B2 também precisa do paquímetro, por isso espera até o bloco o libertar. Os dois passos de medição nunca se sobrepõem.
  4. Levar o armário precisa de duas pessoas: o distribuidor reserva os dois operadores em conjunto.
  • Ferramentas e lugares exclusivos são locks

    Um paquímetro, um carro, uma gaveta: uma pessoa de cada vez. As reservas são valores tstzrange do Postgres com uma restrição EXCLUDE USING gist, por isso duas reservas do mesmo recurso nunca se sobrepõem.

  • Os blocos reservam tudo ou nada

    Um bloco mantém uma sequência de passos com a mesma pessoa e reserva todos os recursos no início, ou nenhum. Sem bloqueios mútuos entre duas pessoas à espera uma da outra.

  • Passos com várias pessoas

    Levar um armário, alinhar com o orquestrador: um passo pode exigir várias pessoas, e o distribuidor reserva-as em conjunto.

  • Determinístico, e diz porquê

    Não há nenhum modelo de IA no distribuidor. Filtra por qualificações, acesso ao local, disponibilidade e recursos e localizações livres, equilibra a carga de trabalho e guarda um motivo legível em cada atribuição.

propose_phase · um passoJSON
{
  "ref": "measure-A3",
  "capability_key": "measure",
  "title": "Measure drawer A3",
  "instruction": "Measure the inside width of drawer A3, wall to wall.",
  "source_locale": "en",
  "input": { "target": "drawer A3", "dimension": "inside width", "unit": "mm" },
  "location_id": "<drawer A3>",
  "resources": [{ "resource_id": "<caliper>" }],
  "depends_on": ["empty-A3"],
  "block_ref": "measuring-round",
  "people_required": 1
}
Nomes dos campos do esquema real da ferramenta. Os valores são ilustrativos.
Motivo guardado

«Tem acesso à Oficina, paquímetro livre, livre até às 18:00»

Standard Webhooks

Eventos assinados, segundo o padrão.

O TaskQ envia eventos por webhook, para que o seu executor, uma automação ou outra ferramenta possa reagir sem ninguém abrir o Claude. Os webhooks são só de saída.

13 eventos

Eventos de webhook e quando são enviados.
EventoEnviado quando
task.createdÉ criada uma tarefa
phase.proposedO agente propõe uma fase e abre-se o pedido de aprovação
phase.approvedphase.rejectedO orquestrador decide sobre a fase
step.assignedO distribuidor atribui um passo
step.doneAs evidências são enviadas e validadas
step.blockedUm operador toca em Não consigo ou Parar por segurança
decision_point.openedA fase fechou, ou uma exceção bloqueou o resto dela
file.uploadedUm operador envia um ficheiro
file.archive_overdueO prazo de arquivo passa sem o ficheiro ser marcado
approval.requestedapproval.decidedCompra, horário, gadget, capacidade ou recurso pessoal
task.closedA tarefa é fechada

Assinatura

  • Cabeçalhos webhook-id, webhook-timestamp, webhook-signature, segundo a especificação Standard Webhooks.
  • HMAC-SHA256 sobre o id, a hora e o corpo, com um segredo whsec_.
  • Troque os segredos sem interrupções: durante a rotação, cada pedido leva duas assinaturas.
  • Rejeite tudo o que tenha mais de 300 segundos. As bibliotecas da especificação fazem-no por si.

Entrega

  • Pelo menos uma vez, com novas tentativas a intervalos crescentes. O webhook-id mantém-se entre tentativas, por isso elimine duplicados com base nele.
  • A ordem não é garantida. Cada evento leva um número de sequência por tarefa, task_sequence, para poder reordenar.
  • Após falhas repetidas, a subscrição é suspensa e os administradores são notificados. A consola mostra o registo de entregas, com reenvio manual e evento de teste.

Só os administradores criam webhooks, na consola

O servidor MCP não pode criar nem alterar webhooks. Uma instrução escondida num ficheiro ou numa fotografia não consegue desviar os seus eventos para o URL de outra pessoa. Os URL têm de ser HTTPS, os endereços privados e de loopback são recusados e os redirecionamentos não são seguidos.

Endpoints de webhook: 1 no Gratuito, 25 no Premium.

Corpos mínimos

Ids e uma ligação para a consola, nada mais. Obtenha os detalhes pelo MCP com as suas próprias credenciais, para ler sempre dados atuais. Os eventos nunca levam registos de tempo, preferências de detalhe, nomes completos nem conteúdo de ficheiros.

POST · decision_point.openedJSON
{
  "id": "0b6f3c1e-5d2a-4f7e-9a51-2c8d4e6f7a90",
  "type": "decision_point.opened",
  "timestamp": "2026-11-09T15:42:07.000Z",
  "workspace_id": "5a1e9d3b-7c40-4b8e-a2f1-93d6c0e4b215",
  "task_sequence": 7,
  "data": {
    "task_id": "c3d9a7f2-1b6e-4e0a-8f53-6a2b9d1c4e78",
    "phase_id": "e81f4b26-9c3a-4d57-b0e2-7f5a1c8d3b49",
    "decision_point_id": "4f2a8c61-3e9b-4d0f-a7c5-1b6e2d9f8a30",
    "reason": "phase_closed"
  },
  "links": { "console": "https://taskq.isat.pt/console/tasks/c3d9a7f2-1b6e-4e0a-8f53-6a2b9d1c4e78" }
}
Ids ilustrativos.
InstalarShell
npm install standardwebhooks
verify.tsTypeScript
import { Webhook } from "standardwebhooks";

const wh = new Webhook(process.env.TASKQ_WEBHOOK_SECRET!); // "whsec_..."

export async function handle(req: Request): Promise<Response> {
  const body = await req.text(); // the raw body, before JSON.parse
  try {
    // HMAC-SHA256 check; rejects timestamps more than 5 minutes off
    const event = wh.verify(body, Object.fromEntries(req.headers)) as { id: string; type: string };
    if (event.type === "decision_point.opened") await wakeRunner(event); // dedupe on event.id
    return new Response(null, { status: 204 });
  } catch {
    return new Response("Invalid signature", { status: 400 });
  }
}
Handler no estilo Fetch com o pacote npm standardwebhooks. Verifique sempre o corpo em bruto.

Modo executor

Ninguém tem de colar um prompt.

Por omissão, o orquestrador recebe em cada ponto de decisão um prompt pronto a enviar ao Claude. Ligue um executor seu e o ciclo avança sozinho, até ao único passo que continua humano: a aprovação.

  1. decision_point.opened

    Uma fase fecha, ou uma exceção bloqueia o resto dela. O TaskQ assina o evento e envia-o.

  2. O seu executor acorda

    Verifica a assinatura e chama o servidor MCP do TaskQ.

  3. Lê e depois propõe

    get_task e get_evidence para ver o que aconteceu; propose_phase para o que vem a seguir, ou close_task.

  4. Uma pessoa aprova

    A proposta fica à espera nas aprovações. A automação acelera o ciclo; o orquestrador mantém a decisão.

  5. O distribuidor atribui

    Os passos vão para quem está livre, tem acesso e tem a ferramenta, com o motivo guardado.

O mesmo padrão serve para file.uploaded: arquive uma fatura no seu próprio sistema assim que é enviada e depois chame mark_file_archived.

Ecrãs de passo à medida

Um ecrã feito para o trabalho. Isolado.

O seu agente pode desenhar o passo: o armário com a gaveta ativa iluminada, uma grelha para assinalar o que saiu de uma gaveta. Os gadgets correm dentro de uma moldura fixa que pertence à app.

O passo no telemóvel do operadorPasso 2 de 5 da tarefa Arrumar o armário A. Instrução: medir a gaveta A3 com o paquímetro. Um diagrama do armário destaca a gaveta A3. O campo de evidência pede uma medição em milímetros, preenchida com 412. Botões: Concluído, Não consigo, Mais detalhe e Parar por segurança.Passo 2 de 5 · Arrumar o armário AMeça a gaveta A3com o paquímetroA3 · Armário AEcrã do passoA1B1C1D1A2B2C2D2A3B3C3D3Medição (mm)412ConcluídoNão consigoMais detalheParar por segurança

A moldura fixa (a app)

  • O contexto no topo, como «Passo 2 de 5 · Arrumar o armário A»
  • Instrução, localização e evidências pedidas
  • Concluído, Não consigo, Mais detalhe e Parar por segurança, sempre fora do gadget
  • A câmara e o envio de ficheiros, que nunca pertencem ao gadget

O gadget (iframe isolado)

  • sandbox="allow-scripts", nunca allow-same-origin

    O gadget corre com uma origem opaca: sem acesso à app, à sessão nem ao armazenamento.

  • Uma CSP que bloqueia todo o acesso à rede

    default-src 'none': sem fetch, sem beacons, sem imagens nem tipos de letra externos.

  • Aprovado com a fase

    Os gadgets novos são aprovados juntamente com a fase, com pré-visualização com dados reais na consola. Os gadgets aprovados entram na biblioteca.

Uma API postMessage com quatro métodos

API postMessage dos gadgets.
MétodoO que faz
getStepData()O passo, os dados do gadget, o idioma do operador, o ramo da localização e as evidências pedidas.
requestPhoto({ prompt })Pede à app que abra o fluxo da câmara e devolve o id da evidência.
submitEvidence({ kind, value })Entrega evidências à app, que as valida e guarda.
markReady()Indica à app que o operador já pode tocar em Concluído.

Incluídos em todos os planos: cabinet-diagram, item-checklist, purchase-receipt. Os ecrãs de passo feitos pelo seu agente fazem parte do Premium.

Formato das mensagensJSON
{ taskq: 1, id, type: "request", method, params }
{ taskq: 1, id, type: "response", result | error }

Justo para as pessoas

O que a API nunca devolve.

O seu agente planeia o trabalho. Nunca fica a ver as pessoas que o fazem.

  • Registos de tempo

    Entradas, pausas e presenças nunca são expostas ao seu agente.

  • Preferências de detalhe

    O nível de detalhe que cada pessoa prefere só a ela diz respeito. Nunca afeta quem recebe o quê.

  • Durações individuais

    As estimativas de duração são corrigidas por capacidade, nunca por pessoa.

Os eventos de webhook levam ids, nunca nomes. O distribuidor nunca pontua pessoas nem as ordena por desempenho; em vez disso, equilibra a carga de trabalho.

Comece no Gratuito. Cresça no Premium.

O servidor MCP e as 16 ferramentas estão em todos os planos, incluindo o Gratuito. O planeamento corre no seu próprio Claude.

O que quem cria agentes tem em cada plano.
FuncionalidadeGratuitoPremium
Servidor MCP, as 16 ferramentas
Webhooks (Standard Webhooks)1 endpoint25 endpoints
Acordar o seu agente nos pontos de decisãousa o webhook
Aprovação automática por nível de riscodesligada por omissão
Ecrãs de passo incluídos (diagrama do armário, lista de itens, talão de compra)
Ecrãs de passo feitos pelo agenteIlimitados

O seu plano do Claude é independente e faturado pela Anthropic. O preço do TaskQ inclui o Assistente de IA.

O seu agente planeia. As pessoas fazem. A aprovação é sua.

Crie um espaço de trabalho grátis, abra a página Ligar o Claude na consola e adicione o TaskQ ao claude.ai ou ao Claude Code como conector personalizado.

Grátis até 3 pessoas. Sem cartão.

Referência pública da API Brevemente

Até lá, as descrições das ferramentas MCP e a página Ligar o Claude na app cobrem o que o seu agente precisa.

Claude é uma marca comercial da Anthropic.