Create a Task via MCP: Required Fields, Defaults, and Safety Checks
Developer reference for the create_task MCP tool. Learn how to create new tasks with required and optional fields, understand defaults, implement safety checks, and use confirmation patterns. Includes example tool calls, natural language prompts, edge cases, and troubleshooting.
Tool Overview
Purpose
The create_task tool creates a new task in your Corcava workspace. Use this tool to capture new work, create follow-ups, or convert ideas into actionable tasks.
⚠️ Write operation: This tool modifies data - always use confirmation patterns before calling it.
Input Parameters
Some fields are required, others are optional with sensible defaults.
Output Format
The tool returns the newly created task object with all fields populated:
{
"id": 789,
"title": "Follow up with Acme Corp",
"description": "Schedule a call to discuss the proposal",
"status": "open",
"priority": "high",
"due_date": "2026-03-10",
"project_id": 456,
"board_id": 123,
"assignee_id": 101,
"created_at": "2026-03-03T10:30:00Z",
"updated_at": "2026-03-03T10:30:00Z",
"created_by_id": 99
}
Safety Checks and Confirmation Patterns
⚠️ Always Confirm Before Creating
Never let AI create tasks without explicit confirmation. Use these patterns:
- Preview First: Show what task will be created before executing
- Confirmation Token: Require "CONFIRM" before calling create_task
- Review Fields: Display all fields (title, description, due_date, project) for review
Learn more about safe write workflows →
Safe Prompt Pattern
✅ Safe Prompt Template:
"I want to create a task: [description].
Show me exactly what you'll create (title, description, project, due date)
and wait for me to type CONFIRM before creating it.
If I don't type CONFIRM, don't create anything."
Example Tool Calls
Example 1: Minimal Task (Title Only)
Tool Call (JSON):
{
"tool": "create_task",
"arguments": {
"title": "Follow up with Acme Corp"
}
}
Returns: Task created with default project, board, status="open", priority="medium"
Example 2: Complete Task
Tool Call (JSON):
{
"tool": "create_task",
"arguments": {
"title": "Implement login feature",
"description": "Add user authentication with email/password and OAuth support",
"project_id": 456,
"board_id": 789,
"due_date": "2026-03-15",
"assignee_id": 101,
"status": "open",
"priority": "high",
"tags": ["authentication", "backend"]
}
}
Returns: Fully specified task with all fields set
Example 3: Task with Due Date
Tool Call (JSON):
{
"tool": "create_task",
"arguments": {
"title": "Review API design doc",
"description": "Review and provide feedback on the new API design",
"due_date": "2026-03-05",
"priority": "high"
}
}
Returns: Task with due date and priority, other fields use defaults
Natural Language Prompt Examples
Safe Creation with Confirmation
User Prompt:
"Create a task to follow up with Acme Corp next week. Show me what you'll create before creating it."
AI Behavior:
- AI proposes task: "Title: Follow up with Acme Corp, Due: [next week], Project: [suggested]"
- AI shows preview and asks for confirmation
- User types "CONFIRM"
- AI calls
create_taskwith the proposed fields - AI confirms task was created
From Meeting Notes
User Prompt:
"I have these action items from a meeting: [list]. Create tasks for each, but show me all tasks first. Don't create until I approve."
AI Behavior:
- AI analyzes action items
- AI proposes list of tasks with details
- AI shows preview: "I'll create these 5 tasks: [list]"
- User reviews and approves
- AI calls
create_taskfor each approved task
Common Use Cases
- Meeting Notes to Tasks - Extract action items and create follow-up tasks
- Spec to Tasks - Convert feature specs into structured task trees
- Project Kickoff - Create starter tasks for new projects
- Sprint Planning - Turn sprint goals into scoped tasks
Edge Cases
Missing Required Field
Situation: title is missing or empty
Response:
{
"error": "validation_error",
"message": "Title is required",
"field": "title"
}
Handling: Always provide a title when creating tasks
Invalid Project ID
Situation: project_id doesn't exist
Response:
{
"error": "validation_error",
"message": "Project with ID 999 not found",
"field": "project_id"
}
Handling: Verify project_id exists using list_projects first
Invalid Date Format
Situation: due_date is not in ISO format (YYYY-MM-DD)
Response:
{
"error": "validation_error",
"message": "Invalid date format. Use YYYY-MM-DD",
"field": "due_date"
}
Handling: Use ISO date format: YYYY-MM-DD (e.g., "2026-03-15")
Invalid Status Value
Situation: status is not one of: open, in_progress, done, blocked
**Response:
{
"error": "validation_error",
"message": "Invalid status. Must be: open, in_progress, done, or blocked",
"field": "status"
}
Handling: Use only valid status values
Troubleshooting
Validation Errors (400)
Symptom: 400 Bad Request with validation error
Causes:
- Missing required field (title)
- Invalid field format (date, status, priority)
- Invalid ID (project_id, board_id, assignee_id doesn't exist)
Fix:
- Ensure title is provided and non-empty
- Verify all IDs exist before using them
- Use correct formats (ISO dates, valid status/priority values)
Read validation troubleshooting →
Project Not Found
Symptom: Validation error about project_id
Causes:
- Project ID doesn't exist
- Project belongs to different workspace
- Project was deleted
Fix:
- Use
list_projectsto find valid project IDs - Verify project exists in your workspace
- Omit project_id to use default project
Best Practices
Using create_task Safely
- ✅ Always preview task details before creating
- ✅ Require explicit confirmation (CONFIRM token)
- ✅ Verify project_id and board_id exist before using
- ✅ Use descriptive titles (not just "Task" or "New task")
- ✅ Include descriptions for complex tasks
- ✅ Set appropriate due dates when known
- ✅ Use tags for organization and filtering
- ✅ Add audit comments after creation when appropriate
Related Tools
Often used together with:
- list_projects - Find project IDs before creating tasks
- get_task - Verify task was created successfully
- Least-Privilege Workflows - Safe write workflow patterns
