AntBot MCP Server

Um servidor MCP em TypeScript para integração com a plataforma RPA baseada em IA AntBot, lidando com listagem e execução de ferramentas.

Documentação

AntBot MCP Server

AntBot MCP Server é um servidor TypeScript baseado no Model Context Protocol (MCP), projetado para integração com o AntBot, uma plataforma RPA baseada em IA.
Este servidor interage com clientes MCP e fornece ferramentas para gerenciamento e execução de projetos AntBot.

✨ Principais recursos

  • Implementação da interface de servidor de ferramentas MCP
  • Consulta da lista de projetos AntBot (Get_AntBot_Project_List)
  • Consulta de informações detalhadas do projeto (Get_AntBot_Project_Info) - inclui informações de parâmetros
  • Execução de projetos (Run_AntBot_Project) - suporte ao envio de parâmetros
  • Detecção de processos em execução - prevenção de execução duplicada (ambiente Windows)
  • Consulta de logs de execução (Get_Last_Mcprun_Log) - verificação dos logs mcprun mais recentes
  • Gerenciamento automático de configuração - carregamento automático das configurações do arquivo de configuração do AntBot Robot
  • Cache de projetos - cache de informações de projetos para otimização de desempenho
  • Sistema de logging - registro detalhado de logs e suporte a depuração
  • Estrutura modular baseada em TypeScript

🏗️ Arquitetura

Estrutura do projeto

src/
├── index.ts              # MCP 서버 진입점 및 메인 클래스
├── projectService.ts     # 프로젝트 관리 비즈니스 로직
├── logService.ts         # 로그 조회 서비스
├── api.ts                # 외부 API 호출 유틸리티
├── config.ts             # 설정 관리 및 검증
├── fileUtils.ts          # 파일 처리 유틸리티 (ZIP, XML 파싱)
├── logger.ts             # 로깅 시스템
├── schema.ts             # Zod 기반 입력 검증 스키마
├── types.ts              # TypeScript 타입 정의
└── constants.ts          # 상수 정의

Componentes principais

  1. Classe McpServer (index.ts)

    • Gerenciamento da instância do servidor MCP
    • Configuração dos manipuladores de requisição
    • Tratamento de erros e logging
  2. Classe ProjectService (projectService.ts)

    • Consulta da lista de projetos
    • Análise das informações do projeto (antConf.xml)
    • Download e execução de projetos
    • Detecção de processos em execução (tasklist do Windows)
    • Sistema de cache
  3. Classe LogService (logService.ts)

    • Consulta de arquivos de log mcprun
    • Recurso de tail dos logs mais recentes
  4. Gerenciamento de configuração (config.ts)

    • Carregamento automático do arquivo de configuração do AntBot Robot
    • Validação das configurações obrigatórias
    • Gerenciamento dinâmico de configuração

🛠️ Instalação e build

Pré-requisitos

  • Node.js v16 ou superior (recomendado: versão LTS)
  • Ambiente Windows (recurso de detecção de processos do AntBot Runner)
  • AntBot Robot instalado e integrado ao gerenciador
  • Arquivo de configuração do AntBot Robot presente: %APPDATA%\Roaming\AntBotRobot\AntBot_Robot.exe.config

Instalação

# 프로젝트 클론
git clone <repository-url>
cd antbot-mcp-server

# 의존성 설치
npm install

# 빌드
npm run build

# 또는 클린 빌드 (기존 빌드 파일 삭제 후 재빌드)
npm run cleanbuild

🧩 Composição das ferramentas MCP

1. Get_AntBot_Project_List

Consulta a lista de projetos disponíveis no gerenciador AntBot.

{
  "name": "Get_AntBot_Project_List",
  "description": "Returns a list of antbot projects.",
  "inputSchema": {
    "type": "object",
    "properties": {},
    "required": []
  }
}

Exemplo de resposta:

{
  "projects": [
    {
      "projectId": "PR000000298",
      "projectName": "웹 스크래핑 프로젝트",
      "description": "웹사이트에서 데이터를 수집하는 프로젝트"
    }
  ]
}

