Skip to main content
Glama
DEVOPS_OPERATIONS_GUIDE.mdโ€ข11.2 kB
# ๐Ÿš€ DevOps ์šด์˜ ๊ด€๋ฆฌ ๊ฐ€์ด๋“œ WorkflowMCP v2.9์˜ DevOps ์šด์˜ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ์™„์ „ ์‚ฌ์šฉ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค. ## ๐Ÿ“‹ ๋ชฉ์ฐจ - [๐Ÿ“Š ๊ฐœ์š”](#-๊ฐœ์š”) - [๐Ÿ› ๏ธ ์ธ์‹œ๋˜ํŠธ ๊ด€๋ฆฌ](#๏ธ-์ธ์‹œ๋˜ํŠธ-๊ด€๋ฆฌ) - [๐ŸŒ ํ™˜๊ฒฝ ๊ด€๋ฆฌ](#-ํ™˜๊ฒฝ-๊ด€๋ฆฌ) - [๐Ÿš€ ๋ฐฐํฌ ๊ด€๋ฆฌ](#-๋ฐฐํฌ-๊ด€๋ฆฌ) - [๐Ÿ“Š ์‹œ์Šคํ…œ ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง](#-์‹œ์Šคํ…œ-์ƒํƒœ-๋ชจ๋‹ˆํ„ฐ๋ง) - [๐Ÿ”ง MCP ๋„๊ตฌ ์‚ฌ์šฉ๋ฒ•](#-mcp-๋„๊ตฌ-์‚ฌ์šฉ๋ฒ•) - [๐ŸŒ ์›น ๋Œ€์‹œ๋ณด๋“œ ์‚ฌ์šฉ๋ฒ•](#-์›น-๋Œ€์‹œ๋ณด๋“œ-์‚ฌ์šฉ๋ฒ•) ## ๐Ÿ“Š ๊ฐœ์š” ### ์ง€์› ๊ธฐ๋Šฅ | ๊ธฐ๋Šฅ | MCP ๋„๊ตฌ | ์›น ๋Œ€์‹œ๋ณด๋“œ | CRUD ์ง€์› | |------|----------|-------------|----------| | **์ธ์‹œ๋˜ํŠธ ๊ด€๋ฆฌ** | โœ… | โœ… | Create, Read, Update, Delete | | **ํ™˜๊ฒฝ ๊ด€๋ฆฌ** | โœ… | โœ… | Create, Read, Update | | **๋ฐฐํฌ ๊ด€๋ฆฌ** | โœ… | โœ… | Create, Read, Update | | **์‹œ์Šคํ…œ ์ƒํƒœ** | โœ… | โœ… | Read | ### ์•„ํ‚คํ…์ฒ˜ ``` Claude Code (MCP ๋„๊ตฌ) โ†” MCP ์„œ๋ฒ„ โ†” SQLite DB โ†” ์›น ๋Œ€์‹œ๋ณด๋“œ ``` ## ๐Ÿ› ๏ธ ์ธ์‹œ๋˜ํŠธ ๊ด€๋ฆฌ ### ์ธ์‹œ๋˜ํŠธ ํƒ€์ž… - **outage**: ์„œ๋น„์Šค ์ค‘๋‹จ - **performance**: ์„ฑ๋Šฅ ์ด์Šˆ - **security**: ๋ณด์•ˆ ๋ฌธ์ œ - **data**: ๋ฐ์ดํ„ฐ ๊ด€๋ จ ์ด์Šˆ - **deployment**: ๋ฐฐํฌ ๊ด€๋ จ ๋ฌธ์ œ ### ์‹ฌ๊ฐ๋„ ์ˆ˜์ค€ - **critical**: ์‹ฌ๊ฐ (์„œ๋น„์Šค ์ „์ฒด ์ค‘๋‹จ) - **high**: ๋†’์Œ (์ฃผ์š” ๊ธฐ๋Šฅ ์˜ํ–ฅ) - **medium**: ๋ณดํ†ต (์ผ๋ถ€ ๊ธฐ๋Šฅ ์˜ํ–ฅ) - **low**: ๋‚ฎ์Œ (๊ฒฝ๋ฏธํ•œ ๋ฌธ์ œ) ### ์ƒํƒœ ๊ด€๋ฆฌ - **open**: ์‹ ๊ทœ ์ ‘์ˆ˜ - **investigating**: ์กฐ์‚ฌ ์ค‘ - **identified**: ์›์ธ ํŒŒ์•… - **monitoring**: ๋ชจ๋‹ˆํ„ฐ๋ง ์ค‘ - **resolved**: ํ•ด๊ฒฐ ์™„๋ฃŒ ### MCP ๋„๊ตฌ๋กœ ์ธ์‹œ๋˜ํŠธ ๊ด€๋ฆฌ #### ์ธ์‹œ๋˜ํŠธ ์ƒ์„ฑ ```javascript mcp__workflow-mcp__create_incident({ title: "API ์„œ๋ฒ„ ์‘๋‹ต ์ง€์—ฐ", description: "๊ฒฐ์ œ API ์‘๋‹ต ์‹œ๊ฐ„์ด 10์ดˆ ์ด์ƒ ์†Œ์š”๋จ", severity: "high", incident_type: "performance", status: "open", affected_services: ["payment-api", "checkout-service"], tags: ["api", "performance", "payment"], environment_id: "prod-env-123" }) ``` #### ์ธ์‹œ๋˜ํŠธ ๋ชฉ๋ก ์กฐํšŒ ```javascript // ๋ชจ๋“  ์ธ์‹œ๋˜ํŠธ mcp__workflow-mcp__list_incidents() // ํ•„ํ„ฐ๋ง ์กฐํšŒ mcp__workflow-mcp__list_incidents({ severity: "critical", status: "open", incident_type: "outage" }) ``` #### ์ธ์‹œ๋˜ํŠธ ์—…๋ฐ์ดํŠธ ```javascript // API๋ฅผ ํ†ตํ•œ ์—…๋ฐ์ดํŠธ PUT /api/incidents/{id} { "status": "resolved", "resolution_notes": "์„œ๋ฒ„ ์šฉ๋Ÿ‰ ์ฆ์„ค๋กœ ํ•ด๊ฒฐ" } ``` ### ์›น ๋Œ€์‹œ๋ณด๋“œ ์‚ฌ์šฉ๋ฒ• 1. **์šด์˜ ๊ด€๋ฆฌ ํŽ˜์ด์ง€ ์ ‘์†**: `http://localhost:3301/operations` 2. **์ธ์‹œ๋˜ํŠธ ์ƒ์„ฑ**: "์ƒˆ ์ธ์‹œ๋˜ํŠธ ์ƒ์„ฑ" ๋ฒ„ํŠผ ํด๋ฆญ 3. **์ธ์‹œ๋˜ํŠธ ์ƒ์„ธ**: ๋ชฉ๋ก์—์„œ ํ•ญ๋ชฉ ํด๋ฆญ โ†’ ์ƒ์„ธ๋ณด๊ธฐ ํŽ˜์ด์ง€ 4. **์ธ์‹œ๋˜ํŠธ ์ˆ˜์ •**: ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ "์ˆ˜์ •" ๋ฒ„ํŠผ โ†’ ๋ชจ๋‹ฌ์—์„œ ํŽธ์ง‘ ## ๐ŸŒ ํ™˜๊ฒฝ ๊ด€๋ฆฌ ### ํ™˜๊ฒฝ ํƒ€์ž… - **development**: ๊ฐœ๋ฐœ ํ™˜๊ฒฝ - **staging**: ์Šคํ…Œ์ด์ง• ํ™˜๊ฒฝ - **production**: ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ - **testing**: ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ### ํ™˜๊ฒฝ ์ƒํƒœ - **active**: ํ™œ์„ฑ - **inactive**: ๋น„ํ™œ์„ฑ - **maintenance**: ์ ๊ฒ€ ์ค‘ ### MCP ๋„๊ตฌ๋กœ ํ™˜๊ฒฝ ๊ด€๋ฆฌ #### ํ™˜๊ฒฝ ์ƒ์„ฑ ```javascript mcp__workflow-mcp__create_environment({ name: "ํ”„๋กœ๋•์…˜ API ์„œ๋ฒ„", environment_type: "production", description: "๋ฉ”์ธ API ์„œ๋น„์Šค ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ", url: "https://api.company.com", status: "active", tags: ["api", "production", "critical"] }) ``` #### ํ™˜๊ฒฝ ๋ชฉ๋ก ์กฐํšŒ ```javascript // ๋ชจ๋“  ํ™˜๊ฒฝ mcp__workflow-mcp__list_environments() // ํƒ€์ž…๋ณ„ ํ•„ํ„ฐ๋ง mcp__workflow-mcp__list_environments({ environment_type: "production", status: "active" }) ``` #### ํ™˜๊ฒฝ ์ƒํƒœ ์กฐํšŒ ```javascript mcp__workflow-mcp__get_environment_status({ environment_id: "env-123" }) ``` #### ํ™˜๊ฒฝ ์—…๋ฐ์ดํŠธ ```javascript mcp__workflow-mcp__update_environment({ environment_id: "env-123", updates: { status: "maintenance", description: "์ ๊ฒ€์„ ์œ„ํ•œ ์ž„์‹œ ์ค‘๋‹จ" } }) ``` ### ์›น ๋Œ€์‹œ๋ณด๋“œ ์‚ฌ์šฉ๋ฒ• 1. **ํ™˜๊ฒฝ ๊ด€๋ฆฌ ํŽ˜์ด์ง€**: `http://localhost:3301/environments` 2. **ํ™˜๊ฒฝ ์ƒ์„ฑ**: "์ƒˆ ํ™˜๊ฒฝ ์ถ”๊ฐ€" ๋ฒ„ํŠผ 3. **ํ™˜๊ฒฝ ์ˆ˜์ •**: ํ™˜๊ฒฝ ์นด๋“œ์—์„œ "ํŽธ์ง‘" ๋ฒ„ํŠผ 4. **์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง**: ๊ฐ ํ™˜๊ฒฝ์˜ ์‹ค์‹œ๊ฐ„ ์ƒํƒœ ํ™•์ธ ## ๐Ÿš€ ๋ฐฐํฌ ๊ด€๋ฆฌ ### ๋ฐฐํฌ ํƒ€์ž… - **blue_green**: ๋ธ”๋ฃจ-๊ทธ๋ฆฐ ๋ฐฐํฌ - **rolling**: ์ˆœ์ฐจ ๋ฐฐํฌ - **canary**: ์นด๋‚˜๋ฆฌ ๋ฐฐํฌ - **hotfix**: ํ•ซํ”ฝ์Šค ๋ฐฐํฌ ### ๋ฐฐํฌ ์ƒํƒœ - **planned**: ๊ณ„ํš๋จ - **in_progress**: ์ง„ํ–‰ ์ค‘ - **completed**: ์™„๋ฃŒ - **failed**: ์‹คํŒจ - **rolled_back**: ๋กค๋ฐฑ๋จ ### MCP ๋„๊ตฌ๋กœ ๋ฐฐํฌ ๊ด€๋ฆฌ #### ๋ฐฐํฌ ์ƒ์„ฑ ```javascript mcp__workflow-mcp__create_deployment({ title: "API v2.1.0 ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ", description: "์ƒˆ๋กœ์šด ๊ฒฐ์ œ ์‹œ์Šคํ…œ ๋ฐ ์„ฑ๋Šฅ ๊ฐœ์„  ์‚ฌํ•ญ ๋ฐฐํฌ", environment_id: "prod-env-123", version: "v2.1.0", deployment_type: "blue_green", status: "planned", deployment_config: { instances: 3, rollout_percentage: 25, health_check_url: "/health" }, scheduled_at: "2025-01-15T02:00:00Z", rollback_version: "v2.0.5", tags: ["api", "payment", "performance"] }) ``` #### ๋ฐฐํฌ ๋ชฉ๋ก ์กฐํšŒ ```javascript // ๋ชจ๋“  ๋ฐฐํฌ mcp__workflow-mcp__list_deployments() // ํ™˜๊ฒฝ๋ณ„ ํ•„ํ„ฐ๋ง mcp__workflow-mcp__list_deployments({ environment_id: "prod-env-123", status: "planned", sort_by: "scheduled_desc" }) ``` #### ๋ฐฐํฌ ์ƒ์„ธ ์กฐํšŒ ```javascript mcp__workflow-mcp__get_deployment({ deployment_id: "deploy-456" }) ``` ### ์›น ๋Œ€์‹œ๋ณด๋“œ ์‚ฌ์šฉ๋ฒ• 1. **๋ฐฐํฌ ๊ด€๋ฆฌ ํŽ˜์ด์ง€**: `http://localhost:3301/deployments` 2. **๋ฐฐํฌ ๊ณ„ํš**: "์ƒˆ ๋ฐฐํฌ ๊ณ„ํš" ๋ฒ„ํŠผ 3. **๋ฐฐํฌ ์‹คํ–‰**: ๊ณ„ํš๋œ ๋ฐฐํฌ์—์„œ "์‹คํ–‰" ๋ฒ„ํŠผ 4. **๋ฐฐํฌ ๋ชจ๋‹ˆํ„ฐ๋ง**: ์‹ค์‹œ๊ฐ„ ๋ฐฐํฌ ์ง„ํ–‰ ์ƒํ™ฉ ์ถ”์  5. **๋กค๋ฐฑ**: ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ "๋กค๋ฐฑ" ๋ฒ„ํŠผ์œผ๋กœ ์ด์ „ ๋ฒ„์ „ ๋ณต์› ## ๐Ÿ“Š ์‹œ์Šคํ…œ ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง ### MCP ๋„๊ตฌ๋กœ ์‹œ์Šคํ…œ ์ƒํƒœ ์กฐํšŒ ```javascript // ์ „์ฒด ์‹œ์Šคํ…œ ์ƒํƒœ mcp__workflow-mcp__get_system_health() // ํŠน์ • ํ™˜๊ฒฝ ์ƒํƒœ mcp__workflow-mcp__get_system_health({ environment_id: "prod-env-123", include_details: true }) ``` ### ๋ฐ˜ํ™˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ```json { "success": true, "system_health": { "summary": { "total_environments": 5, "healthy_environments": 4, "warning_environments": 1, "critical_environments": 0, "last_check": "2025-01-10T10:30:00Z" }, "recent_checks": [ { "environment_id": "prod-env-123", "status": "healthy", "response_time": 45, "checked_at": "2025-01-10T10:30:00Z" } ], "detailed_metrics": { "cpu_usage": 65, "memory_usage": 78, "disk_usage": 45, "network_latency": 12 } } } ``` ## ๐Ÿ”ง MCP ๋„๊ตฌ ์‚ฌ์šฉ๋ฒ• ### ๊ธฐ๋ณธ ์„ค์ • 1. **MCP ์„œ๋ฒ„ ์‹œ์ž‘**: ```bash npm start ``` 2. **Claude Code์—์„œ ์—ฐ๊ฒฐ ํ™•์ธ**: ```bash /mcp ``` ### ์ผ๋ฐ˜์ ์ธ ์›Œํฌํ”Œ๋กœ์šฐ #### 1. ์ธ์‹œ๋˜ํŠธ ๋Œ€์‘ ์‹œ๋‚˜๋ฆฌ์˜ค ```javascript // 1. ์ธ์‹œ๋˜ํŠธ ์ƒ์„ฑ const incident = await mcp__workflow-mcp__create_incident({ title: "ํ”„๋กœ๋•์…˜ DB ์—ฐ๊ฒฐ ์‹คํŒจ", severity: "critical", incident_type: "outage", affected_services: ["user-service", "order-service"] }) // 2. ์ƒํƒœ ์—…๋ฐ์ดํŠธ await updateIncidentStatus(incident.id, "investigating") // 3. ํ•ด๊ฒฐ ํ›„ ์ข…๋ฃŒ await updateIncidentStatus(incident.id, "resolved") ``` #### 2. ๋ฐฐํฌ ์‹œ๋‚˜๋ฆฌ์˜ค ```javascript // 1. ๋ฐฐํฌ ๊ณ„ํš ์ƒ์„ฑ const deployment = await mcp__workflow-mcp__create_deployment({ title: "๊ธด๊ธ‰ ๋ณด์•ˆ ํŒจ์น˜ ๋ฐฐํฌ", environment_id: "prod-env-123", deployment_type: "hotfix", version: "v2.0.6-security" }) // 2. ๋ฐฐํฌ ์‹คํ–‰ ๋ชจ๋‹ˆํ„ฐ๋ง const status = await mcp__workflow-mcp__get_deployment({ deployment_id: deployment.id }) // 3. ์‹œ์Šคํ…œ ์ƒํƒœ ํ™•์ธ const health = await mcp__workflow-mcp__get_system_health({ environment_id: "prod-env-123" }) ``` ## ๐ŸŒ ์›น ๋Œ€์‹œ๋ณด๋“œ ์‚ฌ์šฉ๋ฒ• ### ๋ฉ”์ธ ์šด์˜ ๋Œ€์‹œ๋ณด๋“œ **URL**: `http://localhost:3301/operations` #### ์ฃผ์š” ์„น์…˜ 1. **์ธ์‹œ๋˜ํŠธ ํ˜„ํ™ฉ** - ์‹ฌ๊ฐ๋„๋ณ„ ์ธ์‹œ๋˜ํŠธ ์ˆ˜ - ์ตœ๊ทผ ์ธ์‹œ๋˜ํŠธ ๋ชฉ๋ก - ํ•ด๊ฒฐ ์‹œ๊ฐ„ ํ†ต๊ณ„ 2. **ํ™˜๊ฒฝ ์ƒํƒœ** - ๊ฐ ํ™˜๊ฒฝ๋ณ„ ์ƒํƒœ ์š”์•ฝ - ํ—ฌ์Šค ์ฒดํฌ ๊ฒฐ๊ณผ - ์„ฑ๋Šฅ ๋ฉ”ํŠธ๋ฆญ 3. **์ตœ๊ทผ ๋ฐฐํฌ** - ์ง„ํ–‰ ์ค‘์ธ ๋ฐฐํฌ - ์™„๋ฃŒ๋œ ๋ฐฐํฌ ๋ชฉ๋ก - ๋ฐฐํฌ ์„ฑ๊ณต๋ฅ  ### ํŽ˜์ด์ง€๋ณ„ ๊ธฐ๋Šฅ #### ์ธ์‹œ๋˜ํŠธ ํŽ˜์ด์ง€ (`/operations`) - **์ธ์‹œ๋˜ํŠธ ์ƒ์„ฑ**: ์ƒ์„ธ ์ •๋ณด ์ž…๋ ฅ ํผ - **์ธ์‹œ๋˜ํŠธ ๋ชฉ๋ก**: ํ•„ํ„ฐ๋ง ๋ฐ ์ •๋ ฌ ๊ธฐ๋Šฅ - **์ธ์‹œ๋˜ํŠธ ์ƒ์„ธ**: ์ƒํƒœ ๋ณ€๊ฒฝ ๋ฐ ๋…ธํŠธ ์ถ”๊ฐ€ - **์ธ์‹œ๋˜ํŠธ ์ˆ˜์ •**: ๋ชจ๋“  ํ•„๋“œ ํŽธ์ง‘ ๊ฐ€๋Šฅ #### ํ™˜๊ฒฝ ํŽ˜์ด์ง€ (`/environments`) - **ํ™˜๊ฒฝ ์ถ”๊ฐ€**: ํƒ€์ž…, URL, ์ƒํƒœ ์„ค์ • - **ํ™˜๊ฒฝ ๋ชฉ๋ก**: ์นด๋“œ ํ˜•ํƒœ๋กœ ํ‘œ์‹œ - **ํ™˜๊ฒฝ ํŽธ์ง‘**: ์ธ๋ผ์ธ ํŽธ์ง‘ ์ง€์› - **์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง**: ์‹ค์‹œ๊ฐ„ ์ƒํƒœ ํ‘œ์‹œ #### ๋ฐฐํฌ ํŽ˜์ด์ง€ (`/deployments`) - **๋ฐฐํฌ ๊ณ„ํš**: ์ƒ์„ธ ๋ฐฐํฌ ์„ค์ • - **๋ฐฐํฌ ๋ชฉ๋ก**: ์‹œ๊ฐ„์ˆœ ์ •๋ ฌ - **๋ฐฐํฌ ์‹คํ–‰**: ์›ํด๋ฆญ ์‹คํ–‰ - **๋ฐฐํฌ ์ถ”์ **: ์‹ค์‹œ๊ฐ„ ์ง„ํ–‰ ์ƒํ™ฉ ## ๐ŸŽฏ ๋ชจ๋ฒ” ์‚ฌ๋ก€ ### ์ธ์‹œ๋˜ํŠธ ๊ด€๋ฆฌ 1. **์‹ ์†ํ•œ ๋ณด๊ณ **: ๋ฌธ์ œ ๋ฐœ๊ฒฌ ์ฆ‰์‹œ ์ธ์‹œ๋˜ํŠธ ์ƒ์„ฑ 2. **์ •ํ™•ํ•œ ๋ถ„๋ฅ˜**: ์‹ฌ๊ฐ๋„์™€ ํƒ€์ž…์„ ์ •ํ™•ํžˆ ์„ค์ • 3. **์ƒ์„ธํ•œ ๊ธฐ๋ก**: ์กฐ์‚ฌ ๊ณผ์ •๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๋ฌธ์„œํ™” 4. **์‚ฌํ›„ ๋ถ„์„**: ํ•ด๊ฒฐ ํ›„ ์›์ธ ๋ถ„์„ ๋ฐ ์˜ˆ๋ฐฉ์ฑ… ์ˆ˜๋ฆฝ ### ํ™˜๊ฒฝ ๊ด€๋ฆฌ 1. **๋ช…ํ™•ํ•œ ๋ช…๋ช…**: ํ™˜๊ฒฝ๋ณ„ ๋ช…ํ™•ํ•œ ์ด๋ฆ„๊ณผ ์„ค๋ช… 2. **ํƒœ๊ทธ ํ™œ์šฉ**: ๊ด€๋ จ ์„œ๋น„์Šค ๋ฐ ํŒ€ ํƒœ๊ทธ ์ถ”๊ฐ€ 3. **์ƒํƒœ ์—…๋ฐ์ดํŠธ**: ์ ๊ฒ€ ์‹œ ์ƒํƒœ๋ฅผ ์ ์ ˆํžˆ ๋ณ€๊ฒฝ 4. **URL ๊ด€๋ฆฌ**: ์ •ํ™•ํ•œ ์ ‘์† URL ์œ ์ง€ ### ๋ฐฐํฌ ๊ด€๋ฆฌ 1. **์ ์ง„์  ๋ฐฐํฌ**: ํ”„๋กœ๋•์…˜์€ ๋‹จ๊ณ„์  ๋ฐฐํฌ ์„ ํƒ 2. **๋กค๋ฐฑ ์ค€๋น„**: ํ•ญ์ƒ ๋กค๋ฐฑ ๋ฒ„์ „ ์„ค์ • 3. **ํ—ฌ์Šค ์ฒดํฌ**: ๋ฐฐํฌ ํ›„ ์‹œ์Šคํ…œ ์ƒํƒœ ํ™•์ธ 4. **๋ฌธ์„œํ™”**: ๋ฐฐํฌ ๋‚ด์šฉ๊ณผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๊ธฐ๋ก ## ๐Ÿšจ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ### ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ #### MCP ์„œ๋ฒ„ ์—ฐ๊ฒฐ ์•ˆ๋จ ```bash # ์„œ๋ฒ„ ์ƒํƒœ ํ™•์ธ ps aux | grep "node src/index.js" # ์„œ๋ฒ„ ์žฌ์‹œ์ž‘ npm start # Claude Code ์žฌ์‹œ์ž‘ ํ›„ /mcp ๋ช…๋ น์–ด๋กœ ์—ฐ๊ฒฐ ํ™•์ธ ``` #### ์›น ๋Œ€์‹œ๋ณด๋“œ ์ ‘์† ์•ˆ๋จ ```bash # ๋Œ€์‹œ๋ณด๋“œ ์„œ๋ฒ„ ํ™•์ธ cd dashboard npm run dev # ํฌํŠธ ์ถฉ๋Œ ํ™•์ธ netstat -an | findstr :3301 ``` #### ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฌธ์ œ 1. **SQLite ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™•์ธ**: `data/workflow.db` ํŒŒ์ผ ์กด์žฌ ์—ฌ๋ถ€ 2. **๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜**: `node src/database/simple-migrate.js` 3. **์„œ๋ฒ„ ์žฌ์‹œ์ž‘**: MCP ์„œ๋ฒ„์™€ ์›น ์„œ๋ฒ„ ๋ชจ๋‘ ์žฌ์‹œ์ž‘ ### ๋กœ๊ทธ ํ™•์ธ - **MCP ์„œ๋ฒ„ ๋กœ๊ทธ**: ์ฝ˜์†” ์ถœ๋ ฅ ํ™•์ธ - **์›น ์„œ๋ฒ„ ๋กœ๊ทธ**: ๋ธŒ๋ผ์šฐ์ € ๊ฐœ๋ฐœ์ž ๋„๊ตฌ โ†’ Network ํƒญ - **๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋กœ๊ทธ**: SQLite ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ํ™•์ธ ## ๐Ÿ“š ๊ด€๋ จ ๋ฌธ์„œ - [USER_GUIDE.md](USER_GUIDE.md) - ์ „์ฒด ์‹œ์Šคํ…œ ์‚ฌ์šฉ ๊ฐ€์ด๋“œ - [../README.md](../README.md) - ํ”„๋กœ์ ํŠธ ๊ฐœ์š” ๋ฐ ์„ค์น˜ - [MCP_PHASE_2_9_TESTING_GUIDE.md](MCP_PHASE_2_9_TESTING_GUIDE.md) - DevOps ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ ๊ฐ€์ด๋“œ --- **WorkflowMCP v2.9 DevOps ์šด์˜ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ**์œผ๋กœ ํšจ์œจ์ ์ด๊ณ  ์•ˆ์ •์ ์ธ ์šด์˜ ๊ด€๋ฆฌ๋ฅผ ๊ฒฝํ—˜ํ•ด๋ณด์„ธ์š”! ๐Ÿš€

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/foswmine/workflow-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server