Skip to main content
Glama
kunwarVivek

mcp-github-project-manager

assign_items_to_iteration

Assign multiple project items to a specific iteration for organized sprint planning and milestone tracking in GitHub Projects.

Instructions

Bulk assign multiple items to a specific iteration

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectIdYes
itemIdsYes
iterationIdYes
fieldNameNo

Implementation Reference

  • Main handler function that implements the assign_items_to_iteration tool. Finds the iteration field in the project, then bulk assigns the specified item IDs to the given iteration ID by calling setFieldValue for each item.
    async assignItemsToIteration(data: {
      projectId: string;
      itemIds: string[];
      iterationId: string;
      fieldName?: string;
    }): Promise<{ success: boolean; assignedCount: number }> {
      try {
        // Get iteration field
        const fields = await this.listProjectFields({ projectId: data.projectId });
        const iterationField = fields.find((f: CustomField) =>
          f.type === 'iteration' && (!data.fieldName || f.name === data.fieldName)
        );
    
        if (!iterationField) {
          throw new ResourceNotFoundError(
            ResourceType.FIELD,
            data.fieldName || 'iteration field'
          );
        }
    
        let assignedCount = 0;
    
        // Assign each item to the iteration
        for (const itemId of data.itemIds) {
          try {
            await this.setFieldValue({
              projectId: data.projectId,
              itemId: itemId,
              fieldId: iterationField.id,
              value: { iterationId: data.iterationId }
            });
            assignedCount++;
          } catch (error) {
            // Log error but continue with other items
            console.error(`Failed to assign item ${itemId}:`, error);
          }
        }
    
        return {
          success: assignedCount > 0,
          assignedCount
        };
      } catch (error) {
        throw this.mapErrorToMCPError(error);
      }
    }
  • Tool definition including name, description, input schema (assignItemsToIterationSchema), and usage examples.
    export const assignItemsToIterationTool: ToolDefinition<AssignItemsToIterationArgs> = {
      name: "assign_items_to_iteration",
      description: "Bulk assign multiple items to a specific iteration",
      schema: assignItemsToIterationSchema as unknown as ToolSchema<AssignItemsToIterationArgs>,
      examples: [
        {
          name: "Assign to sprint",
          description: "Add multiple issues to the current sprint",
          args: {
            projectId: "PVT_kwDOLhQ7gc4AOEbH",
            itemIds: ["PVTI_lADOLhQ7gc4AOEbHzM4AOAJ7", "PVTI_lADOLhQ7gc4AOEbHzM4AOAJ8"],
            iterationId: "PVTIF_lADOLhQ7gc4AOEbH"
          }
        }
      ]
    };
  • Zod input validation schema defining parameters: projectId, itemIds (array), iterationId, optional fieldName.
    // Schema for assign_items_to_iteration tool
    export const assignItemsToIterationSchema = z.object({
      projectId: z.string().min(1, "Project ID is required"),
      itemIds: z.array(z.string()).min(1, "At least one item ID is required"),
      iterationId: z.string().min(1, "Iteration ID is required"),
      fieldName: z.string().optional()
    });
    
    export type AssignItemsToIterationArgs = z.infer<typeof assignItemsToIterationSchema>;
  • Registers the assignItemsToIterationTool in the central ToolRegistry singleton.
    this.registerTool(assignItemsToIterationTool);
  • Imports assignItemsToIterationTool from ToolSchemas.ts for registration.
    assignItemsToIterationTool,
  • MCP server dispatch: routes tool calls to ProjectManagementService.assignItemsToIteration.
    case "assign_items_to_iteration":
      return await this.service.assignItemsToIteration(args);
Install Server

Other Tools

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/kunwarVivek/mcp-github-project-manager'

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