Skip to main content
Glama
PhialsBasement

GitHub MCP Server Plus

create_issue

Create new issues in GitHub repositories to track bugs, features, or tasks. Specify owner, repo, title, and optional details like body, assignees, labels, or milestone.

Instructions

Create a new issue in a GitHub repository

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ownerYes
repoYes
titleYes
bodyNo
assigneesNo
milestoneNo
labelsNo

Implementation Reference

  • MCP tool handler for 'create_issue': parses arguments using CreateIssueSchema, extracts owner/repo/options, calls issues.createIssue, and returns JSON-formatted response.
    case "create_issue": {
      const args = issues.CreateIssueSchema.parse(request.params.arguments);
      const { owner, repo, ...options } = args;
      const issue = await issues.createIssue(owner, repo, options);
      return {
        content: [{ type: "text", text: JSON.stringify(issue, null, 2) }],
      };
    }
  • index.ts:98-102 (registration)
    Registration of the 'create_issue' tool in the ListTools response, including name, description, and input schema reference.
    {
      name: "create_issue",
      description: "Create a new issue in a GitHub repository",
      inputSchema: zodToJsonSchema(issues.CreateIssueSchema),
    },
  • Input schema for create_issue tool: combines owner, repo, and CreateIssueOptionsSchema.
    export const CreateIssueSchema = z.object({
      owner: z.string(),
      repo: z.string(),
      ...CreateIssueOptionsSchema.shape,
    });
  • Core implementation: makes POST request to GitHub Issues API with provided options.
    export async function createIssue(
      owner: string,
      repo: string,
      options: z.infer<typeof CreateIssueOptionsSchema>
    ) {
      return githubRequest(
        `https://api.github.com/repos/${owner}/${repo}/issues`,
        {
          method: "POST",
          body: options,
        }
      );
    }
  • Supporting schema for issue creation options: title, body, assignees, milestone, labels.
    export const CreateIssueOptionsSchema = z.object({
      title: z.string(),
      body: z.string().optional(),
      assignees: z.array(z.string()).optional(),
      milestone: z.number().optional(),
      labels: z.array(z.string()).optional(),
    });

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/PhialsBasement/mcp-github-server-plus'

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