GitHub Issue Manager
by preethi6379
README.md
# 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.
---
## ⚙️ 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:
```bash
npm install
```
### 3. Configure Credentials
Create a `.env` file in the root folder of the project:
```env
GITHUB_PERSONAL_ACCESS_TOKEN=your_github_personal_access_token_here
```
### 4. Build the Server
Compile the TypeScript code to runnable JavaScript:
```bash
npm run build
```
---
## 🔌 Connecting to AI Clients
### Claude Desktop
Add the following block to your `%APPDATA%\Claude\claude_desktop_config.json`:
```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`
TDQS
B3.2/5.0
Scored across 2 tools
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
ResponsivenessNo issues