antbot-mcp-server

jinwon-antbotcore/antbot-mcp-server

3.2

If you are the rightful owner of antbot-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

AntBot MCP Server is a TypeScript server based on the Model Context Protocol (MCP) designed for integration with the AI-based RPA platform, AntBot.

Tools
  1. Get_AntBot_Project_List

    Returns a list of antbot projects.

  2. Get_AntBot_Project_Info

    Get project information including required parameters

  3. Run_AntBot_Project

    Run the project with required parameters

  4. Get_Last_Mcprun_Log

    Returns the last 100 lines of the latest mcprun log.

AntBot MCP Server

AntBot MCP ServerλŠ” Model 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 λΌμ΄μ„ μŠ€ ν•˜μ— λ°°ν¬λ©λ‹ˆλ‹€.