github / github/github-mcp-server

Feature Request: High-level helper tools for GitHub Projects V2 (e.g. move_issue_to_column)

Open
#2,603 1 comment 0 reactions 0 assignees View on GitHub
request ai review
Dominant language
Go
Stars
33k
Forks
5k
Avg merge
2d 1h
Merged PRs (30d)
52

Description

Currently, the `github-mcp-server` provides lower-level Projects V2 tools such as `add_project_item` and `update_project_item_field`.

However, these tools are highly dependent on raw GraphQL Global Node IDs (such as `item_id`, `field_id`, `option_id`, etc.) which are difficult for AI agents to retrieve, resolve, and manage dynamically.

For example, to move an issue (e.g. `#42` in repository `owner/repo`) to a project board (e.g. Project Number `1` / Title `"Development"`) in the `"In Progress"` status column, an AI agent currently has to perform multiple manual lookups:
1. Fetch the project list or ID.
2. Fetch the project items to locate the global node ID of the issue item.
3. Query the project fields to locate the Status field ID and the specific option ID matching `"In Progress"`.
4. Call `update_project_item_field` with these raw GraphQL node IDs.

This is highly error-prone, requires multiple API round-trips, and makes Projects integration fragile for AI agents.

### Proposed Feature:
We would love to see high-level wrapper tools that automate these lookups. For example:

1. **`add_issue_to_project`**:
- **Parameters**:
- `project_number` (int) or `project_id` (string)
- `repository_owner` (string)
- `repository_name` (string)
- `issue_number` (int)
- **Behavior**: Automatically resolves the issue's global node ID and adds it to the specified project.

2. **`move_project_item`** (or `update_project_item_status`):
- **Parameters**:
- `project_number` (int) or `project_id` (string)
- `repository_owner` (string)
- `repository_name` (string)
- `issue_number` (int) (or `pull_request_number` / `item_id`)
- `status_name` (string, e.g. `"In Progress"`, `"Done"`)
- **Behavior**: Under the hood, resolves the item ID, finds the Project's "Status" field ID, finds the option ID matching the string `status_name`, and performs the update.

These higher-level helper tools would make Projects V2 management significantly easier and more robust for AI agents using the Model Context Protocol.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.