Skip to main content
Glama
kunwarVivek

mcp-github-project-manager

enrich_issues_bulk

Enhance multiple GitHub project issues simultaneously using AI to add context, improve clarity, and streamline project management workflows.

Instructions

Bulk AI-powered issue enrichment for multiple issues at once.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectIdYes
issueIdsNo
projectContextNo
autoApplyNo

Implementation Reference

  • The primary handler function for the 'enrich_issues_bulk' tool. Fetches project items, determines issue IDs (or uses provided), calls IssueEnrichmentService.enrichIssues() for bulk enrichment using AI, and returns success with enrichment results.
    private async handleEnrichIssuesBulk(args: any): Promise<any> {
      try {
        const items = await this.service.listProjectItems({
          projectId: args.projectId,
          limit: 200
        });
    
        const issueIds = args.issueIds || items.map((item: any) => item.id);
    
        const enrichments = await this.enrichmentService.enrichIssues({
          projectId: args.projectId,
          issueIds,
          projectContext: args.projectContext
        });
    
        return {
          success: true,
          enriched: enrichments.length,
          enrichments
        };
      } catch (error) {
        this.logger.error("Failed to bulk enrich issues:", error);
        throw new McpError(
          ErrorCode.InternalError,
          `Failed to bulk enrich issues: ${error instanceof Error ? error.message : 'Unknown error'}`
        );
      }
    }
  • Zod input schema validation for the enrich_issues_bulk tool parameters: projectId (required string), issueIds (optional array of strings), projectContext (optional string), autoApply (optional boolean default false).
    // Schema for enrich_issues_bulk tool
    export const enrichIssuesBulkSchema = z.object({
      projectId: z.string().min(1, "Project ID is required"),
      issueIds: z.array(z.string()).optional(),
      projectContext: z.string().optional(),
      autoApply: z.boolean().default(false).optional()
    });
    
    export type EnrichIssuesBulkArgs = z.infer<typeof enrichIssuesBulkSchema>;
  • Registers the enrichIssuesBulkTool in the central ToolRegistry singleton during initialization of built-in AI-powered automation tools.
    this.registerTool(enrichIssuesBulkTool);
  • ToolDefinition object for 'enrich_issues_bulk' including name, description, input schema reference, and usage examples. Used by ToolRegistry for MCP tool listing.
    export const enrichIssuesBulkTool: ToolDefinition<EnrichIssuesBulkArgs> = {
      name: "enrich_issues_bulk",
      description: "Bulk AI-powered issue enrichment for multiple issues at once.",
      schema: enrichIssuesBulkSchema as unknown as ToolSchema<EnrichIssuesBulkArgs>,
      examples: [
        {
          name: "Enrich all issues",
          description: "Enrich all issues in a project",
          args: {
            projectId: "PVT_kwDOLhQ7gc4AOEbH",
            projectContext: "E-commerce platform with React frontend and Node.js backend",
            autoApply: false
          }
        }
      ]
    };
  • src/index.ts:510-511 (registration)
    Dispatch case in the main executeToolHandler switch statement that routes 'enrich_issues_bulk' calls to the specific handler method.
    case "enrich_issues_bulk":
      return await this.handleEnrichIssuesBulk(args);
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'AI-powered' which hints at automation, but doesn't explain what 'enrichment' entails (e.g., adding metadata, categorizing, prioritizing), whether it's read-only or mutative, what permissions are needed, or any rate limits. For a bulk operation with no annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that's front-loaded with key information ('Bulk AI-powered issue enrichment'). There's no wasted verbiage, though it could benefit from slightly more detail given the complexity. It's appropriately sized for a tool description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (bulk AI operation with 4 parameters), lack of annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't explain what enrichment does, what the inputs mean, what the output looks like, or any behavioral constraints. For a tool that likely performs significant processing, this leaves too much undefined.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for all 4 undocumented parameters. The description mentions 'bulk' and 'multiple issues' which loosely relates to 'issueIds', but doesn't explain 'projectId', 'projectContext', or 'autoApply' parameters. It adds minimal semantic value beyond what's implied by the tool name, failing to address the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Bulk AI-powered issue enrichment for multiple issues at once' clearly states the action (enrichment) and resource (issues), and specifies it's for multiple issues. However, it doesn't distinguish this from the sibling 'enrich_issue' tool, which appears to be a single-issue version. The purpose is clear but lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'enrich_issue' or other issue-related tools. It mentions 'bulk' and 'multiple issues at once' which implies scale, but doesn't specify thresholds, prerequisites, or when not to use it. No explicit alternatives or contextual boundaries are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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