Skip to main content
Glama
EXISTING_MCP_ANALYSIS.md16.9 kB
# 기존 WorkflowMCP 소스 분석 # MCP 도구와 대시보드 메뉴 매핑 ## 📋 개요 기존 WorkflowMCP 시스템의 MCP 도구와 대시보드 메뉴를 분석하여 API 구현 범위를 정확히 파악합니다. ## 🛠️ 발견된 MCP 도구 (58개) ### 1. PRD Management (4개 도구) | MCP 도구 | 기능 | 대시보드 페이지 | API 엔드포인트 | |----------|------|-----------------|----------------| | `create_prd` | PRD 생성 | `/prds/new` | `POST /api/prds` | | `list_prds` | PRD 목록 조회 | `/prds` | `GET /api/prds` | | `get_prd` | PRD 상세 조회 | `/prds/[id]` | `GET /api/prds/:id` | | `update_prd` | PRD 업데이트 | `/prds/[id]/edit` | `PUT /api/prds/:id` | **Manager**: `PRDManager.js` (dashboard/src/lib/server/, src/models/) ### 2. Design Management (5개 도구) | MCP 도구 | 기능 | 대시보드 페이지 | API 엔드포인트 | |----------|------|-----------------|----------------| | `create_design` | 디자인 생성 | `/designs/new` | `POST /api/designs` | | `list_designs` | 디자인 목록 | `/designs` | `GET /api/designs` | | `get_design` | 디자인 상세 | `/designs/[id]` | `GET /api/designs/:id` | | `update_design` | 디자인 업데이트 | `/designs/[id]/edit` | `PUT /api/designs/:id` | | `delete_design` | 디자인 삭제 | - | `DELETE /api/designs/:id` | **Manager**: `DesignManager.js` (dashboard/src/lib/server/, src/models/) ### 3. Task Management (5개 도구) | MCP 도구 | 기능 | 대시보드 페이지 | API 엔드포인트 | |----------|------|-----------------|----------------| | `create_task` | 태스크 생성 | `/tasks/new` | `POST /api/tasks` | | `list_tasks` | 태스크 목록 | `/tasks`, `/kanban` | `GET /api/tasks` | | `get_task` | 태스크 상세 | `/tasks/[id]` | `GET /api/tasks/:id` | | `update_task` | 태스크 업데이트 | `/tasks/[id]/edit` | `PUT /api/tasks/:id` | | `delete_task` | 태스크 삭제 | - | `DELETE /api/tasks/:id` | **Manager**: `TaskManager.js` (dashboard/src/lib/server/, src/models/) ### 4. Document Management (13개 도구) | MCP 도구 | 기능 | 대시보드 페이지 | API 엔드포인트 | |----------|------|-----------------|----------------| | `create_document` | 문서 생성 | - | `POST /api/documents` | | `search_documents` | 문서 검색 | `/documents` | `GET /api/documents/search` | | `get_document` | 문서 상세 | `/documents/[id]` | `GET /api/documents/:id` | | `update_document` | 문서 업데이트 | - | `PUT /api/documents/:id` | | `delete_document` | 문서 삭제 | - | `DELETE /api/documents/:id` | | `list_documents` | 문서 목록 | `/documents` | `GET /api/documents` | | `link_document` | 문서 링크 | - | `POST /api/documents/:id/links` | | `get_document_categories` | 카테고리 조회 | - | `GET /api/documents/categories` | | `create_prd_document` | PRD 문서 생성 | - | `POST /api/prds/:id/documents` | | `get_prd_documents` | PRD 문서 목록 | - | `GET /api/prds/:id/documents` | | `search_prd_documents` | PRD 문서 검색 | - | `GET /api/prds/:id/documents/search` | | `update_prd_document` | PRD 문서 업데이트 | - | `PUT /api/documents/:id/prd` | | `link_document_to_prd` | PRD 문서 링크 | - | `POST /api/prds/:id/links` | **Manager**: `DocumentManager.js` (src/models/) ### 5. Test Management (10개 도구) | MCP 도구 | 기능 | 대시보드 페이지 | API 엔드포인트 | |----------|------|-----------------|----------------| | `create_test_case` | 테스트 케이스 생성 | `/tests/new` | `POST /api/test-cases` | | `list_test_cases` | 테스트 케이스 목록 | `/tests` | `GET /api/test-cases` | | `get_test_case` | 테스트 케이스 상세 | `/tests/[id]` | `GET /api/test-cases/:id` | | `update_test_case` | 테스트 케이스 업데이트 | `/tests/[id]/edit` | `PUT /api/test-cases/:id` | | `delete_test_case` | 테스트 케이스 삭제 | - | `DELETE /api/test-cases/:id` | | `execute_test_case` | 테스트 실행 | - | `POST /api/test-cases/:id/execute` | | `get_test_executions` | 테스트 실행 결과 | - | `GET /api/test-cases/:id/executions` | | `get_test_summary` | 테스트 요약 | - | `GET /api/test-summary` | | `get_test_coverage` | 테스트 커버리지 | - | `GET /api/test-coverage` | | `link_test_to_task` | 테스트-태스크 링크 | - | `POST /api/test-cases/:id/link-task` | **Manager**: `TestManager.js` (dashboard/src/lib/server/, src/models/) ### 6. Connection Management (6개 도구) | MCP 도구 | 기능 | 대시보드 페이지 | API 엔드포인트 | |----------|------|-----------------|----------------| | `get_test_connections` | 테스트 연결 조회 | - | `GET /api/test-cases/:id/connections` | | `add_test_connection` | 테스트 연결 추가 | - | `POST /api/test-cases/:id/connections` | | `remove_test_connection` | 테스트 연결 제거 | - | `DELETE /api/test-cases/:id/connections/:connId` | | `get_task_connections` | 태스크 연결 조회 | `/network` | `GET /api/tasks/:id/connections` | | `add_task_connection` | 태스크 연결 추가 | - | `POST /api/tasks/:id/connections` | | `remove_task_connection` | 태스크 연결 제거 | - | `DELETE /api/tasks/:id/connections/:connId` | ### 7. Project Management (6개 도구) | MCP 도구 | 기능 | 대시보드 페이지 | API 엔드포인트 | |----------|------|-----------------|----------------| | `create_project` | 프로젝트 생성 | `/projects/new` | `POST /api/projects` | | `list_projects` | 프로젝트 목록 | `/projects` | `GET /api/projects` | | `get_project` | 프로젝트 상세 | `/projects/[id]` | `GET /api/projects/:id` | | `update_project` | 프로젝트 업데이트 | `/projects/[id]/edit` | `PUT /api/projects/:id` | | `delete_project` | 프로젝트 삭제 | - | `DELETE /api/projects/:id` | | `get_project_analytics` | 프로젝트 분석 | `/gantt` | `GET /api/projects/:id/analytics` | **Manager**: `ProjectManager.js` (dashboard/src/lib/server/) ### 8. Environment Management (4개 도구) | MCP 도구 | 기능 | 대시보드 페이지 | API 엔드포인트 | |----------|------|-----------------|----------------| | `create_environment` | 환경 생성 | `/environments/new` | `POST /api/environments` | | `list_environments` | 환경 목록 | `/environments` | `GET /api/environments` | | `get_environment_status` | 환경 상태 | `/environments/[id]` | `GET /api/environments/:id/status` | | `update_environment` | 환경 업데이트 | - | `PUT /api/environments/:id` | ### 9. DevOps Management (6개 도구) | MCP 도구 | 기능 | 대시보드 페이지 | API 엔드포인트 | |----------|------|-----------------|----------------| | `create_deployment` | 배포 생성 | `/deployments/create` | `POST /api/deployments` | | `list_deployments` | 배포 목록 | `/deployments` | `GET /api/deployments` | | `get_deployment` | 배포 상세 | `/deployments/[id]` | `GET /api/deployments/:id` | | `create_incident` | 인시던트 생성 | - | `POST /api/incidents` | | `list_incidents` | 인시던트 목록 | `/incidents/[id]` | `GET /api/incidents` | | `get_system_health` | 시스템 상태 | `/operations` | `GET /api/system-health` | **Manager**: `DevOpsManager.js` (dashboard/src/lib/server/) ## 📊 대시보드 메뉴 구조 분석 ### 주요 메뉴별 페이지 1. **Home** (`/`) - 대시보드 홈 2. **PRDs** (`/prds`) - PRD 관리 3. **Tasks** (`/tasks`, `/kanban`) - 태스크 관리 및 칸반 4. **Designs** (`/designs`) - 디자인 관리 5. **Tests** (`/tests`) - 테스트 관리 6. **Projects** (`/projects`, `/gantt`) - 프로젝트 관리 및 간트 7. **Documents** (`/documents`) - 문서 관리 8. **Environments** (`/environments`) - 환경 관리 9. **Deployments** (`/deployments`) - 배포 관리 10. **Operations** (`/operations`) - 운영 관리 11. **Network** (`/network`) - 네트워크 관계도 12. **Database** (`/database`) - 데이터베이스 관리 ### 특별 페이지 - **Kanban** (`/kanban`) - 태스크 칸반 보드 - **Gantt** (`/gantt`) - 프로젝트 간트 차트 - **Network** (`/network`) - 관계 네트워크 시각화 - **Database** (`/database`) - 데이터베이스 직접 접근 ## 🎯 API 구현 우선순위 ### High Priority (MVP) - 42개 API 1. **PRD Management** (4개): 핵심 요구사항 관리 2. **Task Management** (5개): 작업 관리 3. **Project Management** (6개): 프로젝트 관리 4. **Document Management** (13개): 문서 저장소 5. **Test Management** (10개): 품질 관리 6. **Connection Management** (4개): 관계 관리 ### Medium Priority - 10개 API 1. **Design Management** (5개): 설계 관리 2. **Environment Management** (4개): 환경 관리 3. **특별 페이지 지원**: Kanban, Gantt API ### Low Priority - 6개 API 1. **DevOps Management** (6개): 운영 관리 ## 📁 Manager 클래스 위치 매핑 ### Dashboard Manager (dashboard/src/lib/server/) - `PRDManager.js` - `TaskManager.js` - `DesignManager.js` - `TestManager.js` - `ProjectManager.js` - `DevOpsManager.js` ### MCP Server Manager (src/models/) - `PRDManager.js` - `TaskManager.js` - `DesignManager.js` - `TestManager.js` - `DocumentManager.js` ## 🔧 기술적 고려사항 ### 1. Manager 클래스 중복 - Dashboard와 MCP Server에 동일한 Manager가 존재 - API 래퍼는 기존 MCP Server Manager를 우선 사용 - 필요시 Dashboard Manager와 통합 고려 ### 2. 데이터베이스 접근 - 모든 Manager가 동일한 SQLite 데이터베이스 사용 (`data/workflow.db`) - API 래퍼에서 직접 DB 접근보다는 Manager 메서드 활용 ### 3. 기존 API 엔드포인트 대시보드에 일부 API가 이미 구현되어 있을 수 있음: - `/api/projects/[id]/links/+server.js` - `/api/documents/+server.js` - `/api/documents/[id]/+server.js` ### 4. 실시간 업데이트 기존 대시보드는 페이지 새로고침 방식이므로 API에서 SSE 추가 시 호환성 고려 필요 ## 📋 다음 단계 1. **기존 API 엔드포인트 조사** - 중복 방지 2. **Manager 클래스 통합 전략 수립** - Dashboard vs MCP Server 3. **API 래퍼 구현 순서 결정** - High Priority 우선 4. **테스트 전략 수립** - 기존 기능 회귀 방지 5. **대시보드 통합 계획** - 점진적 API 적용 ## 🚨 중요 발견: 기존 API 엔드포인트 (34개) **결론**: 이미 상당수의 API가 SvelteKit 형태로 구현되어 있음! ### 기존 구현된 API 엔드포인트 | 기능 영역 | 기존 엔드포인트 | HTTP 메서드 | 상태 | |-----------|-----------------|-------------|------| | **Dashboard** | `/api/dashboard` | GET | ✅ 구현됨 | | **PRDs** | `/api/prds` | GET, POST | ✅ 구현됨 | | **PRDs** | `/api/prds/[id]` | GET, PUT, DELETE | ✅ 구현됨 | | **PRDs Relations** | `/api/prds/[id]/designs` | GET | ✅ 구현됨 | | **PRDs Relations** | `/api/prds/[id]/tasks` | GET | ✅ 구현됨 | | **Designs** | `/api/designs` | GET, POST | ✅ 구현됨 | | **Designs** | `/api/designs/[id]` | GET, PUT, DELETE | ✅ 구현됨 | | **Tasks** | `/api/tasks` | GET, POST | ✅ 구현됨 | | **Tasks** | `/api/tasks/[id]` | GET, PUT, DELETE | ✅ 구현됨 | | **Tasks Relations** | `/api/tasks/[id]/connections` | GET, POST, DELETE | ✅ 구현됨 | | **Tasks Relations** | `/api/tasks/[id]/tests` | GET | ✅ 구현됨 | | **Tests** | `/api/tests` | GET, POST | ✅ 구현됨 | | **Tests** | `/api/tests/[id]` | GET, PUT, DELETE | ✅ 구현됨 | | **Tests** | `/api/tests/[id]/execute` | POST | ✅ 구현됨 | | **Tests** | `/api/tests/[id]/executions` | GET | ✅ 구현됨 | | **Tests** | `/api/tests/link-task` | POST | ✅ 구현됨 | | **Projects** | `/api/projects` | GET, POST | ✅ 구현됨 | | **Projects** | `/api/projects/[id]` | GET, PUT, DELETE | ✅ 구현됨 | | **Projects** | `/api/projects/[id]/links` | GET, POST | ✅ 구현됨 | | **Documents** | `/api/documents` | GET, POST | ✅ 구현됨 | | **Documents** | `/api/documents/[id]` | GET, PUT, DELETE | ✅ 구현됨 | | **Documents** | `/api/document-categories` | GET | ✅ 구현됨 | | **Environments** | `/api/environments` | GET, POST | ✅ 구현됨 | | **Environments** | `/api/environments/[id]` | GET, PUT | ✅ 구현됨 | | **Deployments** | `/api/deployments` | GET, POST | ✅ 구현됨 | | **Deployments** | `/api/deployments/[id]` | GET | ✅ 구현됨 | | **Deployments** | `/api/deployments/[id]/execute` | POST | ✅ 구현됨 | | **Deployments** | `/api/deployments/[id]/rollback` | POST | ✅ 구현됨 | | **DevOps** | `/api/system-health` | GET | ✅ 구현됨 | | **DevOps** | `/api/performance-metrics` | GET | ✅ 구현됨 | | **DevOps** | `/api/alert-rules` | GET, POST | ✅ 구현됨 | | **DevOps** | `/api/incidents` | GET, POST | ✅ 구현됨 | | **DevOps** | `/api/incidents/[id]` | GET | ✅ 구현됨 | | **Maintenance** | `/api/maintenance` | GET, POST | ✅ 구현됨 | | **Relationships** | `/api/relationships` | GET | ✅ 구현됨 | ### 구현 패턴 분석 #### 1. Manager 클래스 사용 패턴 ```javascript // PRD API 예시 import { PRDManager } from '$lib/server/PRDManager.js'; const prdManager = new PRDManager(); export async function GET({ url }) { const result = await prdManager.listPRDs(null, sortBy); return json(result.prds); } ``` #### 2. 직접 데이터베이스 접근 패턴 ```javascript // Documents API 예시 import sqlite3 from 'sqlite3'; import { open } from 'sqlite'; const dbPath = 'C:/dev/workflow-mcp/data/workflow.db'; export async function GET({ url }) { const db = await open({ filename: dbPath, driver: sqlite3.Database }); // 직접 SQL 쿼리 실행 } ``` ## 🎯 API 통합 전략 재검토 ### 현재 상황 1. **SvelteKit API**: 34개 엔드포인트 이미 구현 2. **MCP 도구**: 58개 도구 존재 3. **격차**: MCP 도구의 일부만 API로 노출됨 ### 새로운 접근 방식 🔄 **기존 계획 수정**: 완전히 새로운 API 서버 대신 기존 SvelteKit API 확장 #### Option A: SvelteKit API 확장 (권장) - **장점**: 기존 코드 재사용, 빠른 구현, 대시보드와 완전 통합 - **단점**: SvelteKit 종속성 - **구현**: 기존 `/api/` 라우트에 누락된 MCP 도구 추가 #### Option B: 별도 Express API 서버 - **장점**: 독립적 API, 유연한 구조 - **단점**: 코드 중복, 별도 포트 필요 - **구현**: 기존 계획대로 Express.js 서버 #### Option C: 하이브리드 접근 - **기존 API**: SvelteKit에서 계속 제공 - **확장 API**: Express.js에서 누락된 기능 제공 - **자기설명적 API**: Express.js에서 Discovery/Help 시스템 ## 📊 MCP vs API 매핑 업데이트 ### 이미 API로 구현된 MCP 도구 (약 30개) ✅ **완전 구현**: - PRD: `create_prd`, `list_prds`, `get_prd`, `update_prd` - Design: `create_design`, `list_designs`, `get_design`, `update_design`, `delete_design` - Task: `create_task`, `list_tasks`, `get_task`, `update_task`, `delete_task` - Test: `create_test_case`, `list_test_cases`, `get_test_case`, `update_test_case`, `delete_test_case`, `execute_test_case`, `get_test_executions` - Project: `create_project`, `list_projects`, `get_project`, `update_project`, `delete_project` - Document: `create_document`, `list_documents`, `get_document`, `update_document`, `delete_document` - Environment: `create_environment`, `list_environments`, `update_environment` - Deployment: `create_deployment`, `list_deployments`, `get_deployment` ### API로 미구현된 MCP 도구 (약 28개) ❌ **누락된 기능**: - `get_document_categories` → 부분 구현됨 (`/api/document-categories`) - `link_document`, `create_prd_document`, `get_prd_documents` 등 문서 연결 기능 - `get_test_summary`, `get_test_coverage`, `link_test_to_task` 등 테스트 관리 - `get_task_connections`, `add_task_connection` 등 연결 관리 - `get_project_analytics` 등 분석 기능 - `get_environment_status` 등 상태 조회 - `create_incident`, `list_incidents`, `get_system_health` 등 운영 관리 ## 🔧 수정된 구현 계획 ### Phase 1: 기존 API 분석 및 보강 (1주) 1. **Gap Analysis**: MCP vs API 상세 매핑 2. **누락 기능 구현**: SvelteKit API 라우트 추가 3. **API 표준화**: 응답 형식 통일 ### Phase 2: 자기설명적 API 추가 (1주) 1. **Discovery API**: Express.js로 별도 구현 2. **Help System**: API 탐색 도구 3. **HATEOAS**: 기존 API에 링크 추가 ### Phase 3: 통합 및 최적화 (1주) 1. **API Gateway**: 통합 엔드포인트 2. **문서화**: OpenAPI 스펙 3. **모니터링**: 사용량 추적 ## 🔍 추가 조사 필요 사항 1. ✅ **기존 API 라우트**: 34개 엔드포인트 분석 완료 2. **Manager 메서드**: 각 Manager 클래스의 public 메서드 목록 3. **데이터베이스 스키마**: 테이블 구조 및 관계 확인 4. **대시보드 API 호출**: 기존 fetch/API 호출 패턴 분석 5. **API 응답 형식**: 기존 응답 구조 분석

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