moo-tasks
🐮 Moo Tasks
AI 코딩 에이전트(Claude Code, Cursor, Windsurf, Antigravity, Copilot)와 인간이 참여하는 페어 프로그래밍(human-in-the-loop pair programming)을 위해 구축된 에이전틱 태스크 오케스트레이션 및 관리 엔진(Agentic Task Orchestration & Management Engine)입니다.
빠른 시작 • 에이전트 및 MCP 설정 • 에이전트 프로토콜 • 아키텍처 • MCP 도구
🌟 왜 Moo Tasks인가?
일반적인 AI 코딩 에이전트는 종종 다음과 같은 문제를 겪습니다:
범위 이탈(Scope Drift): 원래 사용자 의도에서 벗어나 가치가 낮은 리팩토링을 끝없이 수행합니다.
과잉 계획(Over-Planning): 실제로 실행하지도 않으면서 얕은 작업 40개를 생성합니다.
반복 / 헤매기(Looping / Thrashing): 실패가 반복되는 수정을 중단하지 않고 계속 시도합니다.
검증 불가한 작업(Unverifiable Work): 테스트를 실행하거나 증거를 만들지 않고도 코드가 완성됐다고 주장합니다.
결정 재논쟁(Re-Debating Decisions): 컨텍스트가 초기화될 때마다 이미 확정된 아키텍처 선택을 다시 논쟁합니다.
Moo Tasks는 WAL 모드의 로컬 SQLite 엔진, 풍부한 실시간 웹 UI, 그리고 런타임에서 엄격한 엔터프라이즈 불변식(invariant)을 강제하는 Model Context Protocol(MCP) 서버를 제공하여 이러한 문제를 해결합니다.
Related MCP server: agentloop
✨ 핵심 기능 및 기능 매트릭스
🎯 1. 목표 및 범위 제어
사용자 프롬프트 원문 보존(Verbatim Human Prompts): 작업 위에 위치하며 원래 사용자 요청의 정확한 원문을 보존합니다.
목표 범위 및 누락 사항 추적(Goal Coverage & Loose Ends): 작업 완료율과 남아 있는 미해결 작업 수에 대한 실시간 지표를 제공합니다.
범위 이탈 감지(Scope Drift Detection): 연결된 목표가 없는 고아 작업(orphan task)를 자동으로 식별하고 플래그로 표시합니다.
목표별 open 작업 상한(Goal Open Caps): 목표별 최대 open 작업 수를 하드 제한(기본값: 10)으로 적용하여 에이전트가 과잉 계획을 세우지 못하게 합니다.
캐스케이드 연산(Cascade Operations): 목표 아래의 모든 작업을 필수 사유와 함께 원자적으로 삭제, 중단 또는 재오픈합니다.
📋 2. 작업 수명주기 및 DAG 의존성
하위 작업 중첩 제약(Subtask Nesting Constraint): 상위 작업 아래에는 정확히 1단계의 하위 작업만 허용됩니다.
유한 상태 머신(Finite State Machine):
todo,doing,blocked-on-dependency,waiting-on-human,done,dropped.DAG 의존성 그래프(DAG Dependency Graph): 사이클을 자동 감지하고 하위 작업을 자동으로 차단 해제합니다.
상위 작업 닫기 보호(Parent Closure Guard): 하위 작업이 남아 있는 한 상위 작업을 닫지 못하게 보호합니다.
상태 취소 및 이력(Status Undo & History): 전환 감사 이력의 전체 기록을 활용해 잘못된 상태 전환을 롤백할 수 있습니다.
🛡️ 3. 완료, 검증 및 작업 증명
수용 조건(Acceptance Criteria): 작업을 시작하기 전에 반드시 Markdown으로 작성해야 하는 조건입니다.
증거 요구사항(Evidence Requirement): 작업을 닫으려면 검증 가능한 증거(실행한 명령, stdout 출력, 테스트 증명)가 필요합니다.
2단계 검증(Two-Phase Verification): 에이전트의 상태인
agent_completeditem을 인간의verified_done상태와 구분합니다.사유 포함 거부(Rejection with Reason): 인간이나 동료 에이전트 가 피드백과 함께 완료 작업을 거부할 수 있으며, 작업은
todo로 되돌아가고 재오픈 카운터가 증가합니다.
🙋 4. 인간 협업 및 블로킹
인간 대기 큐(Waiting-on-Human Queue): 에이전트는 질문(예:
clarification,approval,credential,decision)을 첨부하여 블로커를 일시 중지합니다.반응형 재개(Reactive Resume): 웹 UI 또는 MCP를 통해 질문에 답하면 에이전트를 다시 시작하지 않고도 작업이 자동으로 준비 큐로 되돌아갑니다.
전용 인간 인박(Dedicated Human Inbox): 인간이 처리해야 할 모든 사항을 실시간으로 보여주는 큐지입니다.
🔍 5. 발견된 작업(Discovered Work)
작업의 중간 캐시 (Mid-Task Work Capture)**: 진행 중인 작업 클레임을 포기하지 않고 작업 중 발견한 새 작업을 캡처합니다.
즉시 수정 vs 보류(Must-Fix vs Deferred):
must-fix-now(차단 작업으로 삽입) 또는deferred(백로그)로 표시합니다.
🤖 6. 소유권, 동시성 및 임대(Leases)
작업 독점 클레임(Exclusive Changes): 내청이 발견된 상세트 유무 시 자동으로 임대(객체)가 만료됨 (default 5 minutes) — should be lease by timeout: "에이전트가 조용해지면 자동으로 타임아웃되는 리스(기본값 5분)을 사용합니다."
Heartbeat 메커니즘: 장시간 실행되는 작업 중에도 임대를 연장할 수 있습니다.
에이전트 동시성 한도(Agent Concurrency Limits): 에이전트가 동시에 보유하는 작업 수를 제한합니다(기본값: 1).
파일 터치 충돌 경고(File Touch Conflict Warnings): 선언된 파일이 다른 active claims의 일부와 충돌하는지 확인합니다.
🔄 7. 정지 유도 및 반복(Stall & Thrash) 감지
시도 카운터: 각 클레임/시도마다 증가.
자동 상위 단계로 이동(Auto-Escalation): $N$번 반복(기본값 3/3) 후 무작위 반복 대신 작업을
waiting-on-human상태로 자동으로 일시정지합니다.상태 시간 추적(Time-in-State Tracking):
doing상태에서 소요된 시간을 감사하고 반복적으로 재오픈하는 것을 감지합니다.
🏛️ 8. 확정된 아키텍처 결정(ADR)
프로젝트 수준 기록(Project-Level Record)**: 개별 작업보다 오래 살아남아야 하는 선택과 그 이성을 보존합니다.
사전 계획 협의(Pre-Planning Consultation): 에이전트는 계획을 세우기 전에 이 확정된 결정을 먼저 읽습니다.
대체 결정 지원(Supersede Support): 대체된 결정을 필수 사유를 입력하여 깔끔하게 갱신하고 연결합니다.
🚀 빠른 시작 및 설치
옵션 A: 전역 설치( moo 명령어 사용 시 권장)
moo-tasks를 전역 실행해 어디서든지 간결한 moo 명령을 사용하세요:
npm install -g moo-tasks
# or: pnpm add -g moo-tasks | bun add -g moo-tasks설치가 완료되면 moo 명령을 바로 사용할 수 있습니다:
moo init # Initialize .moo workspace in current project
moo start # Launch real-time Web UI (http://127.0.0.1:4242)
moo ws # List registered global workspaces
moo status # Show Where-Did-I-Leave-Off context
moo search # Full-text SQLite search대안 설명
moovsnpx:
moo(인자 포함) 명령없이 설치하기npm install -g moo-tasks로 전역 설치하여 사용 가능합니다.전역 설치가 없다면
npx moo-tasks <command>로 실행합니다(npm 레지스트리의moo는 별도 패키지이므로npx moo` _NOT_사용하지 않는게 좋습니다).전역 설치 실행 후
moo: command not found오류가 발생하면 npm 전역 bin 디렉터리가$PATH에 있는지 확인하세요.export PATH="$(npm prefix -g)/bin:$PATH"
옵션 B: npx moo-tasks 로 온디맨드 실행
전역 설치 없이 직접 실행하는 방법입니다:
1. 작업 영역 및 에이전트 프로토콜 초기화
프로젝트 루트에서 실제 실행합니다:
npx moo-tasks init이렇게 하면:
.moo/tasks.dbSQLite 데이터베이스를 WAL 모드로 초기화합니다.AGENTS.md,CLAUDE.md,.windsurf rules및.windsurfrules를 생성합니다.
2. 로컬 웹 UI 실행
npx moo-tasks start브라우저에서 **http://127.0.0.1:4242**를 엽니다.
LAN(같은 네트워크)에서 다른 기기 또는 태블릿으로 웹 UI에 접근하는 경우:
npx moo-tasks start --lan
# Automatically logs: http://192.168.x.x:4242/🔌 에이전트 & MCP 설정
원스텝 멀티 에이전트 설치
# Configure all detected agent IDEs at once:
npx moo-tasks install all
# Or configure specific clients:
npx moo-tasks install claude # Updates ~/.claude.json
npx moo-tasks install cursor # Generates .cursor/mcp.json
npx moo-tasks install windsurf # Updates ~/.codeium/windsurf/mcp_config.json
npx moo-tasks install antigravity # Generates .gemini/settings.json수동 설정
{
"mcpServers": {
"moo-tasks": {
"command": "npx",
"args": ["moo-tasks", "mcp"]
}
}
}🤖 필수 에이전트 프로토콜
모든 AI 코딩 에이전트는 6단계 주기를 따르도록 지시됩니다:
1. SESSION RESUME → Call moo_session_resume() & moo_list_decisions()
2. ANCHOR GOAL → Call moo_create_goal(title, verbatimPrompt)
3. PLAN & CRITERIA → Call moo_create_task() with markdown criteria BEFORE code
4. EXCLUSIVE CLAIM → Call moo_claim_task(taskId, agentId, sessionId)
5. IMPLEMENTATION → If blocked, call moo_ask_human() or link blockers
6. VERIFIED PROOF → Call moo_complete_task() with test proof & output snippet
7. ADR RECORD → Call moo_record_decision() for architectural choices🛠️ MCP 도구 참조
도구 이름 | 용도 |
| 사용자의 원문 프롬프트를 기록하고 열린 작업 상한을 설정합니다 |
| 프로젝트 목표와 상태를 나열합니다 |
| 목표 적용 범위, 열린 작업 대 상한, 미해결 사항을 확인합니다 |
| 목표를 삭제하고 사유와 함께 모든 하위 작업을 연쇄 삭제합니다 |
| 목표와 해당 작업을 다시 엽니다 |
| 승인 기준과 선언된 파일을 포함하여 목표 아래 작업을 생성합니다 |
| 여러 작업을 원자적으로 일괄 생성합니다 |
| ⚡ 1회 호출 익스프레스 바이브 도구: 임대와 선언된 파일로 작업을 원자적으로 생성하고 소유권을 주장합니다 |
| ⚡ 빠른 진행 체크포인트: 시도 메모를 추가하고 하트비트를 연장합니다 |
| 🧠 프롬프트 주입을 위한 초고밀도 토큰 최적화 컨텍스트 블록(400토큰 미만) |
| 제목, 기준, 우선순위, 선언된 파일 또는 목표를 업데이트합니다 |
| 사이클 검증과 함께 선행 차단 작업을 연결합니다 |
| 선행 차단 작업의 연결을 해제합니다 |
| 다음 차단되지 않은 최우선순위 작업을 자동으로 표시합니다 |
| 전체 작업 세부 정보, 하위 작업, 메모, 종속성을 가져옵니다 |
| 목표, 상태, 우선순위, 에이전트, 지연 여부로 작업을 필터링합니다 |
| 작업을 독점적으로 소유권 주장합니다(임대 및 충돌 검사 적용) |
| 장기 실행 작업 중 활성 임대를 연장합니다 |
| 소유권 주장을 자발적으로 할 일 목록으로 반환합니다 |
| 진행 중인 작업을 메모와 함께 다른 에이전트에게 인계합니다 |
| 필수 명령/증거와 함께 작업을 완료로 표시합니다 |
| 작업 완료를 검증합니다(사람 또는 검증 에이전트) |
| 필수 사유와 함께 완료된 작업을 거부합니다 |
| 질문을 사람에게 에스컬레이션하고 작업을 일시 중지합니다 |
| 사람의 지도를 기다리는 모든 작업을 나열합니다 |
| 질문에 답하고 작업을 자동으로 재개합니다 |
| 발견된 작업을 추가합니다(수정 필수 또는 지연) |
| 타임스탬프와 속성이 있는 컨텍스트/시도 메모를 추가합니다 |
| 컨텍스트 기록과 시도 로그를 나열합니다 |
| 필수 사유와 함께 작업을 삭제합니다 |
| 감사 기록을 잃지 않고 작업을 다시 엽니다 |
| 마지막 상태 전환을 실행 취소합니다 |
| 단일 작업으로 여러 작업을 삭제합니다 |
| 단일 작업으로 여러 작업을 다시 엽니다 |
| 프로젝트 수준 아키텍처 결정을 기록합니다 |
| 계획 전에 확정된 결정을 나열합니다 |
| 새로운 근거로 결정을 대체합니다 |
| 중복 작업을 병합합니다 |
| "어디까지 진행했지?" 세션 요약 |
| 프로젝트를 Markdown, JSON 또는 일반 텍스트로 내보냅니다 |
| 완료/삭제된 작업을 활성 목록에서 보관합니다 |
🏛️ 아키텍처 및 클린 코드
src/
├── domain/ # Pure Enterprise Domain Rules & Invariants
│ ├── types.ts # Domain interfaces & value types
│ ├── errors.ts # Domain-specific typed error classes
│ ├── dependency.ts # DAG cycle detector & unblocked evaluator
│ ├── conflict.ts # File touch overlap conflict detector
│ └── similarity.ts # Duplicate task similarity detector
│
├── infrastructure/ # Persistence & External Integrations
│ ├── db/database.ts # SQLite manager (WAL mode, busy timeout)
│ ├── db/migrations.ts # Schema DDL and versioning
│ ├── git/git-context.ts # Git branch, commit, dirty status extractor
│ └── repositories/ # SQLite Repository Implementations
│
├── services/ # Application Services (Use Cases)
│ ├── goal-service.ts # Goal lifecycle & cap enforcement
│ ├── task-lifecycle-service.ts # State machine, ready queue, undo
│ ├── claim-service.ts # Exclusive claims, leases, dead-agent timeout
│ ├── verification-service.ts# Proof of work & two-phase verification
│ ├── human-collab-service.ts# Human Q&A queue & reactive resume
│ ├── discovered-work-service.ts # Mid-flight discovered work
│ ├── decision-service.ts # ADR logs & supersede linking
│ ├── duplicate-merge-service.ts # Idempotency & task merging
│ ├── session-service.ts # Where-did-I-leave-off session resume
│ ├── housekeeping-service.ts# Archiving & multi-format export
│ └── index.ts # Dependency Injection Container
│
├── mcp/ # Model Context Protocol Stdio Server
├── server/ # Fastify HTTP + Server-Sent Events (SSE) Engine
├── cli/ # CLI Commands (start, init, install, mcp)
└── ui/ # Vanilla JS + Tailwind + Lucide Icons Web UI🤝 기여
기여를 환영합니다! 개발 설정, 테스트 및 PR 지침은 CONTRIBUTING.md를 확인해 주세요.
📄 라이선스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceServer-enforced workflow discipline for AI agents. An MCP server providing persistent work items, dependency graphs, quality gates, and actor attribution. Schemas define what agents must produce — the server blocks the call if they don't. Works with any MCP-compatible client.199MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that enables AI agents to run a deterministic orchestration loop with decomposition, subagent execution, and review feedback across multiple LLM backends.54MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for task management that enables AI agents to read, create, update tasks, and track work sessions, allowing agents and humans to collaborate on the same task board.27MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage hierarchical tasks, track progress, handle dependencies, and coordinate work through an MCP server.5715GPL 3.0
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
MCP server for generating rough-draft project plans from natural-language prompts.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/shekarsiri/moo-tasks'
If you have feedback or need assistance with the MCP directory API, please join our Discord server