Skip to main content
Glama
by cristip73

asana_create_project

Create a new project in Asana with customizable settings including team assignment, layout options, due dates, and member permissions to organize work effectively.

Instructions

Create a new project in a workspace

Input Schema

NameRequiredDescriptionDefault
workspace_idNoThe workspace ID to create the project in (optional if DEFAULT_WORKSPACE_ID is set)
nameYesName of the project to create
team_idNoREQUIRED for organization workspaces: The team GID to share the project with
publicNoWhether the project is public to the organization
archivedNoWhether the project is archived
colorNoColor of the project (light-green, light-orange, light-blue, etc.)
membersNoArray of user GIDs that are members of this project
followersNoArray of user GIDs that are followers of this project
project_briefNoHTML-formatted string containing the description for the project brief
layoutNoThe layout of the project (board, list, timeline, or calendar)list
default_viewNoThe default view of the project (list, board, calendar, timeline, or gantt)
due_onNoThe date on which this project is due (YYYY-MM-DD format)
start_onNoThe day on which work for this project begins (YYYY-MM-DD format)
notesNoFree-form textual information associated with the project
html_notesNoHTML-formatted notes for the project
opt_fieldsNoComma-separated list of optional fields to include

Input Schema (JSON Schema)

{ "properties": { "archived": { "default": false, "description": "Whether the project is archived", "type": "boolean" }, "color": { "description": "Color of the project (light-green, light-orange, light-blue, etc.)", "type": "string" }, "default_view": { "description": "The default view of the project (list, board, calendar, timeline, or gantt)", "type": "string" }, "due_on": { "description": "The date on which this project is due (YYYY-MM-DD format)", "type": "string" }, "followers": { "description": "Array of user GIDs that are followers of this project", "items": { "type": "string" }, "type": "array" }, "html_notes": { "description": "HTML-formatted notes for the project", "type": "string" }, "layout": { "default": "list", "description": "The layout of the project (board, list, timeline, or calendar)", "type": "string" }, "members": { "description": "Array of user GIDs that are members of this project", "items": { "type": "string" }, "type": "array" }, "name": { "description": "Name of the project to create", "type": "string" }, "notes": { "description": "Free-form textual information associated with the project", "type": "string" }, "opt_fields": { "description": "Comma-separated list of optional fields to include", "type": "string" }, "project_brief": { "description": "HTML-formatted string containing the description for the project brief", "type": "string" }, "public": { "default": false, "description": "Whether the project is public to the organization", "type": "boolean" }, "start_on": { "description": "The day on which work for this project begins (YYYY-MM-DD format)", "type": "string" }, "team_id": { "description": "REQUIRED for organization workspaces: The team GID to share the project with", "type": "string" }, "workspace_id": { "description": "The workspace ID to create the project in (optional if DEFAULT_WORKSPACE_ID is set)", "type": "string" } }, "required": [ "name" ], "type": "object" }

Implementation Reference

  • Handler case for 'asana_create_project' tool: processes arguments, normalizes members/followers arrays to Asana API format, calls AsanaClientWrapper.createProjectForWorkspace, and returns JSON response.
    case "asana_create_project": { const { workspace_id, ...projectData } = args; // Extragem opt_fields pentru opțiuni const { opt_fields, ...restData } = projectData; // Pregătim datele pentru proiect const data = { ...restData }; // Verificăm dacă avem team_id și îl păstrăm, în asana-client-wrapper // va fi redenumit automat în team // Conversia array-urilor în formatul așteptat de API if (data.members && Array.isArray(data.members)) { data.members = data.members.map((id: string) => ({ gid: id })); } if (data.followers && Array.isArray(data.followers)) { data.followers = data.followers.map((id: string) => ({ gid: id })); } const response = await asanaClient.createProjectForWorkspace(workspace_id || undefined, data, { opt_fields }); return { content: [{ type: "text", text: JSON.stringify(response) }], }; }
  • Tool schema definition for 'asana_create_project', including inputSchema with properties like workspace_id, name, team_id, public, etc., and required fields.
    export const createProjectForWorkspaceTool: Tool = { name: "asana_create_project", description: "Create a new project in a workspace", inputSchema: { type: "object", properties: { workspace_id: { type: "string", description: "The workspace ID to create the project in (optional if DEFAULT_WORKSPACE_ID is set)" }, name: { type: "string", description: "Name of the project to create" }, team_id: { type: "string", description: "REQUIRED for organization workspaces: The team GID to share the project with" }, public: { type: "boolean", description: "Whether the project is public to the organization", default: false }, archived: { type: "boolean", description: "Whether the project is archived", default: false }, color: { type: "string", description: "Color of the project (light-green, light-orange, light-blue, etc.)" }, members: { type: "array", items: { type: "string" }, description: "Array of user GIDs that are members of this project" }, followers: { type: "array", items: { type: "string" }, description: "Array of user GIDs that are followers of this project" }, project_brief: { type: "string", description: "HTML-formatted string containing the description for the project brief" }, layout: { type: "string", description: "The layout of the project (board, list, timeline, or calendar)", default: "list" }, default_view: { type: "string", description: "The default view of the project (list, board, calendar, timeline, or gantt)" }, due_on: { type: "string", description: "The date on which this project is due (YYYY-MM-DD format)" }, start_on: { type: "string", description: "The day on which work for this project begins (YYYY-MM-DD format)" }, notes: { type: "string", description: "Free-form textual information associated with the project" }, html_notes: { type: "string", description: "HTML-formatted notes for the project" }, opt_fields: { type: "string", description: "Comma-separated list of optional fields to include" } }, required: ["name"] } };
  • Registration of the tool in the main tools array export, which lists all available MCP tools.
    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 ];
  • Import of the createProjectForWorkspaceTool (named 'asana_create_project') from project-tools.ts for registration.
    import { searchProjectsTool, getProjectTool, getProjectTaskCountsTool, getProjectSectionsTool, createSectionForProjectTool, createProjectForWorkspaceTool, updateProjectTool, addMembersForProjectTool, addFollowersForProjectTool, reorderSectionsTool } from './tools/project-tools.js';

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