AntBot MCP Server

A TypeScript MCP server for integrating with the AntBot AI-based RPA platform, handling tool listing and execution.

AntBot MCP Server

AntBot MCP ServerModel Context Protocol (MCP) 기반의 TypeScript 서버로, AI 기반 RPA 플랫폼인 AntBot과의 연동을 위해 설계되었습니다.
이 서버는 MCP 클라이언트와 상호작용하며, AntBot 프로젝트 관리 및 실행을 위한 도구들을 제공합니다.

✨ 주요 기능

  • MCP Tool 서버 인터페이스 구현
  • AntBot 프로젝트 목록 조회 (Get_AntBot_Project_List)
  • 프로젝트 상세 정보 조회 (Get_AntBot_Project_Info) - 매개변수 정보 포함
  • 프로젝트 실행 (Run_AntBot_Project) - 매개변수 전달 지원
  • 실행 중 프로세스 감지 - 중복 실행 방지 (Windows 환경)
  • 실행 로그 조회 (Get_Last_Mcprun_Log) - 최신 mcprun 로그 확인
  • 자동 설정 관리 - AntBot Robot 설정 파일에서 자동으로 설정 로드
  • 프로젝트 캐싱 - 성능 최적화를 위한 프로젝트 정보 캐싱
  • 로깅 시스템 - 상세한 로그 기록 및 디버깅 지원
  • TypeScript 기반 모듈형 구조

🏗️ 아키텍처

프로젝트 구조

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          # 상수 정의

핵심 컴포넌트

  1. McpServer 클래스 (index.ts)

    • MCP 서버 인스턴스 관리
    • 요청 핸들러 설정
    • 에러 처리 및 로깅
  2. ProjectService 클래스 (projectService.ts)

    • 프로젝트 목록 조회
    • 프로젝트 정보 파싱 (antConf.xml)
    • 프로젝트 다운로드 및 실행
    • 실행 중 프로세스 감지 (Windows tasklist)
    • 캐싱 시스템
  3. LogService 클래스 (logService.ts)

    • mcprun 로그 파일 조회
    • 최신 로그 tail 기능
  4. 설정 관리 (config.ts)

    • AntBot Robot 설정 파일 자동 로드
    • 필수 설정 검증
    • 동적 설정 관리

🛠️ 설치 및 빌드

전제 조건

  • Node.js v16 이상 (권장: LTS 버전)
  • Windows 환경 (AntBot Runner 프로세스 감지 기능)
  • AntBot Robot 설치 및 매니저 연동 완료
  • AntBot Robot 설정 파일 존재: %APPDATA%\Roaming\AntBotRobot\AntBot_Robot.exe.config

설치

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

# 의존성 설치
npm install

# 빌드
npm run build

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

🧩 MCP 도구 구성

1. Get_AntBot_Project_List

AntBot 매니저에서 사용 가능한 프로젝트 목록을 조회합니다.

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

응답 예시:

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

2. Get_AntBot_Project_Info

특정 프로젝트의 상세 정보와 실행에 필요한 매개변수를 조회합니다.

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

응답 예시:

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

프로젝트를 실행합니다. 먼저 Get_AntBot_Project_Info를 호출하여 프로젝트 정보를 확인해야 합니다.

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

사용 예시:

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

중복 실행 방지:

  • 실행 전 AntBot Runner 프로세스 상태 확인
  • 이미 실행 중이면 "현재 AntBot이 다른 작업을 수행 중입니다." 메시지와 함께 오류 발생

4. Get_Last_Mcprun_Log

최신 mcprun 로그의 마지막 100줄을 조회합니다.

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

응답 예시:

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

🔧 주요 스크립트

명령어설명
npm run buildTypeScript 컴파일 및 실행 권한 설정
npm run clean빌드 디렉토리 삭제
npm run cleanbuild클린 후 재빌드
npm run watch파일 변경 감지 시 자동 빌드
npm run inspectorMCP Inspector로 테스트 실행

🧪 테스트 방법

1. MCP Inspector 사용

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

# 서버 테스트
npm run inspector

2. 테스트 시나리오

  1. 프로젝트 목록 조회: Get_AntBot_Project_List 호출
  2. 프로젝트 정보 조회: Get_AntBot_Project_Info 호출 (projectId 필요)
  3. 프로젝트 실행: Run_AntBot_Project 호출 (projectId, projectPath, parameters 필요)
  4. 로그 조회: Get_Last_Mcprun_Log 호출

