Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.synkrony.ai/llms.txt

Use this file to discover all available pages before exploring further.

O Model Context Protocol é uma forma organizada de estruturar as informações que enviamos para modelos de linguagem (LLMs), permitindo que nos comuniquemos de maneira mais eficiente e consistente. Ele funciona como se fosse uma API para LLMs. O Synkrony utiliza o SDK oficial do Ruby para MCP (modelcontextprotocol/ruby-sdk), mantido oficialmente pela Anthropic e Shopify.

Ideação para o Synkrony

A ideia é que você consiga, por meio da sua LLM predileta, organizar e obter informações de um projeto no Synkrony de maneira mais eficiente.

Como usar?

1. Criar uma chave de API

Primeiro, crie uma chave de API seguindo o guia de Configuração de Tokens de API.

2. Configurar o MCP

Escolha uma das opções abaixo para conectar o MCP do Synkrony com sua LLM:

Opção A: Claude Code (Recomendado)

Para produção, use o endpoint de produção:
claude mcp add --scope user --transport http synkrony https://app.synkrony.ai/mcp/messages --header "Authorization: Bearer SEU-TOKEN-AQUI"

Opção B: Windsurf / Cursor

Crie ou edite o arquivo mcp_config.json:
{
  "mcpServers": {
    "synkrony": {
      "transport": {
        "type": "http",
        "url": "https://app.synkrony.ai/mcp/messages",
        "headers": {
          "Authorization": "Bearer SEU-TOKEN-AQUI"
        }
      }
    }
  }
}
Endpoint MCP: POST https://app.synkrony.ai/mcp/messages

Recursos e Ferramentas Disponíveis

O MCP do Synkrony oferece dois tipos de capacidades:

Resources (Dados que podem ser lidos)

Team Resource

  • URI: synkrony://team
  • Descrição: Lista todos os membros ativos da equipe disponíveis para atribuição de tarefas
  • Filtros: page, limit (paginação)

Tasks Resource

  • URI: synkrony://tasks
  • Descrição: Lista e filtra tarefas com ordenação inteligente e sugestões de próximas ações
Filtros disponíveis via Query String:
  • user_name - Filtrar por responsável
  • sprint_name - Filtrar por sprint
  • project_name - Filtrar por projeto
  • project_module_name - Filtrar por módulo do projeto
  • status_name - Filtrar por status
  • task_summary - Buscar por texto no nome da tarefa
  • next_tasks_only - Apenas tarefas da sprint atual em andamento
  • future_sprint_task - Apenas tarefas de sprints futuras
  • only_important - Apenas tarefas com prioridade alta
  • order_by - Ordenar por: priority, created_at, updated_at, position, name
  • order_direction - Direção: asc ou desc
  • page, limit - Paginação
Exemplos de uso com Query String:
# Filtrar por sprint específica
synkrony://tasks?sprint_name=Sprint%201677

# Filtrar por projeto e status
synkrony://tasks?project_name=Synkrony&status_name=Done

# Apenas tarefas importantes da sprint atual
synkrony://tasks?next_tasks_only=true&only_important=true

# Buscar por texto no nome
synkrony://tasks?task_summary=MCP

# Ordenar por prioridade descendente
synkrony://tasks?order_by=priority&order_direction=desc
Resource Templates Disponíveis: O servidor também expõe Resource Templates para consultas comuns. Use o método resources/templates/list para descobrir os templates disponíveis:
  • synkrony://tasks?sprint_name={sprint_name} - Filtrar por sprint
  • synkrony://tasks?project_name={project_name} - Filtrar por projeto
  • synkrony://tasks?sprint_name={sprint_name}&project_name={project_name} - Sprint e projeto
  • synkrony://tasks?next_tasks_only=true - Tarefas da sprint atual
  • synkrony://tasks?status_name={status_name} - Filtrar por status
  • synkrony://tasks?user_name={user_name} - Filtrar por responsável
Os clientes MCP podem usar esses templates substituindo os valores entre { } pelos valores desejados.

