linear_createProject
Create a new project in Linear with name, description, team assignments, and initial status to organize work and track progress.
Instructions
Create a new project in Linear
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the project | |
| description | No | Description of the project (Markdown supported) | |
| teamIds | Yes | IDs of the teams this project belongs to | |
| state | No | Initial state of the project (e.g., 'planned', 'started', 'paused', 'completed', 'canceled') |
Implementation Reference
- The handler function that executes the linear_createProject tool logic. Validates input args and delegates to LinearService.createProject.export function handleCreateProject(linearService: LinearService) { return async (args: unknown) => { try { if (!isCreateProjectArgs(args)) { throw new Error("Invalid arguments for createProject"); } return await linearService.createProject(args); } catch (error) { logError("Error creating project", error); throw error; } }; }
- Input/output schema definition for the linear_createProject tool.export const createProjectToolDefinition: MCPToolDefinition = { name: "linear_createProject", description: "Create a new project in Linear", input_schema: { type: "object", properties: { name: { type: "string", description: "Name of the project", }, description: { type: "string", description: "Description of the project (Markdown supported)", }, teamIds: { type: "array", items: { type: "string" }, description: "IDs of the teams this project belongs to", }, state: { type: "string", description: "Initial state of the project (e.g., 'planned', 'started', 'paused', 'completed', 'canceled')", }, }, required: ["name", "teamIds"], }, output_schema: { type: "object", properties: { id: { type: "string" }, name: { type: "string" }, url: { type: "string" } } } };
- src/tools/handlers/index.ts:65-65 (registration)Maps the tool name 'linear_createProject' to its handler function in the registerToolHandlers export.linear_createProject: handleCreateProject(linearService),
- src/tools/type-guards.ts:197-213 (helper)Type guard helper 'isCreateProjectArgs' for validating tool input arguments.* Type guard for linear_createProject tool arguments */ export function isCreateProjectArgs(args: unknown): args is { name: string; description?: string; teamIds: string[]; state?: string; } { return ( typeof args === "object" && args !== null && "name" in args && typeof (args as { name: string }).name === "string" && "teamIds" in args && Array.isArray((args as { teamIds: string[] }).teamIds) ); }