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:
- Fetch the project list or ID.
- Fetch the project items to locate the global node ID of the issue item.
- Query the project fields to locate the Status field ID and the specific option ID matching
"In Progress".
- 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:
-
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.
-
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.
Currently, the
github-mcp-serverprovides lower-level Projects V2 tools such asadd_project_itemandupdate_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.
#42in repositoryowner/repo) to a project board (e.g. Project Number1/ Title"Development") in the"In Progress"status column, an AI agent currently has to perform multiple manual lookups:"In Progress".update_project_item_fieldwith 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:
add_issue_to_project:project_number(int) orproject_id(string)repository_owner(string)repository_name(string)issue_number(int)move_project_item(orupdate_project_item_status):project_number(int) orproject_id(string)repository_owner(string)repository_name(string)issue_number(int) (orpull_request_number/item_id)status_name(string, e.g."In Progress","Done")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.