create_task
Create new tasks in Simplicate by specifying title, project, assignee, and due date to organize work and track progress.
Instructions
Create a new task
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| assignee_id | No | ||
| due_date | No | ||
| project_id | No | ||
| title | Yes |
Input Schema (JSON Schema)
{
"properties": {
"assignee_id": {
"type": "string"
},
"due_date": {
"type": "string"
},
"project_id": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title"
],
"type": "object"
}
Implementation Reference
- src/mcp/server-full.ts:272-282 (schema)Tool schema definition for 'create_task' including name, description, and inputSchema used in MCP listTools responsedescription: 'Create a new task', inputSchema: { type: 'object', properties: { title: { type: 'string' }, project_id: { type: 'string' }, assignee_id: { type: 'string' }, due_date: { type: 'string' }, }, required: ['title'], },
- src/mcp/server-full.ts:505-507 (handler)MCP CallToolRequest handler case for 'create_task' that delegates to SimplicateServiceExtended.createTask and formats responsecase 'create_task': { const data = await this.simplicateService.createTask(toolArgs); return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
- Core implementation of createTask method in SimplicateServiceExtended that performs POST to Simplicate API /projects/task endpointasync createTask(data: Partial<SimplicateTask>): Promise<SimplicateTask> { const response = await this.client.post('/projects/task', data); return response.data;
- TypeScript interface SimplicateTask defining the structure for task data used by createTask and related methodsexport interface SimplicateTask { id: string; title: string; description?: string; project?: { id: string; name: string }; assignee?: { id: string; name: string }; status: string; due_date?: string; }
- src/mcp/server-full.ts:39-384 (registration)Registration of listTools handler that includes the 'create_task' tool in the returned tools listthis.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [ // ============================================= // PROJECTS TOOLS (7 tools) // ============================================= { name: 'get_projects', description: 'Retrieve a list of all projects', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Maximum number to return (default: 10)' }, offset: { type: 'number', description: 'Number to skip for pagination' }, }, }, }, { name: 'get_project', description: 'Get details of a specific project by ID', inputSchema: { type: 'object', properties: { project_id: { type: 'string', description: 'Project ID' } }, required: ['project_id'], }, }, { name: 'create_project', description: 'Create a new project', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Project name' }, organization_id: { type: 'string', description: 'Organization ID' }, project_manager_id: { type: 'string', description: 'Project manager employee ID' }, start_date: { type: 'string', description: 'Start date (YYYY-MM-DD)' }, budget: { type: 'number', description: 'Project budget' }, }, required: ['name'], }, }, { name: 'update_project', description: 'Update an existing project', inputSchema: { type: 'object', properties: { project_id: { type: 'string', description: 'Project ID' }, data: { type: 'object', description: 'Fields to update' }, }, required: ['project_id', 'data'], }, }, { name: 'delete_project', description: 'Delete a project', inputSchema: { type: 'object', properties: { project_id: { type: 'string', description: 'Project ID' } }, required: ['project_id'], }, }, { name: 'get_project_services', description: 'Get services/items for a specific project', inputSchema: { type: 'object', properties: { project_id: { type: 'string', description: 'Project ID' } }, required: ['project_id'], }, }, { name: 'get_tasks', description: 'Retrieve project tasks', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Maximum number to return' }, offset: { type: 'number', description: 'Number to skip' }, }, }, }, // ============================================= // CRM TOOLS (8 tools) // ============================================= { name: 'get_organizations', description: 'Retrieve CRM organizations', inputSchema: { type: 'object', properties: { limit: { type: 'number' }, offset: { type: 'number' }, }, }, }, { name: 'get_organization', description: 'Get specific organization by ID', inputSchema: { type: 'object', properties: { organization_id: { type: 'string' } }, required: ['organization_id'], }, }, { name: 'create_organization', description: 'Create a new organization', inputSchema: { type: 'object', properties: { name: { type: 'string', description: 'Organization name' }, email: { type: 'string' }, phone: { type: 'string' }, website: { type: 'string' }, }, required: ['name'], }, }, { name: 'update_organization', description: 'Update an organization', inputSchema: { type: 'object', properties: { organization_id: { type: 'string' }, data: { type: 'object' }, }, required: ['organization_id', 'data'], }, }, { name: 'get_persons', description: 'Retrieve contact persons', inputSchema: { type: 'object', properties: { limit: { type: 'number' }, offset: { type: 'number' }, }, }, }, { name: 'get_person', description: 'Get specific person by ID', inputSchema: { type: 'object', properties: { person_id: { type: 'string' } }, required: ['person_id'], }, }, { name: 'create_person', description: 'Create a new contact person', inputSchema: { type: 'object', properties: { first_name: { type: 'string' }, family_name: { type: 'string' }, email: { type: 'string' }, organization_id: { type: 'string' }, }, required: ['first_name', 'family_name'], }, }, { name: 'update_person', description: 'Update a person', inputSchema: { type: 'object', properties: { person_id: { type: 'string' }, data: { type: 'object' }, }, required: ['person_id', 'data'], }, }, // ============================================= // SERVICES TOOLS (4 tools) // ============================================= { name: 'get_services', description: 'Retrieve services catalog', inputSchema: { type: 'object', properties: { limit: { type: 'number' }, offset: { type: 'number' }, }, }, }, { name: 'get_service', description: 'Get specific service by ID', inputSchema: { type: 'object', properties: { service_id: { type: 'string' } }, required: ['service_id'], }, }, { name: 'create_service', description: 'Create a new service', inputSchema: { type: 'object', properties: { name: { type: 'string' }, price: { type: 'number' }, }, required: ['name', 'price'], }, }, { name: 'get_default_services', description: 'Get default services configuration', inputSchema: { type: 'object', properties: {} }, }, // ============================================= // TASKS TOOLS (3 tools) // ============================================= { name: 'get_task', description: 'Get specific task by ID', inputSchema: { type: 'object', properties: { task_id: { type: 'string' } }, required: ['task_id'], }, }, { name: 'create_task', description: 'Create a new task', inputSchema: { type: 'object', properties: { title: { type: 'string' }, project_id: { type: 'string' }, assignee_id: { type: 'string' }, due_date: { type: 'string' }, }, required: ['title'], }, }, { name: 'update_task', description: 'Update a task', inputSchema: { type: 'object', properties: { task_id: { type: 'string' }, data: { type: 'object' }, }, required: ['task_id', 'data'], }, }, // ============================================= // DOCUMENTS TOOLS (2 tools) // ============================================= { name: 'get_documents', description: 'Retrieve documents', inputSchema: { type: 'object', properties: { limit: { type: 'number' }, offset: { type: 'number' }, }, }, }, { name: 'get_document', description: 'Get specific document by ID', inputSchema: { type: 'object', properties: { document_id: { type: 'string' } }, required: ['document_id'], }, }, // ============================================= // CONTRACTS TOOLS (3 tools) // ============================================= { name: 'get_contracts', description: 'Retrieve contracts', inputSchema: { type: 'object', properties: { limit: { type: 'number' }, offset: { type: 'number' }, }, }, }, { name: 'get_contract', description: 'Get specific contract by ID', inputSchema: { type: 'object', properties: { contract_id: { type: 'string' } }, required: ['contract_id'], }, }, { name: 'create_contract', description: 'Create a new contract', inputSchema: { type: 'object', properties: { organization_id: { type: 'string' }, start_date: { type: 'string' }, end_date: { type: 'string' }, }, required: ['organization_id', 'start_date'], }, }, // ============================================= // CUSTOM FIELDS & SEARCH (2 tools) // ============================================= { name: 'get_custom_fields', description: 'Retrieve custom field definitions', inputSchema: { type: 'object', properties: { model: { type: 'string', description: 'Model type (organization, person, project, etc.)' }, }, }, }, { name: 'search', description: 'Search across Simplicate resources', inputSchema: { type: 'object', properties: { query: { type: 'string' }, type: { type: 'string', enum: ['project', 'organization', 'person'] }, }, required: ['query'], }, }, ], }));