Skip to Content
ReferênciaFerramentas MCP

Ferramentas MCP

Referência completa de todas as 22 ferramentas MCP do SpecForge — parâmetros, uso e exemplos.

O SpecForge expõe 22 ferramentas MCP organizadas em cinco categorias. Essas ferramentas estão disponíveis para qualquer agente de código compatível com MCP (Claude Code, Cursor, VS Code com Copilot, Gemini CLI, etc.) uma vez que o servidor MCP do SpecForge esteja configurado.

Consultas

Seis ferramentas para ler dados do projeto, buscar tickets e gerar relatórios. São somente leitura — nunca modificam sua especificação.

get

Recupera uma única entidade por tipo e ID.

ParâmetroTipoObrigatórioDescrição
type"project" | "specification" | "epic" | "ticket" | "implementation_session"SimTipo de entidade a recuperar
idstringSimID da entidade
specificationIdstringNãoContexto da especificação (obrigatório para épicos e tickets)
{ "type": "ticket", "id": "tkt_abc123", "specificationId": "spec_xyz789" }

Retorno

Retorna o objeto completo da entidade. O formato depende do parâmetro type:

Ticket (type: "ticket"):

CampoTipoDescrição
idstringID do ticket
epicIdstringID do épico pai
ticketNumbernumberNúmero sequencial do ticket
titlestringTítulo do ticket
descriptionstringDescrição detalhada
status"todo" | "queue" | "in_progress" | "blocked" | "done"Status atual
progressnumberProgresso de conclusão (0–100)
priority"low" | "medium" | "high"Nível de prioridade
complexity"small" | "medium" | "large" | "xlarge"Estimativa de complexidade
tagsstring[]Tags
estimatedHoursnumberEsforço estimado em horas
acceptanceCriteriaobject[]Critérios de aceite com id, description, validated
implementationobjectPassos de implementação, exemplos de código, pré-requisitos
technicalDetailsobjectOperações de arquivo, endpoints de API, operações de banco de dados
notesstring | objectNotas de implementação ou notas estruturadas
blockReasonstringMotivo do bloqueio (se aplicável)
createdAtstringTimestamp ISO 8601
updatedAtstringTimestamp ISO 8601

Specification (type: "specification"):

CampoTipoDescrição
idstringID da especificação
projectIdstringID do projeto pai
titlestringTítulo da especificação
descriptionstringO que construir
status"draft" | "planning" | "specifying" | "validating" | "ready" | "in_progress" | "completed"Status atual
progressnumberProgresso geral (0–100)
goalsstring[]Objetivos da especificação
requirementsstring[]Requisitos
techStackstring[]Tecnologias usadas
tagsstring[]Tags
estimatedHoursnumberEsforço total estimado

Epic (type: "epic"):

CampoTipoDescrição
idstringID do épico
specificationIdstringID da especificação pai
epicNumbernumberNúmero sequencial do épico
titlestringTítulo do épico
descriptionstringDescrição do épico
objectivestringO que este épico alcança
status"todo" | "in_progress" | "completed"Status atual
progressnumberProgresso de conclusão (0–100)
ordernumberOrdem de exibição
ticketCountnumberTotal de tickets
completedTicketCountnumberTickets concluídos

Project (type: "project"):

CampoTipoDescrição
idstringID do projeto
namestringNome do projeto
descriptionstringDescrição do projeto
specCountnumberTotal de especificações
completedSpecCountnumberEspecificações concluídas
ticketCountnumberTotal de tickets em todas as specs

list

Lista entidades de um tipo dado com filtros opcionais.

ParâmetroTipoObrigatórioDescrição
type"projects" | "specifications" | "epics" | "tickets"SimTipo de entidade a listar
projectIdstringNãoFiltrar por projeto (obrigatório para especificações)
specificationIdstringNãoFiltrar por especificação (obrigatório para épicos e tickets)
epicIdstringNãoFiltrar tickets por épico
{ "type": "tickets", "specificationId": "spec_xyz789", "epicId": "epic_456" }

