asana_get_project_statuses
Retrieve all status updates for an Asana project to track progress, monitor milestones, and stay informed about project developments.
Instructions
Get all status updates for a project
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_gid | Yes | The project GID to get statuses for | |
| limit | No | Results per page (1-100) | |
| offset | No | Pagination offset token | |
| opt_fields | No | Comma-separated list of optional fields to include |
Input Schema (JSON Schema)
{
"properties": {
"limit": {
"description": "Results per page (1-100)",
"maximum": 100,
"minimum": 1,
"type": "number"
},
"offset": {
"description": "Pagination offset token",
"type": "string"
},
"opt_fields": {
"description": "Comma-separated list of optional fields to include",
"type": "string"
},
"project_gid": {
"description": "The project GID to get statuses for",
"type": "string"
}
},
"required": [
"project_gid"
],
"type": "object"
}
Implementation Reference
- src/tool-handler.ts:222-228 (handler)The switch case handler that processes the tool call, extracts project_gid and other options, invokes the Asana client wrapper, and returns the JSON response.case "asana_get_project_statuses": { const { project_gid, ...opts } = args; const response = await asanaClient.getProjectStatusesForProject(project_gid, opts); return { content: [{ type: "text", text: JSON.stringify(response) }], }; }
- Defines the MCP Tool object with name, description, and inputSchema for parameter validation (project_gid required, limit 1-100, offset, opt_fields).export const getProjectStatusesForProjectTool: Tool = { name: "asana_get_project_statuses", description: "Get all status updates for a project", inputSchema: { type: "object", properties: { project_gid: { type: "string", description: "The project GID to get statuses for" }, limit: { type: "number", description: "Results per page (1-100)", minimum: 1, maximum: 100 }, offset: { type: "string", description: "Pagination offset token" }, opt_fields: { type: "string", description: "Comma-separated list of optional fields to include" } }, required: ["project_gid"] } };
- src/tool-handler.ts:61-103 (registration)Registers the tool by including getProjectStatusesForProjectTool (asana_get_project_statuses) in the exported tools array used for MCP tool exposure.export const tools: Tool[] = [ listWorkspacesTool, searchProjectsTool, getProjectTool, getProjectTaskCountsTool, getProjectSectionsTool, createSectionForProjectTool, createProjectForWorkspaceTool, updateProjectTool, reorderSectionsTool, getProjectStatusTool, getProjectStatusesForProjectTool, createProjectStatusTool, deleteProjectStatusTool, searchTasksTool, getTaskTool, createTaskTool, updateTaskTool, createSubtaskTool, getMultipleTasksByGidTool, addTaskToSectionTool, getTasksForSectionTool, getProjectHierarchyTool, getSubtasksForTaskTool, getTasksForProjectTool, getTasksForTagTool, getTagsForWorkspaceTool, addTagsToTaskTool, addTaskDependenciesTool, addTaskDependentsTool, setParentForTaskTool, addFollowersToTaskTool, getStoriesForTaskTool, createTaskStoryTool, getTeamsForUserTool, getTeamsForWorkspaceTool, addMembersForProjectTool, addFollowersForProjectTool, getUsersForWorkspaceTool, getAttachmentsForObjectTool, uploadAttachmentForObjectTool, downloadAttachmentTool ];
- src/asana-client-wrapper.ts:619-622 (helper)Helper method in AsanaClientWrapper that wraps the Asana SDK call to retrieve project statuses for a given project_gid, handling opts and returning data.async getProjectStatusesForProject(projectId: string, opts: any = {}) { const response = await this.projectStatuses.getProjectStatusesForProject(projectId, opts); return response.data; }
- src/tool-handler.ts:20-25 (registration)Imports the getProjectStatusesForProjectTool from project-status-tools.ts for registration in the tools array.import { getProjectStatusTool, getProjectStatusesForProjectTool, createProjectStatusTool, deleteProjectStatusTool } from './tools/project-status-tools.js';