Skip to main content
Glama
by cristip73

asana_add_followers_for_project

Add users as followers to an Asana project to keep them informed about project updates and progress. Specify project ID and user GIDs to grant project access.

Instructions

Add followers to a project

Input Schema

NameRequiredDescriptionDefault
project_idYesThe project ID to add followers to
followersYesArray of user GIDs to add as followers to the project
opt_fieldsNoComma-separated list of optional fields to include in the response

Input Schema (JSON Schema)

{ "properties": { "followers": { "description": "Array of user GIDs to add as followers to the project", "items": { "type": "string" }, "type": "array" }, "opt_fields": { "description": "Comma-separated list of optional fields to include in the response", "type": "string" }, "project_id": { "description": "The project ID to add followers to", "type": "string" } }, "required": [ "project_id", "followers" ], "type": "object" }

Implementation Reference

  • Handler logic that extracts parameters and calls the Asana client method to add followers to a project.
    case "asana_add_followers_for_project": { const { project_id, followers, ...opts } = args; const response = await asanaClient.addFollowersForProject(project_id, followers); return { content: [{ type: "text", text: JSON.stringify(response) }], }; }
  • Core implementation in AsanaClientWrapper that calls the Asana API to add followers to a project, with fallback direct API call.
    async addFollowersForProject(projectId: string, followers: any) { try { const followersArray = this.ensureArray(followers); const body = { data: { followers: followersArray } }; const response = await this.projects.addFollowersForProject(body, projectId); return response.data; } catch (error: any) { console.error(`Error adding followers to project: ${error}`); // Adăugăm mai multe detalii despre eroare pentru debugging if (error.response && error.response.body) { console.error(`Response error details: ${JSON.stringify(error.response.body, null, 2)}`); } // Dacă metoda standard eșuează, încercăm metoda alternativă cu callApi direct try { const client = Asana.ApiClient.instance; const followersArray = this.ensureArray(followers); const response = await client.callApi( `/projects/${projectId}/addFollowers`, 'POST', { project_gid: projectId }, {}, {}, {}, { data: { followers: followersArray } }, ['token'], ['application/json'], ['application/json'], 'Blob' ); return response.data; } catch (fallbackError) { console.error("Error in fallback method for adding followers:", fallbackError); throw fallbackError; } } }
  • Tool definition with input schema specifying required project_id and followers array.
    export const addFollowersForProjectTool: Tool = { name: "asana_add_followers_for_project", description: "Add followers to a project", inputSchema: { type: "object", properties: { project_id: { type: "string", description: "The project ID to add followers to" }, followers: { type: "array", items: { type: "string" }, description: "Array of user GIDs to add as followers to the project" }, opt_fields: { type: "string", description: "Comma-separated list of optional fields to include in the response" } }, required: ["project_id", "followers"] } };
  • Registration of the tool in the exported tools array used for MCP tool discovery.
    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 ];
  • Validation logic ensuring project_id is valid GID and followers array is provided.
    case 'asana_add_followers_for_project': result = validateGid(params.project_id, 'project_id'); if (!result.valid) errors.push(...result.errors); const arrayParam = toolName === 'asana_add_members_for_project' ? 'members' : 'followers'; if (!params[arrayParam]) { errors.push(`${arrayParam} is required`); } break;

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/cristip73/mcp-server-asana'

If you have feedback or need assistance with the MCP directory API, please join our Discord server