Retorno

Retorna uma lista paginada:

CampoTipoDescrição
itemsobject[]Array de entidades correspondentes à consulta
totalnumberNúmero total de entidades correspondentes
nextTokenstringToken de paginação para a próxima página (se houver mais resultados)

Cada item em items é o objeto completo da entidade (veja retornos de get acima para detalhes dos campos).

{ "items": [ { "id": "tkt_abc123", "title": "Set up User model", "status": "queue", ... }, { "id": "tkt_def456", "title": "Implement bcrypt hashing", "status": "queue", ... } ], "total": 4 }

Busca unificada em tickets com consultas full-text e filtros estruturados.

ParâmetroTipoObrigatórioDescrição
querystringNãoBusca full-text em títulos e descrições de tickets
filesstring[]NãoFiltrar por caminhos de arquivo esperados
tagsstring[]NãoFiltrar por tags
statusstring[]NãoFiltrar por status: "pending", "ready", "active", "done"
complexitystring[]NãoFiltrar por complexidade: "small", "medium", "large", "xlarge"
prioritystring[]NãoFiltrar por prioridade: "low", "medium", "high", "critical"
limitnumberNãoMáximo de resultados a retornar
offsetnumberNãoOffset de paginação
fieldsstring[]NãoCampos específicos a incluir nos resultados
{ "query": "authentication middleware", "status": ["ready", "pending"], "priority": ["high", "critical"], "limit": 10 }

Retorno

Retorna uma lista paginada de tickets:

CampoTipoDescrição
itemsTicket[]Array de tickets correspondentes
totalnumberNúmero total de correspondências
nextTokenstringToken de paginação (se houver mais resultados)

Ao usar o parâmetro fields, apenas os campos solicitados são incluídos em cada objeto ticket.

✅ Combine files com tags para encontrar todos os tickets tocando uma parte específica do seu codebase. Por exemplo, files: ["src/auth/**"] com tags: ["security"].


get_next_actionable_tickets

Retorna tickets em status ready com todas as dependências satisfeitas, ordenados por prioridade e complexidade.

ParâmetroTipoObrigatórioDescrição
specificationIdstringSimEspecificação a consultar
projectIdstringNãoContexto do projeto
limitnumberNãoMáximo de tickets a retornar
{ "specificationId": "spec_xyz789", "limit": 5 }

Retorno

Retorna um array de objetos ticket em status ready com todas as dependências satisfeitas, ordenados por prioridade (critical primeiro) e complexidade (menor primeiro).

[ { "id": "tkt_abc123", "title": "Implement JWT token generation", "status": "queue", "priority": "high", "complexity": "medium", "epicId": "epic_456", "ticketNumber": 3, ... } ]

Este é o ponto de entrada principal para agentes decidindo no que trabalhar a seguir. No Agent Teams, o orquestrador chama isso para atribuir tickets a workers.


get_blocked_tickets

Retorna tickets em status pending junto com os motivos pelos quais estão bloqueados.

ParâmetroTipoObrigatórioDescrição
specificationIdstringSimEspecificação a consultar

Retorno

Retorna um array de entradas de tickets bloqueados:

CampoTipoDescrição
ticketTicketO objeto ticket bloqueado
blockedByobject[]Array de { id, title, status } para cada dependência não resolvida
daysBlockednumberNúmero de dias que o ticket está bloqueado
[ { "ticket": { "id": "tkt_ghi789", "title": "Build login endpoint", "status": "todo", ... }, "blockedBy": [ { "id": "tkt_def456", "title": "Implement bcrypt hashing", "status": "in_progress" } ], "daysBlocked": 2 } ]

get_report

Gera relatórios analíticos em diferentes escopos e intervalos de tempo.

