Task MCP Server
Task MCP Server — MCP 학습용 샘플
이 샘플의 목적
MCP (Model Context Protocol)의 기본 요소인 Resources / Tools / Prompts를 간단한 ToDo 관리 서버를 통해 전반적으로 체험하기 위한 학습용 샘플입니다.
무엇을 배울 수 있는가
Resources: AI 클라이언트가 서버로부터 데이터를 읽어오는 구조
Tools: AI 클라이언트가 서버에 대해 작업을 실행하는 구조
Prompts: AI에게 특정 관점이나 맥락을 제공하는 템플릿 구조
MCP 서버의 기본적인 구성과 STDIO transport를 통한 통신
MCP의 구조
MCP는 AI 애플리케이션(호스트)이 외부 데이터나 도구에 통일된 방식으로 접근하기 위한 프로토콜입니다.
전체 모습
graph TB
subgraph host[" "]
HostLabel["🖥️ ホスト(Claude Desktop / VS Code など)"]
LLM["LLM"]
ClientA["MCP クライアント"]
ClientB["MCP クライアント"]
ClientC["MCP クライアント"]
HostLabel ~~~ LLM
LLM --- ClientA
LLM --- ClientB
LLM --- ClientC
end
ClientA -- "STDIO" --> ServerA["MCP サーバー A\n(本サンプル)"]
ClientB -- "STDIO" --> ServerB["MCP サーバー B\n(別のサーバー)"]
ClientC -- "SSE/HTTP" --> ServerC["MCP サーバー C\n(リモート)"]
style host fill:#1a1a2e,stroke:#e0e0e0,stroke-width:2px,color:#ffffff
style HostLabel fill:none,stroke:none,font-weight:bold,color:#ffffff
style LLM fill:#ffffff,stroke:#333333,color:#000000
style ClientA fill:#ffffff,stroke:#333333,color:#000000
style ClientB fill:#ffffff,stroke:#333333,color:#000000
style ClientC fill:#ffffff,stroke:#333333,color:#000000호스트: AI 애플리케이션 본체. 사용자와의 대화나 LLM 호출을 수행함
MCP 클라이언트: 호스트에 포함되어 각 MCP 서버와 1:1로 통신함
MCP 서버: Resources / Tools / Prompts를 제공함. 본 샘플이 이에 해당함
MCP 서버가 제공하는 3가지 요소
block-beta
columns 1
block:server["MCP サーバー"]
R["📖 Resources(データ参照)\nタスク一覧 ・ 統計情報"]
T["🔧 Tools(操作の実行)\nタスク追加 ・ タスク完了 ・ 検索"]
P["💬 Prompts(テンプレート)\nデイリーレビュー ・ タスク分解"]
end요소 | 방향 | 역할 | 예시 (본 샘플) |
Resources | 서버 → 클라이언트 | 데이터 읽기. URI를 지정하여 가져옴 |
|
Tools | 클라이언트 → 서버 | 작업 실행. 인수를 전달하여 처리 호출 |
|
Prompts | 서버 → 클라이언트 | AI를 위한 지시 템플릿. 동적으로 데이터 삽입 가능 |
|
통신 흐름 (본 샘플의 경우)
sequenceDiagram
participant U as ユーザー
participant H as ホスト / LLM
participant C as MCP クライアント
participant S as MCP サーバー
participant F as tasks.json
U->>H: 「タスクを追加して」
H->>C: add_task 呼び出し
C->>S: JSON-RPC request
S->>F: ファイル書き込み
F-->>S: OK
S-->>C: JSON-RPC response
C-->>H: 結果を返す
H-->>U: 「追加しました」사용자가 자연어로 요청함
호스트의 LLM이 적절한 도구를 선택하여 MCP 클라이언트를 통해 호출함
MCP 서버가 처리를 실행하고(본 샘플에서는 tasks.json을 읽고 씀), 결과를 반환함
LLM이 결과를 바탕으로 사용자에게 응답함
포인트: MCP 클라이언트와 서버 사이는 JSON-RPC 2.0으로 통신합니다. 본 샘플에서는 transport로 STDIO(표준 입출력)를 사용하므로, 서버의
stdout은 MCP 통신 전용입니다. 로그 출력에는stderr를 사용합니다.
파일 구성
├── server.py # MCP サーバー本体(Resources / Tools / Prompts を登録)
├── task_store.py # Task モデルと JSON 永続化
├── requirements.txt # 依存パッケージ
├── tasks_sample.json # サンプルデータ(動作確認用)
├── README.md
└── tests/
└── test_task_store.py # ストレージ層のテスト전제 조건
Python 3.10 이상
설정
# 仮想環境の作成(推奨)
python -m venv .venv
source .venv/bin/activate
# 依存パッケージのインストール
pip install -r requirements.txt
# テスト用パッケージ(テストを実行する場合)
pip install pytest# 仮想環境の作成(推奨)
python -m venv .venv
.venv\Scripts\Activate.ps1
# 依存パッケージのインストール
pip install -r requirements.txt
# テスト用パッケージ(テストを実行する場合)
pip install pytest실행 방법
# サンプルデータを使う場合はコピー
cp tasks_sample.json tasks.json
# サーバー起動(STDIO transport)
python server.py# サンプルデータを使う場合はコピー
Copy-Item tasks_sample.json tasks.json
# サーバー起動(STDIO transport)
python server.py서버는 표준 입출력으로 MCP 프로토콜을 사용합니다. 직접 실행해도 사람이 읽을 수 있는 출력은 나오지 않습니다. MCP 클라이언트에서 연결하여 사용합니다.
MCP 클라이언트에서의 사용법
Claude Desktop의 경우
Claude Desktop 메뉴에서 Settings를 엽니다.
왼쪽 메뉴에서 Developer를 선택합니다.
Edit Config 버튼을 클릭하면 설정 파일이 열립니다.
설정 파일에 다음 내용을 추가합니다 (
cwd는 이 리포지토리를 배치한 디렉토리의 절대 경로로 교체하세요).파일을 저장하고 Claude Desktop을 재시작합니다.
채팅 화면 입력란에 망치 아이콘이 표시되면 연결 성공입니다.
주의: Claude Desktop 재시작 시, 창 오른쪽 상단의 × 버튼으로는 앱이 종료되지 않습니다(백그라운드에 남습니다). 메뉴 바의 File > Exit(macOS에서는 Claude > Quit Claude)에서 완전히 종료한 후 다시 실행하세요.
설정 파일 위치:
OS | 경로 |
macOS |
|
Windows |
|
설정 내용 (경로는 환경에 맞춰 수정하세요):
{
"mcpServers": {
"task-server": {
"command": "python",
"args": ["/path/to/mcp-sample/server.py"],
"cwd": "/path/to/mcp-sample"
}
}
}주의:
args의server.py는 절대 경로로 지정하세요. 상대 경로로 지정하면cwd가 반영되지 않아 의도하지 않은 디렉토리에서 실행될 수 있습니다.
사용 예시 — 채팅창에 다음과 같이 입력합니다:
add_task で「買い物リストを作る」というタスクを追加して
→ add_task ツールが呼ばれ、タスクが追加される
list_tasks でタスク一覧を表示して
→ list_tasks ツールが呼ばれ、一覧が表示される
daily_review プロンプトを使って、今日やることを整理して
→ daily_review Prompt をもとに提案が返る팁: MCP 도구는 모호한 자연어로는 호출되지 않을 수 있습니다. 도구 이름이나 프롬프트 이름을 포함하여 지시하면 확실합니다.
Claude Code (CLI)의 경우
프로젝트 루트 디렉토리에 .mcp.json을 생성합니다:
# mcp-sample ディレクトリ内で実行
claude mcp add task-server -- python server.py또는 수동으로 .mcp.json을 생성해도 됩니다:
{
"mcpServers": {
"task-server": {
"command": "python",
"args": ["server.py"]
}
}
}연결 확인:
# Claude Code を起動して /mcp コマンドで確認
claude
> /mcp도구 목록에 add_task나 list_tasks가 표시되면 연결 성공입니다.
사용 예시 — Claude Code 프롬프트에 직접 입력합니다:
> add_task で「レポート作成」というタスクを優先度 high で追加して
> list_tasks で高優先度のタスクだけ表示して
> search_tasks で「レポート」を検索して
> complete_task でタスク a1b2c3d4 を完了にして
> weekly_summary プロンプトを使って今週の振り返りをしてVS Code (GitHub Copilot)의 경우
VS Code에서는 .vscode/mcp.json에 설정을 둡니다:
{
"servers": {
"task-server": {
"command": "python",
"args": ["server.py"],
"cwd": "${workspaceFolder}"
}
}
}.vscode/mcp.json을 저장하면 파일 상단에 Start 버튼이 표시됩니다.Start를 클릭하여 서버를 실행합니다.
Copilot Chat(Agent 모드)에서 도구를 사용할 수 있게 됩니다.
사용 예시 — Copilot Chat을 Agent 모드로 전환한 후 입력합니다:
add_task で期限 2026-04-10 の「設計レビュー」タスクを追加して
list_tasks で status が doing のタスクを表示して
break_down_task プロンプトでタスク a1b2c3d4 を小さく分解してManus의 경우
Manus는 사용자의 지시에 따라 자율적으로 작업을 수행하는 AI 에이전트 플랫폼입니다. MCP 클라이언트로도 작동하며, 외부 MCP 서버에 연결하여 도구나 데이터를 사용할 수 있습니다.
Manus 설정 화면에서 MCP 서버를 추가합니다:
Manus의 Settings(설정)를 엽니다.
MCP Servers 섹션에서 Add Server를 클릭합니다.
다음 내용을 설정합니다:
항목 | 값 |
Name |
|
Transport |
|
Command |
|
Arguments |
|
주의: Manus는 클라우드에서 작동하므로, 로컬 MCP 서버에 연결하려면 서버를 원격에서 접근 가능하게 하거나 Manus가 제공하는 로컬 연결 기능을 사용해야 합니다. 자세한 내용은 Manus 공식 문서를 참조하세요.
설정을 저장하면 Manus 에이전트가 작업 실행 시 본 서버의 도구를 자동으로 선택하고 호출할 수 있게 됩니다.
사용 예시 — Manus에 다음과 같이 지시합니다:
タスク一覧を確認して、期限が近いものを優先度順に整理して
→ list_tasks ツールで一覧を取得し、整理した結果を返す
「企画書を書く」というタスクを追加して、さらに小さなステップに分解して
→ add_task でタスクを追加し、break_down_task で分解まで自動実行팁: Manus는 자율적으로 도구를 조합하여 실행하므로, 여러 단계에 걸친 지시도 한꺼번에 처리할 수 있습니다.
제공하는 MCP 기능 목록
Resources (데이터 읽기)
URI | 설명 |
| 전체 작업 목록 |
| 미완료 작업 목록 (open / doing) |
| 통계 정보 (total, open, doing, done, overdue) |
| 특정 작업 상세 |
Tools (작업)
도구 이름 | 설명 |
| 작업 추가 |
| 작업 목록 (status / priority / tag / limit으로 필터링 가능) |
| 작업 업데이트 (변경할 필드만 지정) |
| 작업을 완료 상태로 변경 |
| 작업 삭제 |
| title / notes 부분 일치 검색 |
Prompts (AI용 템플릿)
Prompt 이름 | 설명 | 인수 |
| 오늘 해야 할 일을 정리하는 일일 검토 | 없음 |
| 큰 작업을 작게 세분화 |
|
| 주간 회고 및 다음 주 계획 | 없음 |
데이터 저장 위치
tasks.json(서버와 같은 디렉토리에 자동 생성)JSON 형식으로 전체 작업 저장
테스트
python -m pytest tests/ -v테스트 실행 명령어는 Bash / PowerShell 공통입니다.
제약 사항
단일 사용자용: 동시 접속이나 사용자 관리 미지원
로컬 전용: 네트워크 공개는 고려하지 않음
학습용: 실운영을 위한 견고성 및 보안은 고려하지 않음
DB 미사용: 데이터는 JSON 파일에 저장
인증 없음: 인증 및 인가 구조 포함 안 됨
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/m-higuchi/mcp-sample'
If you have feedback or need assistance with the MCP directory API, please join our Discord server