AntBot MCP Server

Un servidor MCP en TypeScript para integrarse con la plataforma RPA basada en IA AntBot, manejando el listado y ejecución de herramientas.

Documentación

AntBot MCP Server

AntBot MCP Server es un servidor TypeScript basado en Model Context Protocol (MCP), diseñado para la integración con AntBot, una plataforma RPA basada en IA.
Este servidor interactúa con clientes MCP y proporciona herramientas para la gestión y ejecución de proyectos AntBot.

✨ Características principales

  • Interfaz de servidor de herramientas MCP implementada
  • Consulta de lista de proyectos AntBot (Get_AntBot_Project_List)
  • Consulta de información detallada del proyecto (Get_AntBot_Project_Info) - incluye información de parámetros
  • Ejecución de proyectos (Run_AntBot_Project) - soporta transferencia de parámetros
  • Detección de procesos en ejecución - prevención de ejecución duplicada (entorno Windows)
  • Consulta de registros de ejecución (Get_Last_Mcprun_Log) - verificación de los últimos registros de mcprun
  • Gestión automática de configuración - carga automática de configuración desde el archivo de configuración de AntBot Robot
  • Caché de proyectos - almacenamiento en caché de información de proyectos para optimización de rendimiento
  • Sistema de registro - registro detallado y soporte de depuración
  • Estructura modular basada en TypeScript

🏗️ Arquitectura

Estructura del proyecto

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 principales

  1. Clase McpServer (index.ts)

    • Gestión de instancias del servidor MCP
    • Configuración de manejadores de solicitudes
    • Manejo de errores y registro
  2. Clase ProjectService (projectService.ts)

    • Consulta de lista de proyectos
    • Análisis de información del proyecto (antConf.xml)
    • Descarga y ejecución de proyectos
    • Detección de procesos en ejecución (tasklist de Windows)
    • Sistema de caché
  3. Clase LogService (logService.ts)

    • Consulta de archivos de registro de mcprun
    • Función de cola (tail) de los últimos registros
  4. Gestión de configuración (config.ts)

    • Carga automática del archivo de configuración de AntBot Robot
    • Validación de configuración requerida
    • Gestión dinámica de configuración

🛠️ Instalación y compilación

Requisitos previos

  • Node.js v16 o superior (recomendado: versión LTS)
  • Entorno Windows (función de detección de procesos de AntBot Runner)
  • AntBot Robot instalado y vinculado al administrador
  • Archivo de configuración de AntBot Robot existente: %APPDATA%\Roaming\AntBotRobot\AntBot_Robot.exe.config

Instalación

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

# 의존성 설치
npm install

# 빌드
npm run build

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

🧩 Configuración de herramientas MCP

1. Get_AntBot_Project_List

Consulta la lista de proyectos disponibles en el administrador de AntBot.

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

Ejemplo de respuesta:

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

2. Get_AntBot_Project_Info

Consulta la información detallada de un proyecto específico y los parámetros necesarios para su ejecución.

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

Ejemplo de respuesta:

{
  "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

Ejecuta un proyecto. Primero debe llamar a Get_AntBot_Project_Info para verificar la información del proyecto.

{
  "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"]
  }
}

Ejemplo de uso:

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

Prevención de ejecución duplicada:

  • Verificación del estado del proceso de AntBot Runner antes de la ejecución
  • Si ya está en ejecución, se genera un error con el mensaje "현재 AntBot이 다른 작업을 수행 중입니다."

4. Get_Last_Mcprun_Log

Consulta las últimas 100 líneas del registro de mcprun más reciente.

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

Ejemplo de respuesta:

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

🔧 Scripts principales

ComandoDescripción
npm run buildCompilación de TypeScript y configuración de permisos de ejecución
npm run cleanEliminación del directorio de compilación
npm run cleanbuildLimpieza y recompilación
npm run watchCompilación automática al detectar cambios en archivos
npm run inspectorEjecución de pruebas con MCP Inspector

🧪 Métodos de prueba

1. Uso de MCP Inspector

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

# 서버 테스트
npm run inspector

2. Escenarios de prueba

  1. Consulta de lista de proyectos: llamada a Get_AntBot_Project_List
  2. Consulta de información del proyecto: llamada a Get_AntBot_Project_Info (requiere projectId)
  3. Ejecución del proyecto: llamada a Run_AntBot_Project (requiere projectId, projectPath, parameters)
  4. Consulta de registros: llamada a Get_Last_Mcprun_Log