ParâmetroTipoObrigatórioDescrição
type"implementation" | "time" | "blockers" | "work" | "implementation_analysis"SimTipo de relatório
scope"project" | "specification" | "epic"SimEscopo do relatório
scopeIdstringSimID da entidade de escopo
startDatestringNãoData inicial para relatórios com intervalo de tempo (ISO 8601)
endDatestringNãoData final para relatórios com intervalo de tempo (ISO 8601)
Tipo de RelatórioDescrição
implementationResumo de progresso com percentuais de conclusão e trabalho restante
timeAnálise de rastreamento de tempo com horas estimadas vs. reais
blockersAnálise detalhada de bloqueadores com cadeias de dependência
workHistórico de work sessions e log de atividade
implementation_analysisAnálise profunda de qualidade e padrões de implementação

Retorno

O formato da resposta varia por tipo de relatório:

implementation — Resumo de progresso:

CampoTipoDescrição
projectProjectProjeto ou entidade de escopo
specificationsobject[]Detalhamento por spec com completedEpics, totalEpics, completedTickets, totalTickets
recentActivityobject[]Ações recentes com ticketId, ticketTitle, action, timestamp

time — Rastreamento de tempo:

CampoTipoDescrição
totalHoursnumberHoras reais gastas
estimatedHoursnumberTotal de horas estimadas
variancenumberDiferença entre estimado e real
ticketBreakdownobject[]Por ticket { ticketId, ticketTitle, estimated, actual }

blockers — Análise de bloqueadores:

CampoTipoDescrição
blockedTicketsobject[]Tickets bloqueados com ticket, blockedBy[], daysBlocked
blockingChainsobject[]Bloqueadores raiz com rootBlocker, contagem de affectedTickets

Ciclo de Vida

Nove ferramentas que conduzem especificações através de planejamento, implementação e revisão. São as ferramentas centrais do fluxo de trabalho.

start_planning_session

Abre uma sessão de planejamento para uma especificação, habilitando mudanças estruturais.

ParâmetroTipoObrigatórioDescrição
specificationIdstringSimEspecificação a planejar

A especificação deve estar em estado draft, planning, specifying ou validating.

Retorno

CampoTipoDescrição
specificationIdstringID da especificação
sessionIdstringID da sessão de planejamento
previousStatusstringStatus antes de abrir a sessão
newStatusstringStatus após abrir (ex.: "planning")
messagestringMensagem de confirmação

action_planning_session

Realiza operações dentro de uma sessão de planejamento ativa. Esta é a ferramenta principal para construir especificações — ela lida com 18 operações distintas.

ParâmetroTipoObrigatórioDescrição
specificationIdstringSimEspecificação sendo planejada
operationstringSimOperação a realizar (veja tabela abaixo)

Parâmetros adicionais dependem da operação.

Operações de Estrutura

OperaçãoDescrição
set_metadataAtualizar título, descrição ou tags da especificação
create_epicCriar um novo épico com título, descrição e ordenação
update_epicModificar um épico existente
create_ticketCriar um ticket dentro de um épico
update_ticketModificar um ticket existente
delete_epicRemover um épico e seus tickets
delete_ticketRemover um único ticket

Operações de Vinculação

OperaçãoDescrição
add_dependenciesDefinir links de dependência entre tickets
remove_dependencyRemover um link de dependência
create_blueprintCriar um novo documento de blueprint
link_blueprintVincular um blueprint a um épico
update_blueprintModificar um blueprint existente
delete_blueprintRemover um blueprint
unlink_blueprintDesvincular um blueprint de um épico

Operações de Consulta e Controle

OperaçãoDescrição
get_ticketRecuperar um ticket dentro do contexto da sessão
advance_phaseAvançar manualmente a fase da especificação
get_statusObter status atual da sessão de planejamento
gpsObter um resumo de planejamento com indicadores de progresso

Exemplo — Criando um ticket:

