| { |
| "name": "save_project", |
| "description": "Create or update a Linear project. If `id` is provided, updates the existing project; otherwise creates a new one. When creating, `name` and at least one team (via `addTeams` or `setTeams`) are required.", |
| "inputSchema": { |
| "$schema": "http://json-schema.org/draft-07/schema#", |
| "type": "object", |
| "properties": { |
| "id": { |
| "description": "Project ID. If provided, updates the existing project", |
| "type": "string" |
| }, |
| "name": { |
| "description": "Project name (required when creating)", |
| "type": "string" |
| }, |
| "icon": { |
| "description": "Icon name or emoji code (e.g. \"Rocket\" or \":eagle:\"), not a raw Unicode emoji", |
| "type": "string" |
| }, |
| "color": { |
| "description": "Hex color", |
| "type": "string" |
| }, |
| "summary": { |
| "description": "Short summary (max 255 chars)", |
| "type": "string" |
| }, |
| "description": { |
| "description": "Content as Markdown. Do not escape the string — use literal newlines and special characters, not escape sequences. To mention a user, use @displayName (e.g., @johndoe)", |
| "type": "string" |
| }, |
| "state": { |
| "description": "Project state", |
| "type": "string" |
| }, |
| "startDate": { |
| "description": "Start date (ISO format). Pair with startDateResolution to indicate precision (e.g. month, quarter)", |
| "type": "string" |
| }, |
| "startDateResolution": { |
| "description": "Start date resolution", |
| "type": "string", |
| "enum": [ |
| "halfYear", |
| "month", |
| "quarter", |
| "year" |
| ] |
| }, |
| "targetDate": { |
| "description": "Target date (ISO format). Pair with targetDateResolution to indicate precision (e.g. month, quarter)", |
| "type": "string" |
| }, |
| "targetDateResolution": { |
| "description": "Target date resolution", |
| "type": "string", |
| "enum": [ |
| "halfYear", |
| "month", |
| "quarter", |
| "year" |
| ] |
| }, |
| "priority": { |
| "description": "0=None, 1=Urgent, 2=High, 3=Medium, 4=Low", |
| "type": "integer", |
| "minimum": 0, |
| "maximum": 4 |
| }, |
| "addTeams": { |
| "description": "Team name or ID to add", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "removeTeams": { |
| "description": "Team name or ID to remove", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "setTeams": { |
| "description": "Replace all teams with these. Cannot combine with addTeams/removeTeams", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "labels": { |
| "description": "Label names or IDs", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "lead": { |
| "description": "User ID, name, email, or \"me\". Null to remove", |
| "anyOf": [ |
| { |
| "type": "string" |
| }, |
| { |
| "type": "null" |
| } |
| ] |
| }, |
| "addInitiatives": { |
| "description": "Initiative names/IDs to add", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "removeInitiatives": { |
| "description": "Initiative names/IDs to remove", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "setInitiatives": { |
| "description": "Replace all initiatives with these. Cannot combine with addInitiatives/removeInitiatives", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| } |
| }, |
| "additionalProperties": false |
| } |
| } |