Skip to main content
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:
    • 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

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.