{ "specificationId": "spec_xyz789", "operation": "create_ticket", "epicId": "epic_456", "title": "Implement JWT token generation", "description": "Create a service that generates signed JWT access tokens with configurable expiration.", "complexity": "medium", "priority": "high", "steps": [ "Create JwtService class in src/auth/jwt.service.ts", "Implement generateAccessToken method with RS256 signing", "Add token expiration configuration via environment variables", "Write unit tests for token generation and validation" ], "acceptanceCriteria": [ "Tokens are signed with RS256 algorithm", "Token expiration is configurable", "Invalid tokens are rejected with clear error messages" ] }

Retorno

A resposta depende da operação:

Operações de estrutura (create_epic, create_ticket, update_epic, update_ticket): Retorna o objeto da entidade criada ou atualizada.

Operações de exclusão (delete_epic, delete_ticket): Retorna confirmação { id, message }.

Operações de vinculação (add_dependencies, remove_dependency, create_blueprint, etc.): Retorna { id, message } ou a entidade vinculada.

Operações de consulta (get_ticket, get_status, gps): Retorna os dados solicitados — objeto ticket, status da sessão ou resumo de planejamento.

advance_phase: Retorna { previousPhase, newPhase, message }.

ℹ️ A especificação transiciona automaticamente entre os estados planning, specifying e validating baseado nas operações que você realiza. Você não gerencia essas transições manualmente.


complete_planning_session

Encerra a sessão de planejamento e dispara o gate de Planning Review.

ParâmetroTipoObrigatórioDescrição
specificationIdstringSimEspecificação para completar o planejamento

Retorno

CampoTipoDescrição
specificationIdstringID da especificação
messagestringMensagem de confirmação
gateResultobjectResultado do Planning Review (se o gate estiver habilitado)
gateResult.passedbooleanSe o review passou
gateResult.scorenumberScore de prontidão (0–100)
gateResult.findingsobject[]Problemas encontrados: { severity, category, field, message, suggestion }

Se o gate de Planning Review está habilitado e a especificação passa, ela avança para ready.


start_work_session

Inicia trabalho de implementação em um ticket específico.

ParâmetroTipoObrigatórioDescrição
ticketIdstringSimTicket para trabalhar (deve estar em status ready)

Transiciona o ticket de ready para active.

Retorno

Retorna o contexto completo de implementação:

CampoTipoDescrição
ticketTicketO ticket sendo implementado (objeto completo)
epicEpicO épico pai
specificationSpecificationA especificação pai
dependencies.blockedByobject[]Tickets que devem ser concluídos antes: { id, title, status }
dependencies.blocksobject[]Tickets aguardando este: { id, title, status }
relatedTicketsobject[]Outros tickets no mesmo épico: { id, title, status, sameEpic }
patternsobjectPadrões de código e convenções do projeto
activeSessionobject | nullResumo da sessão de implementação ativa
previousAttemptsobject[]Tentativas anteriores de implementação com resultados de testes
relatedDiscoveriesobject[]Descobertas de tickets relacionados
{ "ticket": { "id": "tkt_abc123", "title": "Implement JWT token generation", "status": "in_progress", "acceptanceCriteria": [ { "id": "ac-0", "description": "Tokens are signed with RS256", "validated": false } ], "implementation": { "steps": [ { "order": 1, "title": "Create JwtService", "action": "create", "detail": "..." } ] }, ... }, "epic": { "id": "epic_456", "title": "Token Management", ... }, "specification": { "id": "spec_xyz789", "title": "Auth System", ... }, "dependencies": { "blockedBy": [], "blocks": [...] }, "relatedTickets": [...], "previousAttempts": [], "relatedDiscoveries": [] }

action_work_session

Registra progresso, resultados e descobertas durante a implementação.

