Skip to main content
Glama

Batman MCP Server

Este é um servidor MCP (Model Context Protocol) para a aplicação Batman API, que permite gerenciar o sistema de escalação de desenvolvedores para resolver incidentes durante a sprint.

📋 Funcionalidades

O servidor MCP expõe as seguintes funcionalidades da API Batman:

🔐 Autenticação

  • batman_login: Fazer login na API Batman

  • batman_register: Registrar novo usuário na API Batman

👥 Desenvolvedores

  • batman_get_developers: Listar todos os desenvolvedores

  • batman_get_developer: Obter um desenvolvedor específico

  • batman_create_developer: Criar um novo desenvolvedor

  • batman_update_developer: Atualizar um desenvolvedor

  • batman_delete_developer: Remover um desenvolvedor

🚫 Indisponibilidades

  • batman_get_unavailabilities: Listar indisponibilidades

  • batman_create_unavailability: Criar uma nova indisponibilidade

🦇 Batman

  • batman_get_current_batman: Obter o Batman e Robin atuais

  • batman_get_priority_details: Obter detalhes do cálculo de prioridade

  • batman_assign_batman: Atribuir o Batman atual

📜 Histórico

  • batman_get_history: Obter histórico de Batmans

Related MCP server: Ticket Management & Meeting Overview MCP Server

🚀 Instalação

  1. Instalar dependências:

npm install
  1. Compilar o projeto:

npm run build
  1. Executar o servidor:

npm start

🔧 Configuração

O servidor MCP se conecta à API Batman no endereço http://localhost:3000 por padrão. Para alterar a URL da API, modifique o construtor da classe BatmanApiClient em src/api-client.ts.

📖 Uso

Configuração no Cliente MCP

Adicione o servidor ao seu cliente MCP (como Claude Desktop):

{
  "mcpServers": {
    "batman": {
      "command": "node",
      "args": ["/caminho/para/batman-mcp-server/dist/index.js"]
    }
  }
}

Exemplos de Uso

1. Fazer Login

{
  "name": "batman_login",
  "arguments": {
    "username": "admin",
    "password": "admin123"
  }
}

2. Obter Batman Atual

{
  "name": "batman_get_current_batman",
  "arguments": {}
}

3. Listar Desenvolvedores

{
  "name": "batman_get_developers",
  "arguments": {
    "byPriority": true
  }
}

4. Criar Desenvolvedor

{
  "name": "batman_create_developer",
  "arguments": {
    "name": "João Silva",
    "priority": 0
  }
}

5. Criar Indisponibilidade

{
  "name": "batman_create_unavailability",
  "arguments": {
    "developerId": "uuid-do-desenvolvedor",
    "description": "Férias",
    "startDate": "2024-01-15T00:00:00.000Z",
    "endDate": "2024-01-30T23:59:59.999Z",
    "level": 8
  }
}

6. Atribuir Batman

{
  "name": "batman_assign_batman",
  "arguments": {}
}

🏗️ Estrutura do Projeto

src/
├── index.ts              # Ponto de entrada
├── mcp-server.ts         # Servidor MCP principal
├── api-client.ts         # Cliente da API Batman
└── types.ts              # Tipos TypeScript

🔒 Autenticação

Para usar funcionalidades que requerem autenticação (criar, atualizar, remover), você deve primeiro fazer login usando batman_login ou batman_register. O token JWT será automaticamente incluído nas requisições subsequentes.

📝 Desenvolvimento

Executar em modo de desenvolvimento:

npm run dev

Linting:

npm run lint

Formatação:

npm run format

🔗 API Batman

Este servidor MCP se conecta à API Batman que deve estar rodando em http://localhost:3000. Para mais informações sobre a API, consulte a documentação em ../api/README_API.md.

📄 Licença

ISC

Available Tools

14 tools
batman_assign_batmanD

Atribuir o Batman atual

Inputs: no named parameters.

batman_create_developerC

Criar um novo desenvolvedor

Inputs: name (required), priority.

batman_create_unavailabilityD

Criar uma nova indisponibilidade

Inputs: level (required), endDate (required), startDate (required), description (required), +1 more.

batman_delete_developerC

Remover um desenvolvedor

Inputs: id (required).

batman_get_current_batmanB

Obter o Batman e Robin atuais

Inputs: no named parameters.

batman_get_developerB

Obter um desenvolvedor específico

Inputs: id (required).

batman_get_developersC

Listar todos os desenvolvedores

Inputs: name, byPriority.

batman_get_historyC

Obter histórico de Batmans

Inputs: id.

batman_get_priority_detailsC

Obter detalhes do cálculo de prioridade

Inputs: no named parameters.

batman_get_unavailabilitiesC

Listar indisponibilidades

Inputs: developerId.

batman_loginC

Fazer login na API Batman

Inputs: password (required), username (required).

batman_recalculate_prioritiesC

Recalcular prioridades dos desenvolvedores

Inputs: no named parameters.

batman_registerC

Registrar novo usuário na API Batman

Inputs: email (required), password (required), username (required).

batman_update_developerD

Atualizar um desenvolvedor

Inputs: id (required), name, priority.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.8/5.0

    Scored across 14 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action. Developer CRUD, unavailability list/create, and Batman assignment/history/priority operations are clearly separated, with no overlapping purposes.

    Naming Consistency4/5

    All tools use a consistent batman_ prefix and follow a verb_noun pattern, but there are minor inconsistencies such as mixed singular/plural nouns (e.g., get_developers vs get_developer) and compound verb forms (get_current_batman, recalculate_priorities).

    Tool Count5/5

    14 tools is well within the ideal range and each tool serves a specific function in managing developers, unavailability, and Batman assignments.

    Completeness4/5

    The developer lifecycle is fully covered with CRUD, but unavailability is missing update and delete operations, representing a minor gap in the otherwise complete workflow.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers