Skip to main content
Glama
preethi6379

GitHub Issue Manager

by preethi6379

GitHub Issue Manager - Custom MCP Server

A custom Model Context Protocol (MCP) server written in Node.js and TypeScript that integrates with the GitHub REST API to allow LLM agents (such as Cursor, Claude Desktop, and other MCP clients) to manage repository issues directly.


πŸ› οΈ Expose Tools & Features

This MCP server exposes the following tools to the AI assistant:

  1. list_issues: Retrieves a clean, formatted list of open, closed, or all issues in any specific GitHub repository. It handles parsing and filters out unnecessary noise to optimize the AI's token usage.

  2. create_issue: Opens a new issue in a repository with custom titles, descriptions, and labels.


Related MCP server: GitHub MCP Server

βš™οΈ How it Works under the Hood

[ User Prompt ]
      β”‚
      β–Ό (Stdin/Stdout streams)
[ MCP Client (e.g. Cursor / Claude) ]
      β”‚
      β–Ό (Stdio Transport)
[ index.js (This Server) ] ──► Routes requests to handlers.ts
      β”‚
      β–Ό (GitHub API Client / Octokit)
[ GitHub Platform ] ──► Performs operations using Personal Access Token
  • Communication transport: Uses standard input/output streams (stdio) to send and receive JSON-RPC messages between the AI client and this server.

  • Authentication: Authenticates securely using a Personal Access Token (PAT) configured via environment variables.


πŸš€ Setup & Installation

1. Prerequisites

Make sure you have Node.js (v18+) and npm installed.

2. Install Dependencies

Navigate to the project directory and install the packages:

npm install

3. Configure Credentials

Create a .env file in the root folder of the project:

GITHUB_PERSONAL_ACCESS_TOKEN=your_github_personal_access_token_here

4. Build the Server

Compile the TypeScript code to runnable JavaScript:

npm run build

πŸ”Œ Connecting to AI Clients

Claude Desktop

Add the following block to your %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "github-issue-manager": {
      "command": "node",
      "args": [
        "C:/Users/HP/Desktop/mcp-server/dist/index.js"
      ]
    }
  }
}

Cursor

Go to Settings -> Features -> MCP -> Add New MCP Server:

  • Name: github-issue-manager

  • Type: stdio

  • Command: node C:/Users/HP/Desktop/mcp-server/dist/index.js

Available Tools

2 tools
create_issueB

Create a new issue in a GitHub repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoThe description of the issue.
repoYesThe name of the repository.
ownerYesThe owner of the repository.
titleYesThe title of the issue.
labelsNoTags/labels to assign to the issue.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states 'create a new issue' with no disclosure of side effects, return behavior, or error handling. For a mutation tool, more detail is expected.

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

Conciseness5/5

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

The description is a single, clear sentence with no unnecessary words. It is front-loaded and efficiently conveys the core purpose.

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 no output schema, the description should have at least hinted at the return value (e.g., the created issue object) or any other behavioral details. The current description is too minimal for a tool with 5 parameters and no output schema.

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

Parameters3/5

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

The input schema has 100% description coverage for all 5 parameters, so the schema already documents each parameter's meaning. The description adds no additional context beyond what the schema provides, meeting baseline expectations.

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

Purpose5/5

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

The description clearly states the verb 'create' and the resource 'a new issue in a GitHub repository', making the purpose unambiguous. It distinguishes clearly from the sibling tool 'list_issues' which is for listing.

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

Usage Guidelines3/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 vs alternatives or any prerequisites. While the sibling 'list_issues' is different enough not to cause confusion, there is no explicit usage context.

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

list_issuesC

List open or closed issues in a GitHub repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYesThe name of the repository.
ownerYesThe owner of the repository (username or org).
stateNoThe state of the issues (default: open).

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It only says 'list' implying read-only, but lacks details on pagination, authentication requirements, or whether results are limited to a default state (open vs all).

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 concise sentence that is front-loaded and efficient. It could include more useful details without becoming overly verbose.

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?

No output schema exists, so the description should explain return values or pagination. It does not. The tool is simple but missing common context like default state behavior and result format.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameter information is already complete in the schema. The description adds minimal value beyond rephrasing 'open or closed', which matches the state enum.

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

Purpose4/5

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

The description clearly states the tool lists issues in a GitHub repository with filtering by open or closed state. It distinguishes from sibling create_issue. However, it does not mention the 'all' option for state, slightly limiting precision.

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?

No guidance is provided on when to use this tool vs alternatives. While sibling create_issue is different, there is no context about pagination, rate limits, or appropriate use cases.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv1.0.0
    • First observedcreate_issue
    • First observedlist_issues

TDQS

B3.2/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: one creates issues, the other lists them. No overlap or ambiguity.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern (create_issue, list_issues) with proper snake_case naming.

Tool Count2/5

Only 2 tools for an issue manager is too few to be useful. A typical issue server would need at least 5-10 tools for basic operations.

Completeness1/5

Severely incomplete: missing update, delete, get single issue, comment, label, and search operations. The surface cannot handle basic issue lifecycle workflows.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    Not graded
    maintenance
    Enables AI agents to interact with GitHub repositories through the GitHub REST API for managing files, issues, and repository metadata. It supports both read operations like searching code and write operations such as creating repositories and updating issue comments.
    9
    -

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/preethi6379/mcp-server'

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