Skip to main content
Glama

TaskMateAI

AI/MCP TODO 태스크 관리 애플리케이션

TaskMateAI는 AI가 자율적으로 태스크를 관리 및 실행하기 위한 간단한 태스크 관리 어플리케이션으로 MCP(Model Context Protocol)를 통해 조작할 수 있습니다.

English README available here

Related MCP server: Personal Task Manager MCP

특징

  • MCP를 통한 작업 생성 및 관리

  • 하위 작업 지원

  • 우선순위에 기반한 작업 처리

  • 작업 진행 관리 및 보고 기능

  • 노트 추가 기능

  • JSON 파일로 데이터 지속성

  • 에이전트 ID로 다중 AI 작업 관리

  • 프로젝트별로 작업 정리

설치

전제 조건

  • 파이썬 3.12 이상

  • uv (Python 패키지 관리자)

  • WSL (Windows Subsystem for Linux) ※Windows 환경의 경우

설치 절차

  1. 리포지토리 복제 또는 다운로드:

git clone https://github.com/YourUsername/TaskMateAI.git
cd TaskMateAI
  1. 필요한 패키지 설치:

uv install -r requirements.txt

사용방법

애플리케이션 시작

WSL 환경에서 다음과 같이 응용 프로그램을 실행할 수 있습니다.

cd /path/to/TaskMateAI/src/TaskMateAI
uv run TaskMateAI

MCP 구성

MCP에서 사용하기 위한 설정 예:

{
    "mcpServers": {
      "TodoApplication": {
        "command": "uv",
        "args": [
          "--directory", 
          "/絶対パス/TaskMateAI",
          "run",
          "TaskMateAI"
        ],
        "env": {},
        "alwaysAllow": [
          "get_tasks", "get_next_task", "create_task", "update_progress", 
          "complete_task", "add_subtask", "update_subtask", "add_note",
          "list_agents", "list_projects"
        ],
        "defaultArguments": {
          "agent_id": "agent_123",
          "project_name": ""
        }
      }
    }
}
{
    "mcpServers": {
      "TodoApplication": {
        "command": "wsl.exe",
        "args": [
          "-e", 
          "bash", 
          "-c", 
          "cd /絶対パス/TaskMateAI && /home/ユーザー/.local/bin/uv run TaskMateAI"
        ],
        "env": {},
        "alwaysAllow": [
          "get_tasks", "get_next_task", "create_task", "update_progress", 
          "complete_task", "add_subtask", "update_subtask", "add_note",
          "list_agents", "list_projects"
        ],
        "defaultArguments": {
          "agent_id": "agent_123",
          "project_name": ""
        }
      }
    }
}

사용 가능한 MCP 도구

TaskMateAI는 다음 MCP 도구를 제공합니다.

  1. get_tasks - 태스크 리스트의 취득(스테이터스나 우선도로 필터링 가능)

  2. get_next_task - 우선순위가 높은 다음 태스크 가져오기(자동으로 진행 중인 상태로 업데이트)

  3. create_task - 새 태스크 작성(하위 태스크 포함)

  4. update_progress - 태스크 진행 업데이트

  5. complete_task - 작업을 완료로 표시

  6. add_subtask - 기존 작업에 하위 작업 추가

  7. update_subtask - 하위 작업의 상태 업데이트

  8. add_note - 작업에 노트 추가

  9. list_agents - 사용 가능한 에이전트 ID 목록을 가져옵니다.

  10. list_projects - 특정 에이전트와 관련된 프로젝트 목록을 가져옵니다.

데이터 형식

작업은 다음과 같은 구조로 관리됩니다.

{
  "id": 1,
  "title": "タスクのタイトル",
  "description": "タスクの詳細な説明",
  "priority": 3,
  "status": "todo",  // "todo", "in_progress", "done" のいずれか
  "progress": 0,     // 0-100 の進捗率
  "subtasks": [
    {
      "id": 1,
      "description": "サブタスクの説明",
      "status": "todo"  // "todo", "in_progress", "done" のいずれか
    }
  ],
  "notes": [
    {
      "id": 1,
      "content": "ノートの内容",
      "timestamp": "2025-02-28T09:22:53.532808"
    }
  ]
}

데이터 저장

