Gyuniverse GitHub Projects MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITHUB_TOKEN | Yes | GitHub personal access token with access to the target Projects. | |
| MCP_OAUTH_WRITE_ENABLED | No | Enable write operations via MCP OAuth. Set to false for read-only mode. | false |
| GITHUB_PROJECTS_WRITE_ENABLED | No | Enable write operations to GitHub Projects. Set to false for read-only mode. | false |
| GITHUB_PROJECTS_ALLOWED_OWNERS | Yes | Comma-separated list of GitHub owners (users or organizations) allowed to be accessed. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_github_project_item_relationshipsA | Read native parent, sub-issue, blocks and blocked-by relationships for a GitHub Issue item in an authorized Project. Only same-Project, allowed-owner target details are returned; withheld counts and bounded coverage are explicit. Does not mutate GitHub or change get_blockers semantics. |
| add_github_project_sub_issueA | Add target as a sub-issue of source. Never replace an existing parent. Single relationship only. Both Issue items must belong to the same authorized Project. Requires an authenticated actor with project.write and item.relationship.write plus the global write gate. Re-reads both directions and persists audit, including no_change. Do not retry failures automatically. |
| remove_github_project_sub_issueA | Remove target from source's sub-issues. Does not delete either Issue. Single relationship only. Both Issue items must belong to the same authorized Project. Requires an authenticated actor with project.write and item.relationship.write plus the global write gate. Re-reads both directions and persists audit, including no_change. Do not retry failures automatically. |
| add_github_project_blocked_byA | Make source blocked by target: target blocks source. Single relationship only. Both Issue items must belong to the same authorized Project. Requires an authenticated actor with project.write and item.relationship.write plus the global write gate. Re-reads both directions and persists audit, including no_change. Do not retry failures automatically. |
| remove_github_project_blocked_byA | Remove source's blocked-by relationship to target. Single relationship only. Both Issue items must belong to the same authorized Project. Requires an authenticated actor with project.write and item.relationship.write plus the global write gate. Re-reads both directions and persists audit, including no_change. Do not retry failures automatically. |
| create_github_project_state_checkpointB | Capture the latest normalized state of an allowed GitHub Project as the baseline for later delta comparison. In M10 Production this baseline uses the configured durable governance store; local development may remain process-local. This does not write to GitHub. |
| compare_github_project_state_checkpointB | Compare the current normalized state of an allowed GitHub Project with its latest stored checkpoint without replacing that checkpoint. |
| get_identity_contextA | Return the current authenticated operator identity, role, permissions, and Project memberships without exposing access codes, bearer tokens, or secrets. |
| get_project_briefC | Return a concise evidence-backed Project operating brief with status/priority counts, in-progress work, review queue, unassigned work, and explicit blockers. |
| get_my_workB | Return work assigned to the authenticated GitHub identity. The optional login is accepted only as a compatibility assertion and cannot override authenticated identity. |
| get_backlogC | Return items whose Project Status is explicitly Backlog. |
| get_review_queueC | Return items whose Project Status is explicitly In Review. |
| get_unassigned_workB | Return non-completed Project items with no repository or Project assignee evidence. |
| get_blockersB | Return only explicitly evidenced blockers from Blocked status/fields/reasons; does not infer blockers from ordinary workflow state. |
| get_project_changesC | Compare the current Project snapshot with the latest configured checkpoint baseline and return semantic change groups without replacing that baseline. Production may use durable M10 persistence; local development may remain process-local. Can initialize a missing baseline explicitly. |
| update_work_item_statusB | Semantically update one authorized GitHub Project work item's Status by exact option name. Uses Shared Core authorization, idempotency, verification, and actor-aware audit. |
| update_work_item_priorityC | Semantically update one authorized GitHub Project work item's Priority by exact option name. Uses Shared Core authorization, idempotency, verification, and actor-aware audit. |
| start_workB | Move one authorized GitHub Project work item to the exact 'In Progress' Status using the same Shared Core write path. |
| assign_work_itemA | Assign a GitHub user to the Issue or Pull Request represented by one authorized Project item. Admin/PM only in the current policy. Resolves the login, skips an already-assigned user, verifies the assignment, and returns actor-aware audit metadata. |
| capture_backlogA | Capture an existing GitHub Issue or Pull Request URL into one authorized Project and ensure its Status is exactly 'Backlog'. If already captured in Backlog, returns no_change. Requires both item.add and item.update_status permissions before any mutation. |
| create_work_itemA | Create a new GitHub Issue under the same authorized Project owner, capture it into the Project, and verify exact Backlog Status. Admin/PM only in the current policy. Pre-authorizes create, add, and status permissions before Issue creation and reports a partial-failure error containing the created Issue URL if Project capture later fails. |
| update_github_project_item_statusB | Compatibility alias for the semantic Status write path. Safely sets one item's exact Status option by name with authorization, idempotency, verification, and actor-aware audit. |
| update_github_project_item_priorityB | Compatibility alias for the semantic Priority write path. Safely sets one item's exact Priority option by name with authorization, idempotency, verification, and actor-aware audit. |
| list_github_project_write_audit_logA | List recent bounded GitHub Project write audit records. Production uses the configured durable M10 governance store; local development may remain process-local. Records contain metadata, actor identity, and verification results, not tokens or raw mutation payloads. |
| preview_github_project_bulk_updatesA | Create an immutable, expiring M10-5 preview for 1-20 Status/Priority updates in one authorized Project. This performs reads and stores a plan but never mutates GitHub. |
| approve_github_project_bulk_planA | Explicitly approve the exact immutable bulk preview identified by plan ID and digest. The current maker-checker policy and bulk.approve capability are enforced; this does not mutate GitHub. |
| apply_github_project_bulk_planA | Apply one approved M10-5 bulk plan once. All operations are reauthorized and re-read before the first GitHub mutation; stale/preflight failures perform zero writes. Runtime failures stop remaining operations and are never auto-retried or rolled back. |
| get_github_project_bulk_planC | Read the durable state, immutable artifact, plan-level actor events and per-item results of an authorized M10 bulk plan. Project access and a bulk workflow capability are required. |
| list_github_projectsB | List GitHub Projects v2 visible to the authenticated principal within the server owner/Project allowlists. |
| get_github_projectB | Get metadata for one GitHub Project v2 after server allowlist and authenticated Project membership checks. |
| list_github_project_fieldsB | List fields, single-select options, multi-select options, and iterations configured on an authorized GitHub Project v2. |
| list_github_project_itemsB | List issues, pull requests, draft issues, assignees, and field values in an authorized GitHub Project v2. |
| resolve_github_issue_or_pr_urlB | Resolve an allowed github.com Issue or Pull Request URL to its GraphQL content node ID and canonical metadata. |
| resolve_github_project_itemA | Resolve an allowed GitHub Issue or Pull Request URL to the matching item in an authorized GitHub Project, following Project item pagination when needed. |
| get_github_project_snapshotC | Return a normalized snapshot of an authorized Project for AI team-state analysis. |
| analyze_github_project_state_gapsC | Analyze an authorized GitHub Project snapshot for missing Status and missing assignee gaps while preserving item evidence. |
| analyze_github_project_reconciliationC | Compare Pull Request merge state with Project Status and surface evidence-backed workflow mismatches for an authorized Project. |
| get_github_project_brief_contextC | Return normalized authorized Project state plus a contract for producing a team brief without treating planned work as completed work. |
| add_github_project_itemA | Add an existing GitHub Issue or Pull Request node to an authorized Project v2. Disabled by default and requires an explicit Project allowlist. |
| update_github_project_item_fieldA | Update one text, number, date, single-select, multi-select, or iteration field on an authorized Project v2 item. Disabled by default and requires an explicit Project allowlist. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 40 tools
Several tools overlap heavily, especially compatibility aliases (update_github_project_item_status vs update_work_item_status, and similarly for priority) and multiple project-state readers (get_github_project_snapshot, get_github_project_brief_context, get_project_brief, get_project_changes). An agent could easily misselect among resolution, snapshot, and brief tools.
All names use snake_case, but the surface mixes prefixed (github_project) and unprefixed (work_item, project_brief) conventions, and includes explicit alias pairs. This remains readable but not fully predictable.
40 tools is heavy for a GitHub Projects MCP, with bulk operations, audit logging, and multiple analysis layers. Each earns some place, but the count is well above a well-scoped 10–15 tool surface.
Core read, write, relationship, bulk, and analysis coverage is strong, but notable lifecycle gaps remain: no remove/delete Project item, no Project or field creation/mutation beyond item fields, and no draft issue creation. Agents can cover many workflows but will hit dead ends for cleanup and schema changes.