
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 # μμ μ μν΅μ¬ μ»΄ν¬λνΈ
-
McpServer ν΄λμ€ (
index.ts)- MCP μλ² μΈμ€ν΄μ€ κ΄λ¦¬
- μμ² νΈλ€λ¬ μ€μ
- μλ¬ μ²λ¦¬ λ° λ‘κΉ
-
ProjectService ν΄λμ€ (
projectService.ts)- νλ‘μ νΈ λͺ©λ‘ μ‘°ν
- νλ‘μ νΈ μ 보 νμ± (antConf.xml)
- νλ‘μ νΈ λ€μ΄λ‘λ λ° μ€ν
- μ€ν μ€ νλ‘μΈμ€ κ°μ§ (Windows tasklist)
- μΊμ± μμ€ν
-
LogService ν΄λμ€ (
logService.ts)- mcprun λ‘κ·Έ νμΌ μ‘°ν
- μ΅μ λ‘κ·Έ tail κΈ°λ₯
-
μ€μ κ΄λ¦¬ (
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 build | TypeScript μ»΄νμΌ λ° μ€ν κΆν μ€μ |
npm run clean | λΉλ λλ ν 리 μμ |
npm run cleanbuild | ν΄λ¦° ν μ¬λΉλ |
npm run watch | νμΌ λ³κ²½ κ°μ§ μ μλ λΉλ |
npm run inspector | MCP Inspectorλ‘ ν μ€νΈ μ€ν |
π§ͺ ν μ€νΈ λ°©λ²
1. MCP Inspector μ¬μ©
# MCP Inspector μ€μΉ
npm install -g @modelcontextprotocol/inspector
# μλ² ν
μ€νΈ
npm run inspector2. ν μ€νΈ μλ리μ€
- νλ‘μ νΈ λͺ©λ‘ μ‘°ν:
Get_AntBot_Project_ListνΈμΆ - νλ‘μ νΈ μ 보 μ‘°ν:
Get_AntBot_Project_InfoνΈμΆ (projectId νμ) - νλ‘μ νΈ μ€ν:
Run_AntBot_ProjectνΈμΆ (projectId, projectPath, parameters νμ) - λ‘κ·Έ μ‘°ν:
Get_Last_Mcprun_LogνΈμΆ
π§ Claude Desktop μ°λ
μ μ 쑰건
- Claude Desktop μ€μΉ μλ£
- AntBot Robot λ§€λμ μ°λ μλ£
- MCP Inspectorλ‘ μλ² μ μ λμ νμΈ
λ±λ‘ λ°©λ²
λ°©λ² 1: Claude Desktop GUI
- Claude Desktop μ€ν
- μ€μ β κ°λ°μ β μ€μ νΈμ§
%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μ μμ ν μ’ λ£νκ³ μ¬μμν΄μΌ ν©λλ€:
- μμ€ν νΈλ μ΄μμ Claude μμ΄μ½ μ°ν΄λ¦
- μ’ λ£ μ ν (μμ ν μ’ λ£)
- Claude Desktop λ€μ μ€ν
π‘ μ°Έκ³ : λ¨μν μ°½μ λ«λ κ²μ΄ μλλΌ νΈλ μ΄ μμ΄μ½μ ν΅ν΄ μμ ν μ’ λ£ν΄μΌ μ€μ μ΄ μ μ©λ©λλ€.
μ¬μ© μμ
Claudeμκ² λ€μκ³Ό κ°μ΄ μμ²ν μ μμ΅λλ€:
- "AntBot νλ‘μ νΈ λͺ©λ‘μ 보μ¬μ€"
- "PR000000298 νλ‘μ νΈμ μ 보λ₯Ό μλ €μ€"
- "PR000000298 νλ‘μ νΈλ₯Ό μ€νν΄μ€"
- "μ΅μ μ€ν λ‘κ·Έλ₯Ό 보μ¬μ€"
βοΈ μ€μ κ΄λ¦¬
μλ μ€μ λ‘λ
μλ²λ λ€μ κ²½λ‘μ AntBot Robot μ€μ νμΌμ μλμΌλ‘ μ½μ΄μ΅λλ€:
%APPDATA%\Roaming\AntBotRobot\AntBot_Robot.exe.configνμ μ€μ νλͺ©
MANAGER_USER: λ§€λμ μ¬μ©μ IDMANAGER_IP: λ§€λμ μλ² IPMANAGER_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 λΌμ΄μ μ€ νμ λ°°ν¬λ©λλ€.
This tool doesn't publish a standard install command β the repository README on GitHub covers its setup.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
Licensed under MITβ you can use, modify, and redistribute it under that license's terms.
View the full license file on GitHub β