🧠 Claude Desktop 연동

전제 조건

  • Claude Desktop 설치 완료
  • AntBot Robot 매니저 연동 완료
  • MCP Inspector로 서버 정상 동작 확인

등록 방법

방법 1: Claude Desktop GUI

  1. Claude Desktop 실행
  2. 설정 → 개발자 → 설정편집
  3. %APPDATA%\Roaming\Claude\claude_desktop_config.json 파일 편집

방법 2: 직접 설정

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

⚠️ 중요: Claude Desktop 재시작

설정 변경 후 반드시 Claude Desktop을 완전히 종료하고 재시작해야 합니다:

  1. 시스템 트레이에서 Claude 아이콘 우클릭
  2. 종료 선택 (완전히 종료)
  3. Claude Desktop 다시 실행

💡 참고: 단순히 창을 닫는 것이 아니라 트레이 아이콘을 통해 완전히 종료해야 설정이 적용됩니다.

사용 예시

Claude에게 다음과 같이 요청할 수 있습니다:

  • "AntBot 프로젝트 목록을 보여줘"
  • "PR000000298 프로젝트의 정보를 알려줘"
  • "PR000000298 프로젝트를 실행해줘"
  • "최신 실행 로그를 보여줘"

⚙️ 설정 관리

자동 설정 로드

서버는 다음 경로의 AntBot Robot 설정 파일을 자동으로 읽어옵니다:

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

필수 설정 항목

  • MANAGER_USER: 매니저 사용자 ID
  • MANAGER_IP: 매니저 서버 IP
  • MANAGER_PORT: 매니저 서버 포트
  • AntBot Runner: AntBot Runner 실행 파일 경로

설정 검증

서버 시작 시 필수 설정이 누락된 경우 오류를 발생시킵니다:

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

🔍 로깅 및 디버깅

로그 위치

%USERPROFILE%\.AntBot\Log\Develop\

로그 레벨

  • INFO: 일반적인 작업 정보
  • DEBUG: 상세한 디버깅 정보
  • WARN: 경고 정보 (프로세스 감지 실패 등)
  • ERROR: 오류 정보

주요 로그 메시지

  • 서버 초기화 및 시작
  • API 호출 결과
  • 프로젝트 다운로드 및 실행 상태
  • 설정 검증 결과
  • AntBot Runner 프로세스 상태 확인

mcprun 로그

  • 파일명 형식: mcprun_YYYYMMDDHHMMSS.log
  • 위치: %USERPROFILE%\.AntBot\Log\Develop\
  • MCP 도구를 통해 최신 로그 조회 가능

📦 의존성

핵심 의존성

  • @modelcontextprotocol/sdk: MCP 서버 구현
  • jsdom: XML 설정 파일 파싱
  • adm-zip: 프로젝트 ZIP 파일 처리
  • sudo-prompt: 관리자 권한 실행 (필요시)
  • xml2js: XML 파싱

개발 의존성

  • typescript: TypeScript 컴파일러
  • rimraf: 크로스 플랫폼 디렉토리 삭제
  • @types/*: 타입 정의

🚀 성능 최적화

캐싱 시스템

  • 프로젝트 정보 캐싱 (5분)
  • 중복 다운로드 방지
  • API 호출 최적화

에러 처리

  • 상세한 에러 메시지
  • 재시도 로직
  • Graceful degradation

프로세스 관리

  • Windows tasklist를 통한 프로세스 감지
  • 중복 실행 방지로 리소스 보호
  • 보수적 처리 (감지 실패 시 실행 허용)

🔒 보안 및 안정성

프로세스 감지

  • Windows 환경에서만 지원
  • tasklist 명령어를 통한 안전한 프로세스 확인
  • 감지 실패 시에도 안정성 보장

권한 관리

  • sudo-prompt를 통한 관리자 권한 실행
  • 필요한 경우에만 권한 상승

📞 지원 및 문의

  • AntBot 관련: ICT AX솔루션팀
  • MCP 관련: MCP 공식 문서
  • 이슈 리포트: GitHub Issues

📄 라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다.

Related Servers