ParâmetroTipoObrigatórioDescrição
ticketIdstringSimTicket ativo
stepsobject[]NãoAtualizações de conclusão de passos
acceptanceCriteriaobject[]NãoResultados de critérios de aceite
testResultsobject[]NãoResultados de execução de testes
notesstringNãoNotas de implementação
filesobject[]NãoMudanças de arquivo feitas
discoveryobjectNãoNovas informações descobertas durante implementação
blockReasonstringNãoReportar um bloqueador externo
{ "ticketId": "tkt_abc123", "steps": [ { "index": 0, "completed": true }, { "index": 1, "completed": true } ], "files": [ { "path": "src/auth/jwt.service.ts", "action": "created" }, { "path": "src/auth/jwt.service.test.ts", "action": "created" } ], "notes": "Used jose library instead of jsonwebtoken for Edge Runtime compatibility." }

Retorno

Retorna confirmação com o estado atualizado da work session:

CampoTipoDescrição
ticketIdstringID do ticket
workSessionIdstringID da work session
messagestringMensagem de confirmação

complete_work_session

Finaliza trabalho em um ticket com um resumo e resultados de validação.

ParâmetroTipoObrigatórioDescrição
ticketIdstringSimTicket ativo
summarystringSimResumo do trabalho realizado
filesobject[]NãoLista final de mudanças de arquivo
actualHoursnumberNãoHoras gastas na implementação
validationobjectNãoResultados de validação: tests, lint, typeCheck, build

Retorno

CampoTipoDescrição
ticketIdstringID do ticket
status"done"Novo status do ticket
workSessionIdstringID da work session concluída
messagestringMensagem de confirmação
dependentsUnblockedstring[]IDs de tickets que se tornaram ready como resultado

Transiciona o ticket de active para done. Tickets dependentes são recalculados e podem se tornar ready.


start_review_session

Inicia uma sessão de Implementation Review para uma especificação.

ParâmetroTipoObrigatórioDescrição
specificationIdstringSimEspecificação a revisar (deve estar em estado ready_for_review)

Retorno

CampoTipoDescrição
specificationIdstringID da especificação
reviewSessionIdstringID da sessão de review
previousStatusstringStatus antes do review
newStatusstringNovo status ("in_review")
messagestringMensagem de confirmação
initialFindingsnumberNúmero de achados da varredura inicial

action_review_session

Endereça achados durante uma sessão de review ativa.

ParâmetroTipoObrigatórioDescrição
specificationIdstringSimEspecificação sendo revisada
reviewSessionIdstringSimID da sessão de review ativa
findingsAddressedobject[]SimLista de achados e como foram endereçados

Retorno

CampoTipoDescrição
messagestringMensagem de confirmação
findingsAddressednumberNúmero de achados endereçados nesta ação
findingsRemainingnumberNúmero de achados não resolvidos

complete_review_session

Conclui o Implementation Review.

ParâmetroTipoObrigatórioDescrição
specificationIdstringSimEspecificação sendo revisada
reviewSessionIdstringSimID da sessão de review
summarystringSimResumo do review
confirmAllDismissedbooleanNãoConfirmar que todos os achados restantes são intencionalmente descartados

Retorno

CampoTipoDescrição
specificationIdstringID da especificação
reviewSessionIdstringID da sessão de review
passedbooleanSe o review passou
summarystringResumo do review
findingsAddressednumberTotal de achados endereçados
findingsDismissednumberTotal de achados descartados
newStatusstringNovo status da especificação ("reviewed" ou "completed")

Mutações

Quatro ferramentas para criar, modificar e vincular dados do projeto.

create_specification

Cria uma nova especificação dentro de um projeto.

ParâmetroTipoObrigatórioDescrição
projectIdstringSimProjeto onde criar a especificação
titlestringSimTítulo da especificação
descriptionstringSimDescrição detalhada do que construir

Retorno

Retorna o objeto da especificação criada com todos os campos (veja retornos de get para Specification).

{ "id": "spec_xyz789", "projectId": "proj_123", "title": "User Authentication System", "status": "draft", "progress": 0, ... }

reopen_specification

Reabre uma especificação completada ou revisada para trabalho adicional.

ParâmetroTipoObrigatórioDescrição
specificationIdstringSimEspecificação a reabrir

Retorno

CampoTipoDescrição
specificationIdstringID da especificação
previousStatusstringStatus antes de reabrir
newStatusstringNovo status (ex.: "in_progress")
messagestringMensagem de confirmação

reset_work_session

Reseta tickets completados de volta a um estado trabalhável.

ParâmetroTipoObrigatórioDescrição
specificationIdstringSimContexto da especificação
ticketIdsstring[]SimTickets a resetar
optionsobjectNãoOpções de reset (ex.: limpar arquivos, limpar notas)

Retorno

CampoTipoDescrição
resetWorkSessionstring[]IDs dos tickets que foram resetados
dependentsResetstring[]IDs dos tickets dependentes que foram cascateados
skippedobject[]Tickets que não puderam ser resetados: { ticketId, reason }

⚠️ Resetar tickets limpa dados de work session. Commits e PRs vinculados são preservados, mas conclusões de passos, notas e resultados de critérios de aceite são removidos. O reset cascateia para tickets dependentes.


Associa um pull request a um ticket completado.

ParâmetroTipoObrigatórioDescrição
ticketIdstringSimTicket a vincular
prNumbernumberSimNúmero do pull request
prUrlstringSimURL completa do pull request
titlestringSimTítulo do PR
authorstringSimAutor do PR
repoUrlstringSimURL do repositório

Retorno

Retorna o objeto link criado:

CampoTipoDescrição
idstringID do link
ticketIdstringID do ticket
linkType"pull_request"Tipo de link
urlstringURL do PR
prNumbernumberNúmero do PR
titlestringTítulo do PR
statusstringStatus do PR
createdAtstringTimestamp ISO 8601

Orquestração

Duas ferramentas para entender e navegar o grafo de dependência.

get_critical_path

Calcula a cadeia de dependência mais longa em uma especificação — a sequência de tickets que determina o tempo mínimo para conclusão.

ParâmetroTipoObrigatórioDescrição
specificationIdstringSimEspecificação a analisar

Retorno

CampoTipoDescrição
criticalPathobject[]Lista ordenada de tickets no caminho crítico
criticalPath[].idstringID do ticket
criticalPath[].titlestringTítulo do ticket
criticalPath[].statusstringStatus atual
criticalPath[].estimatedHoursnumberEsforço estimado
criticalPath[].complexitystringNível de complexidade
totalEstimatedHoursnumberSoma do esforço estimado no caminho crítico
pathLengthnumberNúmero de tickets no caminho crítico

get_dependency_tree

Renderiza a árvore de dependência completa upstream e downstream para uma especificação.

ParâmetroTipoObrigatórioDescrição
specificationIdstringSimEspecificação a analisar

Retorno

Retorna uma estrutura de árvore mostrando todos os tickets, suas dependências e status:

CampoTipoDescrição
treeobject[]Nós raiz (tickets sem dependências)
tree[].idstringID do ticket
tree[].titlestringTítulo do ticket
tree[].statusstringStatus atual
tree[].epicIdstringID do épico pai
tree[].childrenobject[]Tickets dependentes downstream (estrutura recursiva)
totalTicketsnumberContagem total de tickets
completedTicketsnumberContagem de tickets concluídos

Útil para visualizar a forma geral do trabalho e identificar gargalos.


Utilitário

feedback

Submeta feedback, reporte problemas ou sugira melhorias.

ParâmetroTipoObrigatórioDescrição
operation"submit" | "list" | "get"SimOperação de feedback
categorystringNãoCategoria do feedback (para submit)
summarystringNãoResumo do feedback (para submit)
severitystringNãoSeveridade do problema (para submit)
toolstringNãoQual ferramenta o feedback se refere (para submit)

Retorno

Depende da operação:

  • submit: Retorna { id, message } — o ID do feedback e confirmação.
  • list: Retorna um array de entradas de feedback com id, category, summary, status, createdAt.
  • get: Retorna a entrada completa do feedback por ID.

Veja Também