get_project_fields returns the SingleSelect options, and those are the exact values update_project_item_field will take — so the order is discover, then set, and skipping the first step is how a status update quietly does nothing. The filtering is deliberately narrow: a state, or one custom field and value, rather than an arbitrary query, which is worth knowing before you plan a workflow around it. create_draft_issue is the one people forget exists — an item on the board with no repository behind it, which is how most planning items actually start life.
A GitHub Projects V2 server covering project and field discovery, filtered item reads, issue creation, and field updates.
- list_projects for an organisation or a user
- get_project_fields, returning the board's fields including the options on SingleSelect fields — the exact values an update will accept
- get_project_items with cursor paging, filtered by state or by a single custom field and value
- create_issue in a repository, and add_issue_to_project to place an existing issue on the board
- create_draft_issue, creating an item directly on the board with no repository behind it
- update_project_item_field, setting one field's value on one item
- delete_project_item, removing an item from the board
A GitHub token in GITHUB_TOKEN with access to the projects and repositories you name.
One command plus a key — uvx mcp-github-projects, then supply credentials
