get_tasks
Retrieve a filtered list of tasks from a specified project. Supports filtering by keywords, tags, status, milestones, priority, assignee, due date, and completion state.
Instructions
Repsonaからタスクの一覧を取得します
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | プロジェクトID | |
| page | No | 一覧の開始ページ | |
| keywords | No | キーワード | |
| tags | No | タグID | |
| statuses | No | ステータスID | |
| milestones | No | マイルストーンID | |
| priorities | No | 優先度 | |
| responsible_users | No | 担当者のユーザーID | |
| ball_holding_users | No | ボール保持者のユーザーID | |
| due_date_gte | No | 期限の開始日 | |
| due_date_lte | No | 期限の終了日 | |
| is_expired | No | 期限切れを表示する | |
| is_closed | No | 完了済み表示する |
Implementation Reference
- index.js:1115-1125 (handler)Handler for 'get_tasks' tool in the CallToolRequestSchema switch statement. Extracts projectId and params from args, calls RepsonaAPI.getTasks(), and returns the result as JSON text.
case 'get_tasks': const { projectId, ...taskParams } = args; const tasks = await this.repsonaAPI.getTasks(projectId, taskParams); return { content: [ { type: 'text', text: JSON.stringify(tasks, null, 2), }, ], }; - index.js:426-447 (schema)Input schema definition for 'get_tasks' tool, registered in the ListToolsRequestSchema handler. Describes the tool and its parameters (projectId required, plus optional filters).
name: 'get_tasks', description: 'Repsonaからタスクの一覧を取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, page: { type: 'string', description: '一覧の開始ページ' }, keywords: { type: 'string', description: 'キーワード' }, tags: { type: 'string', description: 'タグID' }, statuses: { type: 'string', description: 'ステータスID' }, milestones: { type: 'string', description: 'マイルストーンID' }, priorities: { type: 'string', description: '優先度' }, responsible_users: { type: 'string', description: '担当者のユーザーID' }, ball_holding_users: { type: 'string', description: 'ボール保持者のユーザーID' }, due_date_gte: { type: 'string', description: '期限の開始日' }, due_date_lte: { type: 'string', description: '期限の終了日' }, is_expired: { type: 'boolean', description: '期限切れを表示する' }, is_closed: { type: 'boolean', description: '完了済み表示する' }, }, required: ['projectId'], }, }, - index.js:422-1107 (registration)Registration of 'get_tasks' tool via ListToolsRequestSchema handler. The tool is listed in the tools array returned to the MCP client.
this.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ { name: 'get_tasks', description: 'Repsonaからタスクの一覧を取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, page: { type: 'string', description: '一覧の開始ページ' }, keywords: { type: 'string', description: 'キーワード' }, tags: { type: 'string', description: 'タグID' }, statuses: { type: 'string', description: 'ステータスID' }, milestones: { type: 'string', description: 'マイルストーンID' }, priorities: { type: 'string', description: '優先度' }, responsible_users: { type: 'string', description: '担当者のユーザーID' }, ball_holding_users: { type: 'string', description: 'ボール保持者のユーザーID' }, due_date_gte: { type: 'string', description: '期限の開始日' }, due_date_lte: { type: 'string', description: '期限の終了日' }, is_expired: { type: 'boolean', description: '期限切れを表示する' }, is_closed: { type: 'boolean', description: '完了済み表示する' }, }, required: ['projectId'], }, }, { name: 'get_task', description: '特定のタスクの詳細を取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, taskId: { type: 'string', description: 'タスクID' }, }, required: ['projectId', 'taskId'], }, }, { name: 'create_task', description: '新しいタスクを作成します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, name: { type: 'string', description: 'タスク名' }, description: { type: 'string', description: '内容' }, startDate: { oneOf: [ { type: 'number', description: '開始日時(ミリ秒タイムスタンプ)' }, { type: 'string', description: '開始日時("今日", "明日", "3日後", "来週末", "来月末", "来週の月曜日", ISO形式など)' } ] }, dueDate: { oneOf: [ { type: 'number', description: '期限(ミリ秒タイムスタンプ)' }, { type: 'string', description: '期限("今日", "明日", "3日後", "来週末", "来月末", "来週の月曜日", ISO形式など)' } ] }, status: { type: 'number', description: 'ステータスID' }, tags: { type: 'array', items: { type: 'number' }, description: 'タグID' }, priority: { type: 'number', enum: [1, 2, 3], description: '優先度' }, milestone: { type: 'number', description: 'マイルストーンID' }, parent: { type: 'number', description: '親タスクID' }, addToBottom: { type: 'boolean', description: '一番下に追加するかどうか' }, responsibleUser: { type: 'number', description: '担当者' }, ballHoldingUser: { type: 'number', description: 'ボール保持者' }, }, required: ['projectId', 'name'], }, }, { name: 'update_task', description: 'タスクを更新します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, taskId: { type: 'string', description: 'タスクID' }, name: { type: 'string', description: 'タスク名' }, description: { type: 'string', description: '内容' }, startDate: { oneOf: [ { type: 'number', description: '開始日時(ミリ秒タイムスタンプ)' }, { type: 'string', description: '開始日時("今日", "明日", "3日後", "来週末", "来月末", "来週の月曜日", ISO形式など)' } ] }, dueDate: { oneOf: [ { type: 'number', description: '期限(ミリ秒タイムスタンプ)' }, { type: 'string', description: '期限("今日", "明日", "3日後", "来週末", "来月末", "来週の月曜日", ISO形式など)' } ] }, status: { type: 'number', description: 'ステータスID' }, tags: { type: 'array', items: { type: 'number' }, description: 'タグID' }, priority: { type: 'number', enum: [1, 2, 3], description: '優先度' }, milestone: { type: 'number', description: 'マイルストーンID' }, parent: { type: 'number', description: '親タスクID' }, responsibleUser: { type: 'number', description: '担当者' }, ballHoldingUser: { type: 'number', description: 'ボール保持者' }, }, required: ['projectId', 'taskId'], }, }, { name: 'delete_task', description: 'タスクを削除します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, taskId: { type: 'string', description: 'タスクID' }, }, required: ['projectId', 'taskId'], }, }, { name: 'get_project_notes', description: '指定したプロジェクト内のノート一覧を取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, }, required: ['projectId'], }, }, { name: 'get_project_note', description: '指定したプロジェクト内の特定のノートの詳細を取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, noteId: { type: 'string', description: 'ノートID' }, }, required: ['projectId', 'noteId'], }, }, { name: 'create_project_note', description: '指定したプロジェクト内にノートを作成します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, name: { type: 'string', description: 'ノート名' }, description: { type: 'string', description: 'ノートの内容' }, tags: { type: 'array', items: { type: 'number' }, description: 'タグID' }, parent: { type: 'number', description: '親ノートID' }, addToBottom: { type: 'boolean', description: '一番下に追加するかどうか' }, }, required: ['projectId', 'name'], }, }, { name: 'update_project_note', description: '指定したプロジェクト内のノートを更新します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, noteId: { type: 'string', description: 'ノートID' }, name: { type: 'string', description: 'ノート名' }, description: { type: 'string', description: 'ノートの内容' }, tags: { type: 'array', items: { type: 'number' }, description: 'タグID' }, parent: { type: 'number', description: '親ノートID' }, }, required: ['projectId', 'noteId'], }, }, { name: 'delete_project_note', description: '指定したプロジェクト内のノートを削除します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, noteId: { type: 'string', description: 'ノートID' }, }, required: ['projectId', 'noteId'], }, }, { name: 'get_project_note_children', description: '指定したプロジェクト内のノートのサブノート一覧を取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, noteId: { type: 'string', description: 'ノートID' }, }, required: ['projectId', 'noteId'], }, }, { name: 'get_project_note_comments', description: '指定したプロジェクト内のノートのコメント一覧を取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, noteId: { type: 'string', description: 'ノートID' }, }, required: ['projectId', 'noteId'], }, }, { name: 'create_project_note_comment', description: '指定したプロジェクト内のノートにコメントを投稿します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, noteId: { type: 'string', description: 'ノートID' }, comment: { type: 'string', description: 'コメント内容' }, parent: { type: 'number', description: '返信先コメントID' }, }, required: ['projectId', 'noteId', 'comment'], }, }, { name: 'update_project_note_comment', description: '指定したプロジェクト内のノートのコメントを更新します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, noteCommentId: { type: 'string', description: 'コメントID' }, comment: { type: 'string', description: 'コメント内容' }, }, required: ['projectId', 'noteCommentId', 'comment'], }, }, { name: 'delete_project_note_comment', description: '指定したプロジェクト内のノートのコメントを削除します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, noteCommentId: { type: 'string', description: 'コメントID' }, }, required: ['projectId', 'noteCommentId'], }, }, { name: 'get_project_note_activity_log', description: '指定したプロジェクト内のノートのアクティビティログを取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, noteId: { type: 'string', description: 'ノートID' }, page: { type: 'number', description: 'ページ番号(1が最初)' }, }, required: ['projectId', 'noteId'], }, }, { name: 'get_project_note_history', description: '指定したプロジェクト内のノートの履歴を取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, noteId: { type: 'string', description: 'ノートID' }, }, required: ['projectId', 'noteId'], }, }, { name: 'download_file', description: '指定したファイルハッシュでファイルをダウンロードします', inputSchema: { type: 'object', properties: { hash: { type: 'string', description: 'ファイルハッシュ' }, }, required: ['hash'], }, }, { name: 'upload_file', description: '指定したプロジェクトにファイルをアップロードします', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, fileData: { type: 'object', description: 'ファイルデータ(multipart/form-data形式)' }, }, required: ['projectId', 'fileData'], }, }, { name: 'attach_file', description: '指定したファイルをタスクやノートに添付します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, model: { type: 'string', enum: ['task', 'task_comment', 'note', 'note_comment'], description: 'タスク、タスクコメント、ノート、ノートコメント' }, modelId: { type: 'string', description: 'タスクID、タスクコメントID、ノートID、ノートコメントID' }, fileId: { type: 'string', description: 'ファイルID' }, }, required: ['projectId', 'model', 'modelId', 'fileId'], }, }, { name: 'detach_file', description: '指定したファイルをタスクやノートから添付を外します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, model: { type: 'string', enum: ['task', 'task_comment', 'note', 'note_comment'], description: 'タスク、タスクコメント、ノート、ノートコメント' }, modelId: { type: 'string', description: 'タスクID、タスクコメントID、ノートID、ノートコメントID' }, fileId: { type: 'string', description: 'ファイルID' }, }, required: ['projectId', 'model', 'modelId', 'fileId'], }, }, { name: 'delete_file', description: '指定したファイルハッシュでファイルを削除します(アップロードしたユーザーのみ)', inputSchema: { type: 'object', properties: { hash: { type: 'string', description: 'ファイルハッシュ' }, }, required: ['hash'], }, }, { name: 'update_user_role', description: '指定したユーザーのロールを更新します(Owner/Admin権限が必要)', inputSchema: { type: 'object', properties: { userId: { type: 'string', description: 'ユーザーID' }, role: { type: 'string', enum: ['owner', 'admin', 'member', 'no-login'], description: 'ロール(owner: オーナー、admin: 管理者、member: メンバー、no-login: ログイン不可)' }, }, required: ['userId', 'role'], }, }, { name: 'invite_to_space', description: '新しいメンバーをスペースに招待します(Owner/Admin権限が必要)', inputSchema: { type: 'object', properties: { email: { type: 'string', description: 'メールアドレス' }, name: { type: 'string', description: '名前' }, fullName: { type: 'string', description: 'フルネーム' }, projects: { type: 'array', items: { type: 'string' }, description: 'プロジェクトID' }, }, required: ['email', 'name'], }, }, { name: 'get_me', description: '自分の情報を取得します', inputSchema: { type: 'object', properties: {}, }, }, { name: 'update_me', description: '自分の情報を更新します', inputSchema: { type: 'object', properties: { name: { type: 'string', description: '名前' }, fullName: { type: 'string', description: 'フルネーム' }, whatAreYouDoing: { type: 'string', description: '何をやっていますか?' }, }, }, }, { name: 'get_my_tasks', description: '指定したタイプの自分のタスクを取得します', inputSchema: { type: 'object', properties: { type: { type: 'string', enum: ['responsible', 'ballHolding', 'following'], description: 'タイプ。responsible(担当)、ballHolding(ボール保持)、following(フォロー中)を指定できます。' }, }, required: ['type'], }, }, { name: 'get_my_tasks_count', description: '指定したタイプの自分のタスク数を取得します', inputSchema: { type: 'object', properties: { type: { type: 'string', enum: ['responsible', 'ballHolding', 'following'], description: 'タイプ。responsible(担当)、ballHolding(ボール保持)、following(フォロー中)を指定できます。' }, }, required: ['type'], }, }, { name: 'get_my_projects', description: '参加しているプロジェクトを取得します', inputSchema: { type: 'object', properties: {}, }, }, { name: 'get_feed', description: '自分のアクティビティフィードを取得します', inputSchema: { type: 'object', properties: { page: { type: 'number', description: 'ページ番号(1が最初)' }, }, }, }, { name: 'get_projects', description: 'プロジェクトの一覧を取得します', inputSchema: { type: 'object', properties: {}, }, }, { name: 'get_project', description: '指定したプロジェクトの詳細情報を取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, }, required: ['projectId'], }, }, { name: 'create_project', description: '新しいプロジェクトを作成します', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'プロジェクト名' }, fullName: { type: 'string', description: '正式名称' }, purpose: { type: 'string', description: 'プロジェクトの目的' }, }, required: ['name'], }, }, { name: 'update_project', description: '指定したプロジェクトを更新します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, name: { type: 'string', description: 'プロジェクト名' }, fullName: { type: 'string', description: '正式名称' }, purpose: { type: 'string', description: 'プロジェクトの目的' }, }, required: ['projectId'], }, }, { name: 'get_project_users', description: '指定したプロジェクトに参加しているユーザーを取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, }, required: ['projectId'], }, }, { name: 'get_project_activity', description: '指定したプロジェクトのアクティビティを取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, page: { type: 'number', description: 'ページ番号(1が最初)' }, }, required: ['projectId'], }, }, { name: 'get_project_statuses', description: '指定したプロジェクトのステータス一覧を取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, }, required: ['projectId'], }, }, { name: 'get_project_milestones', description: '指定したプロジェクトのマイルストーン一覧を取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, }, required: ['projectId'], }, }, { name: 'get_space_info', description: 'スペースの情報を取得します', inputSchema: { type: 'object', properties: {}, }, }, { name: 'get_all_tags', description: '全てのタグ一覧を取得します', inputSchema: { type: 'object', properties: {}, }, }, { name: 'get_inbox', description: '自分の受信トレイを取得します', inputSchema: { type: 'object', properties: { status: { type: 'string', description: 'ステータス(例: all, unread, read)' }, }, required: ['status'], }, }, { name: 'update_inbox', description: '受信トレイの未読・既読を更新します', inputSchema: { type: 'object', properties: { id: { type: 'string', description: '受信トレイID' }, status: { type: 'string', enum: ['unread', 'archived'], description: 'ステータス(unread: 未読、archived: 既読)' }, }, required: ['id', 'status'], }, }, { name: 'archive_all_inbox', description: '受信トレイを一括既読にします', inputSchema: { type: 'object', properties: {}, }, }, { name: 'get_inbox_unread_count', description: '受信トレイの未読件数を取得します', inputSchema: { type: 'object', properties: {}, }, }, { name: 'get_task_comments', description: '指定したタスクのコメント一覧を取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, taskId: { type: 'string', description: 'タスクID' }, }, required: ['projectId', 'taskId'], }, }, { name: 'create_task_comment', description: '指定したタスクにコメントを投稿します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, taskId: { type: 'string', description: 'タスクID' }, comment: { type: 'string', description: 'コメント内容' }, parent: { type: 'number', description: '親コメントID(返信の場合)' }, }, required: ['projectId', 'taskId', 'comment'], }, }, { name: 'update_task_comment', description: '指定したタスクのコメントを更新します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, taskCommentId: { type: 'string', description: 'コメントID' }, comment: { type: 'string', description: 'コメント内容' }, }, required: ['projectId', 'taskCommentId', 'comment'], }, }, { name: 'delete_task_comment', description: '指定したタスクのコメントを削除します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, taskCommentId: { type: 'string', description: 'コメントID' }, }, required: ['projectId', 'taskCommentId'], }, }, { name: 'get_task_activity_log', description: '指定したタスクのアクティビティログを取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, taskId: { type: 'string', description: 'タスクID' }, page: { type: 'number', description: 'ページ番号(1が最初)' }, }, required: ['projectId', 'taskId'], }, }, { name: 'get_task_history', description: '指定したタスクの履歴を取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, taskId: { type: 'string', description: 'タスクID' }, }, required: ['projectId', 'taskId'], }, }, { name: 'get_task_subtasks', description: '指定したタスクのサブタスク一覧を取得します', inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'プロジェクトID' }, taskId: { type: 'string', description: 'タスクID' }, }, required: ['projectId', 'taskId'], }, }, ], }; }); - index.js:140-157 (helper)RepsonaAPI.getTasks() method - helper that constructs the API request URL with query parameters and calls makeRequest to fetch tasks from the Repsona API.
async getTasks(projectId, params) { const query = new URLSearchParams(); if (params?.page) query.append('page', params.page); if (params?.keywords) query.append('keywords', params.keywords); if (params?.tags) query.append('tags', params.tags); if (params?.statuses) query.append('statuses', params.statuses); if (params?.milestones) query.append('milestones', params.milestones); if (params?.priorities) query.append('priorities', params.priorities); if (params?.responsible_users) query.append('responsible_users', params.responsible_users); if (params?.ball_holding_users) query.append('ball_holding_users', params.ball_holding_users); if (params?.due_date_gte) query.append('due_date_gte', params.due_date_gte); if (params?.due_date_lte) query.append('due_date_lte', params.due_date_lte); if (params?.is_expired !== undefined) query.append('is_expired', params.is_expired.toString()); if (params?.is_closed !== undefined) query.append('is_closed', params.is_closed.toString()); const endpoint = `/project/${projectId}/task${query.toString() ? '?' + query.toString() : ''}`; return this.makeRequest(endpoint); }