timecard_get_activities
Retrieve project activities with IDs, names, and values for timesheet entry in TimeCard MCP. Use the returned activity_value to log hours with timecard_save.
Instructions
Get list of activities for a specific project. Returns activity id, name, and value.
The 'value' field (format: "bottom$uid$pid$progress") is the activity_value needed by timecard_save's entries parameter.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID to get activities for |
Implementation Reference
- src/tools/data-tools.ts:56-86 (handler)Handler implementation for timecard_get_activities. It fetches activities via session, filters them by project_id and isBottom status, and formats the response.
handler: async (args, session: TimeCardSession) => { const authResult = await session.ensureAuthenticated(); if (!authResult.success) { throw new Error(authResult.message); } const safeArgs = args || {}; const { project_id } = safeArgs; try { const allActivities = await session.getActivityList(); // Filter to leaf activities (isBottom='true') for the specified project const activities = allActivities .filter(a => a.projectId === project_id && a.isBottom === 'true') .map(a => ({ id: a.uid, name: a.name.replace(/<<.*?>>/, '').trim(), description: a.name.replace(/<<.*?>>/, '').trim(), value: `${a.isBottom}$${a.uid}$${a.projectId}$${a.progress}` })); return { project_id, activities, count: activities.length }; } catch (error) { throw new Error(`Failed to get activities for project ${project_id}: ${error instanceof Error ? error.message : 'Unknown error'}`); } } - src/tools/data-tools.ts:46-55 (schema)Input schema definition for timecard_get_activities, requiring a project_id string.
inputSchema: { type: 'object', properties: { project_id: { type: 'string', description: 'Project ID to get activities for' } }, required: ['project_id'] }, - src/tools/data-tools.ts:261-261 (registration)Registration of the timecard_get_activities tool in the dataTools array.
timecardGetActivities,