get_projects_by_realm
Filter projects in addTaskManager by realm (Assess, Decide, Do) to view tasks based on their current workflow stage.
Instructions
Filter projects by realm.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| realm | Yes | Realm to query (maps to realmId 1, 2, or 3) |
Implementation Reference
- src/index.ts:559-568 (registration)Registration of the 'get_projects_by_realm' tool in the MCP server's listTools handler. Defines the tool name, description, and input schema requiring a 'realm' parameter (assess/decide/do).name: 'get_projects_by_realm', description: 'Filter projects by realm.', inputSchema: { type: 'object', properties: { realm: { type: 'string', enum: ['assess', 'decide', 'do'], description: 'Realm to query (maps to realmId 1, 2, or 3)' } }, required: ['realm'] } },
- src/index.ts:1452-1456 (handler)Primary handler function that executes the tool logic. Maps realm string to numeric ID and returns a formatted text response with mock project data for the specified realm.private async getProjectsByRealm(realm: RealmString) { const realmId = realmStringToId(realm); const mockProjects = [{ recordName: 'project_456', projectName: 'Sample Project X', realmId }]; return { content: [{ type: 'text', text: `Projects in ${realm} realm (ID: ${realmId}):\n${mockProjects.map(p => `- ${p.projectName} (${p.recordName})`).join('\n')}` }] }; }
- src/index.ts:744-745 (handler)Dispatch handler in CallToolRequestSchema that validates input arguments and invokes the getProjectsByRealm method.this.validateArgs(args, ['realm']); return await this.getProjectsByRealm(args.realm as RealmString);
- Supporting helper method in CloudKitService that performs the actual CloudKit database query to retrieve projects filtered by realmId. Used by other tools like get_stalled_items_in_decide.async getProjectsByRealm(realmId: number): Promise<ZenTaskticProject[]> { return this.queryRecords<ZenTaskticProject>('Projects', { filterBy: [{ fieldName: 'realmId', fieldValue: realmId, comparator: 'EQUALS' }], sortBy: [{ fieldName: 'lastModified', ascending: false }] }); }
- src/index.ts:110-131 (schema)Type definition for ZenTaskticProject, defining the structure of project records from CloudKit/Core Data, used in query responses.export interface ZenTaskticProject { recordName?: string; recordType: 'Projects'; // Note: entity name is 'Projects' in Core Data fields: { projectName: { value: string }; // Max 1500 chars realmId: { value: number }; // Integer 16, default 0 uniqueId: { value: string }; // UUID // References (relationships in Core Data) context?: { value: CKReference }; // Reference to Contexts record collection?: { value: CKReference }; // Reference to Collections record realm?: { value: CKReference }; // Reference to Realms record tasks?: { value: CKReference[] }; // List of references to Task records // Dates startDate?: { value: number }; // Timestamp endDate?: { value: number }; // Timestamp lastModified: { value: number }; // Timestamp // removed description (use projectName), removed isCompleted }; }