🧠 Integración con Claude Desktop

Requisitos previos

  • Claude Desktop instalado
  • AntBot Robot vinculado al administrador
  • Verificación del funcionamiento correcto del servidor con MCP Inspector

Método de registro

Método 1: GUI de Claude Desktop

  1. Ejecutar Claude Desktop
  2. Configuración → Desarrollador → Editar configuración
  3. Editar el archivo %APPDATA%\Roaming\Claude\claude_desktop_config.json

Método 2: Configuración directa

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

⚠️ Importante: Reinicio de Claude Desktop

Después de cambiar la configuración, debe cerrar completamente y reiniciar Claude Desktop:

  1. Haga clic derecho en el icono de Claude en la bandeja del sistema
  2. Seleccione Salir (cierre completo)
  3. Ejecute Claude Desktop nuevamente

💡 Nota: No basta con cerrar la ventana; debe cerrar completamente a través del icono de la bandeja para que la configuración se aplique.

Ejemplo de uso

Puede solicitar a Claude lo siguiente:

  • "Muéstrame la lista de proyectos de AntBot"
  • "Dame información del proyecto PR000000298"
  • "Ejecuta el proyecto PR000000298"
  • "Muéstrame los últimos registros de ejecución"

⚙️ Gestión de configuración

Carga automática de configuración

El servidor lee automáticamente el archivo de configuración de AntBot Robot en la siguiente ruta:

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

Elementos de configuración requeridos

  • MANAGER_USER: ID de usuario del administrador
  • MANAGER_IP: IP del servidor del administrador
  • MANAGER_PORT: Puerto del servidor del administrador
  • AntBot Runner: Ruta del archivo ejecutable de AntBot Runner

Validación de configuración

Si falta configuración requerida al iniciar el servidor, se genera un error:

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

🔍 Registro y depuración

Ubicación de registros

%USERPROFILE%\.AntBot\Log\Develop\

Niveles de registro

  • INFO: Información general de operaciones
  • DEBUG: Información detallada de depuración
  • WARN: Información de advertencia (como fallos en la detección de procesos)
  • ERROR: Información de errores

Mensajes de registro principales

  • Inicialización e inicio del servidor
  • Resultados de llamadas a API
  • Estado de descarga y ejecución de proyectos
  • Resultados de validación de configuración
  • Verificación del estado del proceso de AntBot Runner

Registros de mcprun

  • Formato de nombre de archivo: mcprun_YYYYMMDDHHMMSS.log
  • Ubicación: %USERPROFILE%\.AntBot\Log\Develop\
  • Consulta de los últimos registros a través de herramientas MCP

📦 Dependencias

Dependencias principales

  • @modelcontextprotocol/sdk: Implementación del servidor MCP
  • jsdom: Análisis de archivos de configuración XML
  • adm-zip: Procesamiento de archivos ZIP de proyectos
  • sudo-prompt: Ejecución con privilegios de administrador (si es necesario)
  • xml2js: Análisis XML

Dependencias de desarrollo

  • typescript: Compilador de TypeScript
  • rimraf: Eliminación de directorios multiplataforma
  • @types/*: Definiciones de tipos

🚀 Optimización de rendimiento

Sistema de caché

  • Almacenamiento en caché de información de proyectos (5 minutos)
  • Prevención de descargas duplicadas
  • Optimización de llamadas a API

Manejo de errores

  • Mensajes de error detallados
  • Lógica de reintentos
  • Degradación gradual

Gestión de procesos

  • Detección de procesos mediante tasklist de Windows
  • Protección de recursos mediante prevención de ejecución duplicada
  • Manejo conservador (permite ejecución si falla la detección)

🔒 Seguridad y estabilidad

Detección de procesos

  • Solo compatible con entornos Windows
  • Verificación segura de procesos mediante el comando tasklist
  • Garantía de estabilidad incluso si falla la detección

Gestión de permisos

  • Ejecución con privilegios de administrador mediante sudo-prompt
  • Elevación de permisos solo cuando sea necesario

📞 Soporte y contacto

  • Relacionado con AntBot: Equipo de Soluciones AX de ICT
  • Relacionado con MCP: Documentación oficial de MCP
  • Reporte de problemas: Issues de GitHub

📄 Licencia

Este proyecto se distribuye bajo la licencia MIT.