Skip to main content
Glama

decide_move_project_to_do

Move a project from the Decide realm to the Do realm using the ADD framework, enabling task completion management within the addTaskManager MCP Server.

Instructions

Move project to Do realm from Decide realm.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectRecordNameYesProject record name

Implementation Reference

  • src/index.ts:500-508 (registration)
    Registration of the 'decide_move_project_to_do' tool including its name, description, and input schema in the ListToolsRequestSchema handler.
    name: 'decide_move_project_to_do', description: 'Move project to Do realm from Decide realm.', inputSchema: { type: 'object', properties: { projectRecordName: { type: 'string', description: 'Project record name' } }, required: ['projectRecordName'] }
  • Handler dispatch in the CallToolRequestSchema switch statement that validates arguments and invokes the moveProjectToRealm method with target 'do'.
    case 'decide_move_project_to_do': this.validateArgs(args, ['projectRecordName']); return await this.moveProjectToRealm(args.projectRecordName, 'do');
  • Core handler function that performs realm validation before delegating to moveItemToRealm for the actual project move to Do realm.
    private async moveProjectToRealm(projectRecordName: string, targetRealm: string) { // Add validation before moving const validationResult = await this.validateRealmTransition(projectRecordName, 'Project', targetRealm as RealmString); if (!validationResult.valid) { throw new McpError(ErrorCode.InvalidParams, validationResult.reason); } return this.moveItemToRealm(projectRecordName, 'Project', targetRealm as RealmString); }
  • Helper function to validate realm transitions according to ADD framework rules before allowing the move.
    private async validateRealmTransition(itemRecordName: string, itemType: 'Task' | 'Project', targetRealm: RealmString): Promise<{valid: boolean, reason: string}> { // Mock fetch current item data const currentItem = await this.mockFetchItem(itemRecordName, itemType); if (!currentItem) { return { valid: false, reason: `${itemType} ${itemRecordName} not found` }; } const currentRealmId = currentItem.realmId; const targetRealmId = realmStringToId(targetRealm); // Validate transition rules based on ADD framework switch (currentRealmId) { case REALM_ASSESS_ID: // From Assess (1) return this.validateFromAssess(currentItem, targetRealmId, itemType); case REALM_DECIDE_ID: // From Decide (2) return this.validateFromDecide(currentItem, targetRealmId, itemType); case REALM_DO_ID: // From Do (3) return this.validateFromDo(currentItem, targetRealmId, itemType); default: return { valid: false, reason: `Invalid current realm ID: ${currentRealmId}` }; } }
  • Helper function that executes the realm change, updates realmId, and applies realm-specific field modifications.
    private async moveItemToRealm(itemRecordName: string, itemType: 'Task' | 'Project', targetRealmStr: RealmString) { const targetRealmId = realmStringToId(targetRealmStr); // Mock update realmId and clean up fields based on realm rules let updateMessage = `${itemType} ${itemRecordName} moved to ${targetRealmStr} realm (ID: ${targetRealmId})`; // Apply realm-specific cleanup rules if (targetRealmId === REALM_ASSESS_ID) { updateMessage += '. Context and due date cleared for fresh evaluation'; } else if (targetRealmId === REALM_DECIDE_ID && targetRealmStr !== 'decide') { updateMessage += '. Ready for context assignment and due date setting'; } return { content: [{ type: 'text', text: updateMessage }] }; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dragosroua/addtaskmanager-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server