get_daily_check_ins
Retrieve daily check-in questionnaires for a specific project using project ID, with pagination support for organized responses.
Instructions
Get project's daily checking questionnaire
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for paginated response | |
| project_id | Yes | The project ID |
Implementation Reference
- src/index.ts:817-829 (handler)The MCP tool handler for 'get_daily_check_ins' that parses arguments, calls the Basecamp client method, and returns a formatted JSON response.case 'get_daily_check_ins': { const checkIns = await client.getDailyCheckIns(typedArgs.project_id, typedArgs.page || 1); return { content: [{ type: 'text', text: JSON.stringify({ status: 'success', daily_check_ins: checkIns, count: checkIns.length }, null, 2) }] }; }
- src/index.ts:513-524 (registration)Tool registration in the MCP server's tools array, including name, description, and input schema definition.{ name: 'get_daily_check_ins', description: "Get project's daily checking questionnaire", inputSchema: { type: 'object', properties: { project_id: { type: 'string', description: 'The project ID' }, page: { type: 'number', description: 'Page number for paginated response' }, }, required: ['project_id'], }, },
- src/lib/basecamp-client.ts:409-422 (helper)Helper method in BasecampClient that fetches daily check-ins (questionnaire questions) from the Basecamp API.async getDailyCheckIns(projectId: string, page = 1): Promise<DailyCheckIn[]> { const project = await this.getProject(projectId); const questionnaire = project.dock.find(item => item.name === 'questionnaire'); if (!questionnaire) { throw new Error(`No questionnaire found for project ${projectId}`); } const response = await this.client.get( `/buckets/${projectId}/questionnaires/${questionnaire.id}/questions.json`, { params: { page } } ); return response.data; }