MCP Movidesk Server
# đ« MCP Movidesk Server
Servidor MCP (Model Context Protocol) para gerenciamento de tickets do Movidesk, construĂdo em **TypeScript + Node.js**.
Permite que agentes de IA criem, consultem, pesquisem e gerenciem tickets diretamente no Movidesk, sem precisar acessar a plataforma manualmente.
---
## đ Ferramentas DisponĂveis
| # | Ferramenta | Descrição |
|---|-----------|-----------|
| 1 | `criar_ticket` | Criar novo ticket com macro de suporte (atendimento/escalonamento) |
| 2 | `consultar_ticket` | Buscar detalhes completos de um ticket por ID |
| 3 | `buscar_conhecimento` | Pesquisar tickets resolvidos como base de conhecimento |
| 4 | `adicionar_interacao` | Adicionar comentårio/ação em ticket existente |
| 5 | `listar_tickets_cliente` | Listar tickets de um cliente por nome/email/CPF/CNPJ |
| 6 | `alterar_status_ticket` | Mudar status do ticket (Novo, Em atendimento, Resolvido, etc.) |
| 7 | `atribuir_agente` | Atribuir ticket a um agente ou equipe |
---
## đ Instalação
### 1. Instalar dependĂȘncias
```bash
cd c:\Users\Usuario\Documents\Mcp_Eagle
npm install
```
### 2. Configurar token da API
Copie o arquivo de exemplo e insira seu token:
```bash
copy .env.example .env
```
Edite o arquivo `.env` e substitua `seu_token_aqui` pelo seu token real:
```
MOVIDESK_TOKEN=seu_token_real_aqui
```
> **Onde encontrar o token:** Movidesk > Configuração > Conta > Parùmetros > Aba Ambiente
### 3. Compilar o projeto
```bash
npm run build
```
---
## âïž Configuração no Antigravity
Adicione a seguinte configuração ao seu `settings.json` do Antigravity:
```json
{
"mcpServers": {
"mcp-movidesk": {
"command": "node",
"args": ["c:\\Users\\Usuario\\Documents\\Mcp_Eagle\\dist\\index.js"],
"env": {
"MOVIDESK_TOKEN": "seu_token_aqui"
}
}
}
}
```
---
## đ§Ș Testes
Execute todos os testes:
```bash
npm test
```
Modo watch (re-executa ao salvar):
```bash
npm run test:watch
```
---
## ïżœ Docker (Swarm & Portainer)
O projeto estå configurado para ser implantado facilmente através de Portainer/Docker Swarm com suporte a **Traefik** e HTTPS nativo via pacote *Express*.
### Build da Imagem
Para criar a imagem Docker otimizada:
```bash
docker build -t mcp-movidesk-eagle:latest .
```
### Deploy no Portainer (Stacks)
1. Acesse seu Portainer.
2. Navegue até **Swarm > Stacks** e clique em **Add stack**.
3. Copie o conteĂșdo do arquivo `docker-compose.yml` e cole no Web Editor.
4. Na seção **Environment variables**, adicione `MOVIDESK_TOKEN` com o seu token real.
5. Clique em **Deploy the stack**.
> A configuração utiliza o **Traefik** como proxy e vai publicar automaticamente em `https://mcp.wizeflowsolutions.com/mcp`.
---
## đ Configuração Remota (via DomĂnio)
Para utilizar as ferramentas do MCP em clientes modernos ou em nuvem que suportam conexĂ”es via **domĂnio (SSE - Server-Sent Events)** como Dify, Flowise, Cursor ou LangChain, vocĂȘ informarĂĄ que o tipo de conexĂŁo Ă© remota.
O formato `JSON` para essas configuraçÔes:
```json
{
"mcpServers": {
"mcp-movidesk-cloud": {
"type": "sse",
"url": "https://mcp.wizeflowsolutions.com/mcp"
}
}
}
```
> **Atenção:** Em aplicativos puramente locais não adaptados para leitura web, utilize o método CLI fornecido na seção de "Configuração no Antigravity".
---
## ïżœđ Estrutura do Projeto
```
src/
âââ index.ts # Ponto de entrada (stdio transport)
âââ servidor-mcp.ts # Registra as 7 ferramentas
âââ cliente-movidesk/
â âââ api.ts # Cliente HTTP com rate-limiting
â âââ tipos.ts # Tipos TypeScript (interfaces/enums)
âââ ferramentas/
â âââ criar-ticket.ts # Criar ticket com macro
â âââ consultar-ticket.ts # Consultar ticket por ID
â âââ buscar-conhecimento.ts # Base de conhecimento
â âââ adicionar-interacao.ts # Adicionar interação
â âââ listar-tickets.ts # Listar tickets do cliente
â âââ alterar-status.ts # Alterar status
â âââ atribuir-agente.ts # Atribuir agente
âââ utilidades/
âââ formatador-html.ts # Markdown â HTML
âââ validacoes.ts # ValidaçÔes (CPF, CNPJ, email)
âââ macros-suporte.ts # Templates HTML de macros
testes/
âââ formatador-html.test.ts
âââ validacoes.test.ts
âââ api-cliente.test.ts
âââ ferramentas.test.ts
```
---
## đ§ Desenvolvimento
```bash
# Executar em modo desenvolvimento (com tsx)
npm run dev
# Compilar TypeScript
npm run build
# Executar versĂŁo compilada
npm start
```
---
## đ Licença
MIT
TDQS
Scored across 8 tools
Each tool targets a clear, distinct resource and action: ticket creation, ticket retrieval, knowledge search, interaction addition, ticket listing by client, client lookup, status change, and agent assignment. There is no overlap or ambiguity between them.
All tool names follow a consistent verb_noun pattern in Portuguese, using snake_case throughout (e.g., criar_ticket, consultar_ticket, alterar_status_ticket). The naming is predictable and readable, with no mixed conventions.
With 8 tools, the server provides a focused set that covers the core ticket management workflow without being bloated or too thin. Each tool serves a distinct function, making the count well-scoped for the domain.
The core ticket lifecycle is covered: create, retrieve, list by client, add interactions, change status, and assign. Minor gaps include lack of a general list-all-tickets endpoint and no update/delete for tickets, but these are workable for a support-focused toolset.