Tools (Ações que podem ser executadas)

CreateTasksTool

  • Uso: create_tasks - Cria novas tarefas
  • Parâmetros:
    • name (obrigatório) - Nome da tarefa
    • project_name (obrigatório) - Nome do projeto
    • description - Descrição da tarefa
    • sprint_name - Nome da sprint
    • project_module_name - Nome do módulo do projeto
    • status - Status: Backlog, Ongoing, Done
    • priority - Prioridade: high, medium, low
    • estimate - Estimativa em horas (não pode ser zero ou negativo)
    • assignee_names - Array de nomes dos responsáveis: ["João Silva", "Maria Santos"]
    • tags - Array de tags: ["frontend", "urgente"]

EditTasksTool

  • Uso: edit_tasks - Edita tarefas existentes
  • Parâmetros:
    • id (obrigatório) - ID da tarefa a editar
    • Mesmos parâmetros do CreateTasksTool, mas todos são opcionais exceto id

Agente de Planejamento de Tarefas

Nosso MCP foi criado com o intuito de facilitar o planejamento de tarefas na sprint via chatbot. A ideia é que, em breve, teremos uma interface integrada à plataforma, mas por enquanto é possível escrever um prompt para planejar a sprint:
Você é um assistente que ajuda a planejar sprints para equipes de software usando o Synkrony.

O usuário irá descrever suas necessidades em linguagem natural.

Você deve extrair os seguintes campos da conversa:

- sprint_name (nome da sprint)
- team: lista de pessoas que serão alocadas nas tarefas, suas áreas de foco e sua capacidade em horas na sprint
- priority_areas (qual será o foco da equipe nesta sprint)

## Recursos e Ferramentas MCP Disponíveis

Use os seguintes recursos e ferramentas do Synkrony para o planejamento de sprints:

### 1. Team Resource

- **URI**: `synkrony://team`
- **Uso**: Leia este recurso para obter a lista de todos os membros ativos da equipe disponíveis para atribuição de tarefas
- **Filtros**: `page`, `limit` (para paginação)

### 2. Tasks Resource

- **URI**: `synkrony://tasks`
- **Uso**: Leia este recurso para listar e filtrar tarefas existentes
- **Filtros úteis**:
  - `sprint_name` - Filtrar por sprint específica
  - `project_name` - Filtrar por projeto
  - `user_name` - Filtrar por responsável
  - `status_name` - Filtrar por status
  - `next_tasks_only` - Apenas tarefas em andamento da sprint atual

### 3. CreateTasksTool

- **Uso**: Chame esta ferramenta para criar novas tarefas com nome, descrição, projeto, sprint, responsáveis, estimativas e tags

### 4. EditTasksTool

- **Uso**: Chame esta ferramenta para editar tarefas existentes (requer ID da tarefa) para atualizar qualquer campo

## Processo de Planejamento

1. Seu primeiro objetivo é completar o JSON com a estrutura de resposta:

- **Comece lendo o recurso `synkrony://team`** para obter a equipe disponível.
- **Leia o recurso `synkrony://tasks`** com filtros apropriados para ver as tarefas existentes do projeto/sprint.
- Popule o JSON com os campos necessários, perguntando ao usuário conforme necessário.

2. Depois que o JSON estiver pronto, valide com o usuário antes de editar/criar as tarefas necessárias.
3. Use `create_tasks` para criar novas tarefas ou `edit_tasks` para editar tarefas existentes.

## Estrutura do JSON

{
"ready": true,
"sprint_name": "Nome da Sprint",
"team": [
{"name": "Nome", "hours_per_person": "X", "skill_focus": "Área"},
...
],
"priority_areas": ["Área1", "Área2", ...]
}

## Regras Adicionais

- Priorize tarefas com um único responsável sempre que possível.
- Permita, no máximo, dois responsáveis por tarefa.
- Use os nomes das sprints do Synkrony para manter a consistência.
- Sempre verifique tarefas existentes antes de criar novas.
- Mantenha as estimativas realistas, baseadas na capacidade da equipe.