2. Get_AntBot_Project_Info

Consulta as informações detalhadas de um projeto específico e os parâmetros necessários para execução.

{
  "name": "Get_AntBot_Project_Info",
  "description": "Get project information including required parameters",
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": { "type": "string" }
    },
    "required": ["projectId"]
  }
}

Exemplo de resposta:

{
  "projectId": "PR000000298",
  "projectPath": "C:\\temp\\project_298\\antConf.xml",
  "name": "웹 스크래핑 프로젝트",
  "description": "웹사이트에서 데이터를 수집하는 프로젝트",
  "requiredParameters": [
    {
      "name": "url",
      "type": "string",
      "description": "스크래핑할 웹사이트 URL"
    }
  ],
  "optionalParameters": [
    {
      "name": "timeout",
      "type": "number",
      "description": "타임아웃 시간 (초)",
      "defaultValue": 30
    }
  ],
  "parameterSummary": "필수: url (string) | 선택: timeout (number, 기본값: 30)"
}

3. Run_AntBot_Project

Executa o projeto. Primeiro, chame Get_AntBot_Project_Info para verificar as informações do projeto.

{
  "name": "Run_AntBot_Project",
  "description": "Run the project with required parameters",
  "inputSchema": {
    "type": "object",
    "properties": {
      "projectId": { "type": "string" },
      "projectPath": { "type": "string" },
      "parameters": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "required": ["projectId", "projectPath"]
  }
}

Exemplo de uso:

{
  "projectId": "PR000000298",
  "projectPath": "C:\\temp\\project_298\\antConf.xml",
  "parameters": {
    "url": "https://example.com",
    "timeout": 60
  }
}

Prevenção de execução duplicada:

  • Verificação do status do processo AntBot Runner antes da execução
  • Se já estiver em execução, ocorre um erro com a mensagem "현재 AntBot이 다른 작업을 수행 중입니다."

4. Get_Last_Mcprun_Log

Consulta as últimas 100 linhas do log mcprun mais recente.

{
  "name": "Get_Last_Mcprun_Log",
  "description": "Returns the last 100 lines of the latest mcprun log.",
  "inputSchema": {
    "type": "object",
    "properties": {},
    "required": []
  }
}

Exemplo de resposta:

{
  "fileName": "mcprun_20241201143022.log",
  "content": "2024-12-01 14:30:22 [INFO] 프로젝트 실행 시작\n2024-12-01 14:30:23 [INFO] 매개변수 로드 완료\n..."
}

🔧 Scripts principais

ComandoDescrição
npm run buildCompilação TypeScript e configuração de permissão de execução
npm run cleanExclusão do diretório de build
npm run cleanbuildLimpeza e reconstrução
npm run watchBuild automático ao detectar alterações em arquivos
npm run inspectorExecução de testes com o MCP Inspector

🧪 Métodos de teste

1. Uso do MCP Inspector

# MCP Inspector 설치
npm install -g @modelcontextprotocol/inspector

# 서버 테스트
npm run inspector

2. Cenários de teste

  1. Consulta da lista de projetos: chamada Get_AntBot_Project_List
  2. Consulta de informações do projeto: chamada Get_AntBot_Project_Info (requer projectId)
  3. Execução do projeto: chamada Run_AntBot_Project (requer projectId, projectPath, parameters)
  4. Consulta de logs: chamada Get_Last_Mcprun_Log

🧠 Integração com Claude Desktop

Pré-requisitos

  • Claude Desktop instalado
  • Integração com o gerenciador AntBot Robot concluída
  • Verificação do funcionamento correto do servidor com o MCP Inspector

Método de registro

Método 1: GUI do Claude Desktop

  1. Execute o Claude Desktop
  2. Configurações → Desenvolvedor → Editar configurações
  3. Edite o arquivo %APPDATA%\Roaming\Claude\claude_desktop_config.json

Método 2: Configuração direta

{
  "mcpServers": {
    "antbot-mcp-server": {
      "command": "node",
      "args": ["C:\\path\\to\\antbot-mcp-server\\build\\index.js"]
    }
  }
}

⚠️ Importante: Reiniciar o Claude Desktop

Após alterar as configurações, é obrigatório encerrar completamente e reiniciar o Claude Desktop:

  1. Clique com o botão direito no ícone do Claude na bandeja do sistema
  2. Selecione Sair (encerramento completo)
  3. Execute o Claude Desktop novamente

💡 Observação: Não basta fechar a janela; é necessário encerrar completamente pelo ícone da bandeja para que as configurações sejam aplicadas.

Exemplos de uso

Você pode solicitar ao Claude o seguinte:

  • "Mostre a lista de projetos AntBot"
  • "Informe os dados do projeto PR000000298"
  • "Execute o projeto PR000000298"
  • "Mostre o log de execução mais recente"

⚙️ Gerenciamento de configuração

Carregamento automático de configuração

O servidor lê automaticamente o arquivo de configuração do AntBot Robot no seguinte caminho:

%APPDATA%\Roaming\AntBotRobot\AntBot_Robot.exe.config

Itens de configuração obrigatórios

  • MANAGER_USER: ID de usuário do gerenciador
  • MANAGER_IP: IP do servidor do gerenciador
  • MANAGER_PORT: Porta do servidor do gerenciador
  • AntBot Runner: Caminho do executável do AntBot Runner

Validação de configuração

Se alguma configuração obrigatória estiver ausente na inicialização do servidor, um erro será gerado:

AntBot Robot에서 매니저 연동을 먼저 진행해주세요.

🔍 Logging e depuração

Localização dos logs

%USERPROFILE%\.AntBot\Log\Develop\

Níveis de log

  • INFO: Informações gerais de operação
  • DEBUG: Informações detalhadas de depuração
  • WARN: Informações de aviso (falha na detecção de processos, etc.)
  • ERROR: Informações de erro

Principais mensagens de log

  • Inicialização e início do servidor
  • Resultados de chamadas de API
  • Status de download e execução de projetos
  • Resultados da validação de configuração
  • Verificação do status do processo AntBot Runner

Logs mcprun

  • Formato do nome do arquivo: mcprun_YYYYMMDDHHMMSS.log
  • Localização: %USERPROFILE%\.AntBot\Log\Develop\
  • É possível consultar os logs mais recentes por meio das ferramentas MCP

📦 Dependências

Dependências principais

  • @modelcontextprotocol/sdk: Implementação do servidor MCP
  • jsdom: Análise de arquivos de configuração XML
  • adm-zip: Processamento de arquivos ZIP de projetos
  • sudo-prompt: Execução com privilégios de administrador (quando necessário)
  • xml2js: Análise XML

Dependências de desenvolvimento

  • typescript: Compilador TypeScript
  • rimraf: Exclusão de diretórios multiplataforma
  • @types/*: Definições de tipos

🚀 Otimização de desempenho

Sistema de cache

  • Cache de informações de projetos (5 minutos)
  • Prevenção de downloads duplicados
  • Otimização de chamadas de API

Tratamento de erros

  • Mensagens de erro detalhadas
  • Lógica de nova tentativa
  • Degradação graciosa

Gerenciamento de processos

  • Detecção de processos por meio do tasklist do Windows
  • Proteção de recursos com prevenção de execução duplicada
  • Tratamento conservador (permite execução se a detecção falhar)

🔒 Segurança e estabilidade

Detecção de processos

  • Suportado apenas em ambiente Windows
  • Verificação segura de processos por meio do comando tasklist
  • Garantia de estabilidade mesmo em caso de falha na detecção

Gerenciamento de permissões

  • Execução com privilégios de administrador via sudo-prompt
  • Elevação de privilégios apenas quando necessário

📞 Suporte e contato

📄 Licença

Este projeto é distribuído sob a licença MIT.