작업 데이터는 계층 구조로 저장됩니다.

output/
├── tasks.json                  # デフォルトのタスクファイル
├── agent1/
│   ├── tasks.json              # agent1のタスクファイル
│   ├── project1/
│   │   └── tasks.json          # agent1のproject1のタスクファイル
│   └── project2/
│       └── tasks.json          # agent1のproject2のタスクファイル
└── agent2/
    ├── tasks.json              # agent2のタスクファイル
    └── projectA/
        └── tasks.json          # agent2のprojectAのタスクファイル

각 태스크 파일은 애플리케이션이 실행될 때 자동으로 생성되고 갱신됩니다.

에이전트 및 프로젝트 관리

특정 에이전트 및 프로젝트의 작업을 관리하는 방법은 다음과 같습니다.

  1. MCP 설정에서 기본 에이전트 지정 : defaultArguments 에서 agent_id 를 지정하면 모든 요청에서 자동으로 사용됩니다.

  2. AI 대화에서 프로젝트 지정 : 대화에서 "프로젝트 X에 새 작업 추가" 등을 지정할 수 있습니다.

  3. AI에서 직접 지정 : 요청 매개변수에 agent_idproject_name 포함할 수 있습니다.

프로젝트 구조

TaskMateAI/
├── src/
│   └── TaskMateAI/
│       ├── __init__.py      # パッケージ初期化
│       └── __main__.py      # メインアプリケーションコード
├── output/                  # データ保存ディレクトリ
│   └── tasks.json           # タスクデータ (自動生成)
├── tests/                   # テストコード
│   ├── unit/                # ユニットテスト
│   └── integration/         # 統合テスト
├── requirements.txt         # 依存パッケージリスト
└── README.md                # このファイル

테스트

TaskMateAI는 기능의 신뢰성을 보장하기 위해 포괄적인 테스트 스위트를 제공합니다.

테스트 구성

테스트는 다음 디렉토리 구조로 관리됩니다.

tests/
├── __init__.py           # テストパッケージの初期化
├── conftest.py           # テスト用フィクスチャの定義
├── unit/                 # ユニットテスト
│   ├── __init__.py
│   ├── test_task_utils.py       # タスク関連ユーティリティのテスト
│   ├── test_mcp_tools.py        # MCPツール機能のテスト
│   └── test_agent_projects.py   # エージェントとプロジェクト管理のテスト
└── integration/          # 統合テスト
    └── __init__.py

테스트 유형

  1. 단위 테스트 : 애플리케이션의 개별 구성 요소가 올바르게 작동하는지 확인합니다.

    • test_task_utils.py : 작업 읽기, 쓰기 및 ID 생성과 같은 기본 기능 테스트

    • test_mcp_tools.py : MCP 도구의 기능 (작업 생성, 업데이트, 완료 등) 테스트

    • test_agent_projects.py : 에이전트 ID 및 프로젝트 관리 기능 테스트

  2. 통합 테스트 : 여러 구성 요소가 함께 작동하여 올바르게 작동하는지 확인합니다(향후 확장 예정)

테스트 실행 방법

다음 명령을 사용하여 테스트를 실행할 수 있습니다.

  1. 모든 테스트 실행:

cd /path/to/TaskMateAI
uv run python -m pytest -xvs
  1. 특정 테스트 파일 실행:

uv run python -m pytest -xvs tests/unit/test_task_utils.py
  1. 특정 테스트 클래스 실행:

uv run python -m pytest -xvs tests/unit/test_mcp_tools.py::TestMCPTools
  1. 특정 테스트 함수 실행:

uv run python -m pytest -xvs tests/unit/test_task_utils.py::TestTaskUtils::test_read_tasks_with_data

테스트 인수 설명:

  • -x : 오류가 발생하면 테스트를 중지합니다.

  • -v : 자세한 출력을 표시합니다.

  • -s : 테스트중인 표준 출력을 표시합니다.

수정 예정 항목

  • 작업 템플릿 기능 구현

  • 작업 간 종속성 관리 시스템 구축

  • 스케줄 기능 추가

  • 태그별 태스크 분류 시스템 도입

  • 마일스톤 관리 기능 구현

라이센스

MIT

저자

NewAITees

Related MCP Connectors

Related MCP Servers