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
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | No | The workspace ID to create the project in (optional if DEFAULT_WORKSPACE_ID is set) | |
| name | Yes | Name of the project to create | |
| team_id | No | REQUIRED for organization workspaces: The team GID to share the project with | |
| public | No | Whether the project is public to the organization | |
| archived | No | Whether the project is archived | |
| color | No | Color of the project (light-green, light-orange, light-blue, etc.) | |
| members | No | Array of user GIDs that are members of this project | |
| followers | No | Array of user GIDs that are followers of this project | |
| project_brief | No | HTML-formatted string containing the description for the project brief | |
| layout | No | The layout of the project (board, list, timeline, or calendar) | list |
| default_view | No | The default view of the project (list, board, calendar, timeline, or gantt) | |
| due_on | No | The date on which this project is due (YYYY-MM-DD format) | |
| start_on | No | The day on which work for this project begins (YYYY-MM-DD format) | |
| notes | No | Free-form textual information associated with the project | |
| html_notes | No | HTML-formatted notes for the project | |
| opt_fields | No | Comma-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
- src/tool-handler.ts:368-396 (handler)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) }], }; }
- src/tools/project-tools.ts:125-207 (schema)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"] } };
- src/tool-handler.ts:61-103 (registration)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 ];
- src/tool-handler.ts:8-19 (registration)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';