linear_createProject
Create a new project in Linear with name, description, content, team assignments, and initial state to organize and track work.
Instructions
Create a new project in Linear
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the project | |
| description | No | Short summary of the project | |
| content | No | Content 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 main handler function for the linear_createProject tool. It validates the input arguments using a type guard and delegates to LinearService.createProject./** * Handler for creating a project */ 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; } };
- MCP tool definition for linear_createProject, including detailed input and output schemas.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: 'Short summary of the project', }, content: { type: 'string', description: 'Content 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:77-78 (registration)Registration of the linear_createProject tool handler within the registerToolHandlers function.linear_getProjects: handleGetProjects(linearService), linear_createProject: handleCreateProject(linearService),
- src/tools/type-guards.ts:204-221 (helper)Type guard function used by the handler to validate input arguments for linear_createProject.* Type guard for linear_createProject tool arguments */ export function isCreateProjectArgs(args: unknown): args is { name: string; description?: string; content?: 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) ); }