Add list_issue_fields tool - #2445
Merged
SamMorrowDrums merged 13 commits intoMay 21, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new read-only MCP tool to list organization-level issue field definitions (including single-select options) so agents can discover valid custom fields before creating/updating issues.
Changes:
- Implemented
list_org_issue_fieldstool callingGET /orgs/{org}/issue-fields, with 404 returning an empty list. - Added unit tests covering success and common error scenarios.
- Registered the tool, added a toolsnap, and updated README tool docs.
Show a summary per file
| File | Description |
|---|---|
| README.md | Documents the new list_org_issue_fields tool and required scopes. |
| pkg/github/tools.go | Registers the new tool in the issues toolset. |
| pkg/github/issue_fields.go | Implements the tool and response types for org issue fields/options. |
| pkg/github/issue_fields_test.go | Adds unit tests for the new tool behavior. |
| pkg/github/toolsnaps/list_org_issue_fields.snap | Captures the tool schema snapshot for regression checking. |
Copilot's findings
- Files reviewed: 5/5 changed files
- Comments generated: 2
15 tasks
Contributor
Author
|
Returns: |
kerobbi
previously approved these changes
May 13, 2026
kelsey-myers
marked this pull request as draft
May 14, 2026 08:39
Contributor
Author
kelsey-myers
marked this pull request as ready for review
May 21, 2026 09:33
SamMorrowDrums
approved these changes
May 21, 2026
SamMorrowDrums
added a commit
that referenced
this pull request
May 21, 2026
Resolve conflict in pkg/github/issue_fields.go between the squash-merged list_issue_fields tool (#2445) on main and this branch's earlier copy: - Keep main's first: 100 limit and the issue_fields + repo_issue_fields GraphQL feature flags. - Retain this branch's fetchIssueFields / issueFieldsFromNodes helpers, which are used by list_issues for custom field filtering, and rewire ListIssueFields through them to avoid duplication.
social4hyq
pushed a commit
to social4hyq/homebrew-core
that referenced
this pull request
Sep 20, 2026
github-mcp-server 1.1.0 Created-by: HarmonybrewBot Commit-by: HarmonybrewBot Merged-by: HarmonybrewBot Description: Created by `brew bump` --- Created with `brew bump-formula-pr`.<details> <summary>release notes</summary> <pre>## Highlights ✨ ### Insiders Mode: Issue Fields Support Issue field support is now available behind the `remote_mcp_issue_fields` feature flag, and is enabled automatically in Insiders Mode. This includes listing issue fields, filtering issues by custom field values, and reading or writing issue field values. ### Insiders Mode: CSV Output CSV output for default `list_*` tools is now available behind the `csv_output` feature flag, and is enabled automatically in Insiders Mode. CSV provides a flatter, more compact representation for list-style responses, helping to reduce token usage for large result sets. ### Context Reduction for GitHub Projects Project item responses have been significantly reduced in size. `list_project_items`, `get_project_item`, and `update_project_item` now return compact project item, content, and field-value shapes instead of full GitHub issue and pull request payloads, cutting unnecessary context while preserving the information agents need. ### Commit Search A new `search_commits` tool has been added, allowing agents to search commits directly using GitHub search syntax. This fills a gap between listing repository commits and finding specific commits across debugging, auditing, and release investigation workflows. ### GHAS Alert Pagination The GHAS alert listing tools now support pagination. `list_code_scanning_alerts`, `list_dependabot_alerts`, and `list_secret_scanning_alerts` can now retrieve beyond the first page of results, avoiding incomplete alert summaries for repositories with larger security backlogs. ### Reliability and Hardening This release includes several tool reliability improvements, including returning `isError` for argument validation failures so agents can self-correct, guarding completions requests against malformed params, and ignoring proxy forwarding headers by default when building OAuth resource metadata. ## What's Changed * build(deps): bump github.com/google/jsonschema-go from 0.4.2 to 0.4.3 by @dependabot[bot] in github/github-mcp-server#2393 * build(deps): bump actions/attest-build-provenance from 3 to 4 by @dependabot[bot] in github/github-mcp-server#2123 * build(deps): bump actions/setup-node from 4 to 6 by @dependabot[bot] in github/github-mcp-server#2015 * build(deps): bump node from 20-alpine to 26-alpine by @dependabot[bot] in github/github-mcp-server#2013 * build(deps): bump hono from 4.12.0 to 4.12.19 in /ui in the npm_and_yarn group across 1 directory by @dependabot[bot] in github/github-mcp-server#2097 * build(deps): bump ui dependencies to clear security advisories by @SamMorrowDrums in github/github-mcp-server#2493 * build(deps): bump distroless/base-debian12 from `9dce90e` to `58695f4` by @dependabot[bot] in github/github-mcp-server#2497 * build(deps): bump reproducible-containers/buildkit-cache-dance from 3.3.2 to 3.4.0 by @dependabot[bot] in github/github-mcp-server#2500 * build(deps): bump goreleaser/goreleaser-action from 7.2.1 to 7.2.2 by @dependabot[bot] in github/github-mcp-server#2499 * build(deps): bump github.com/modelcontextprotocol/go-sdk from 1.5.1-0.20260403154220-27f29c1cef3b to 1.6.0 by @dependabot[bot] in github/github-mcp-server#2498 * chore(ui): migrate vite 6 → 8, plugin-react 4 → 6; cache UI build in CI by @SamMorrowDrums in github/github-mcp-server#2501 * fix: guard CompletionsHandler against nil params/ref by @SamMorrowDrums in github/github-mcp-server#2502 * fix(ui): advertise get_me as an app via _meta.ui.visibility by @SamMorrowDrums in github/github-mcp-server#2503 * fix(pull_request_read): expose 'after' cursor parameter in input schema by @jluocsa in github/github-mcp-server#2489 * refactor: simplify NewServerTool naming by @SamMorrowDrums in github/github-mcp-server#2510 * fix: return isError for argument validation failures by @SamMorrowDrums in github/github-mcp-server#2511 * refactor: remove dynamic toolsets and deprecated closure constructor by @SamMorrowDrums in github/github-mcp-server#2512 * Adding rationale for fields and labels in issues_granular by @boazreicher in github/github-mcp-server#2505 * Include custom issue field values in list_issues response by @kelsey-myers in github/github-mcp-server#2466 * fix(search_code): tighten query description for accurate model guidance by @SamMorrowDrums in github/github-mcp-server#2513 * Add field_values to search_issues results by @kelsey-myers in github/github-mcp-server#2474 * feat: add pagination to list GHAS alerts tools by @dvirarad in github/github-mcp-server#2451 * feat: Add search commit tool by @Not-Dhananjay-Mishra in github/github-mcp-server#2284 * Fix return Thread node ID in get_review_comments response by @juidesai in github/github-mcp-server#2515 * Add list_issue_fields tool by @kelsey-myers in github/github-mcp-server#2445 * Add custom field filtering to list_issues by @kelsey-myers in github/github-mcp-server#2480 * Remove trailing periods from tool title annotations by @timrogers in github/github-mcp-server#2518 * feat: Add CSV output format for default list tools under insiders mode by @RossTarrant in github/github-mcp-server#2450 * feat(issues): gate issue-fields features behind remote_mcp_issue_fields flag by @SamMorrowDrums in github/github-mcp-server#2520 * chore(gitignore): anchor binary names to repo root by @SamMorrowDrums in github/github-mcp-server#2522 * ci(mcp-diff): build UI artifacts available to baseline checkout by @SamMorrowDrums in github/github-mcp-server#2523 * docs: auto-generate per-flag tool lists for insiders and feature flags by @SamMorrowDrums in github/github-mcp-server#2521 * Adding suggest bool flag to suggest type changes to an issue by @boazreicher in github/github-mcp-server#2548 * Ignore proxy forwarding headers by default for OAuth resource metadata by @SamMorrowDrums in github/github-mcp-server#2550 * docs: update CLI command for adding GitHub PAT in README by @RossTarrant in github/github-mcp-server#2527 * Add support for issue fields values to `issues.read` and `issues.write` by @kelsey-myers in github/github-mcp-server#2551 * Boazreicher/add suggest to labels and issue fields by @boazreicher in github/github-mcp-server#2557 * docs: clarify auth in Codex CLI instructions by @RossTarrant in github/github-mcp-server#2549 * feat: gate issue_write and get_issue behind remote_mcp_issue_fields flag by @SamMorrowDrums in github/github-mcp-server#2558 * Reduce project item response size by @RossTarrant in github/github-mcp-server#2563 * build(deps): bump node from `e71ac5e` to `7c6af15` by @dependabot[bot] in github/github-mcp-server#2540 * build(deps): bump actions/setup-go from 5 to 6 by @dependabot[bot] in github/github-mcp-server#2543 * build(deps): bump docker/metadata-action from 6.0.0 to 6.1.0 by @dependabot[bot] in github/github-mcp-server#2544 * build(deps): bump docker/login-action from 4.1.0 to 4.2.0 by @dependabot[bot] in github/github-mcp-server#2545 * build(deps): bump docker/setup-buildx-action from 4.0.0 to 4.1.0 by @dependabot[bot] in github/github-mcp-server#2546 * build(deps): bump docker/build-push-action from 7.1.0 to 7.2.0 by @dependabot[bot] in github/github-mcp-server#2547 * build(deps): bump github.com/go-chi/chi/v5 from 5.2.5 to 5.3.0 by @dependabot[bot] in github/github-mcp-server#2542 ## New Contributors * @jluocsa made their first contribution in github/github-mcp-server#2489 * @boazreicher made their first contribution in github/github-mcp-server#2505 * @dvirarad made their first contribution in github/github-mcp-server#2451 * @Not-Dhananjay-Mishra made their first contribution in github/github-mcp-server#2284 * @juidesai made their first contribution in github/github-mcp-server#2515 * @timrogers made their first contribution in github/github-mcp-server#2518 **Full Changelog**: https://github.com/github/github-mcp-server/compare/v1.0.5...v1.1.0</pre> <p>View the full release notes at <a href="https://github.com/github/github-mcp-server/releases/tag/v1.1.0">https://github.com/github/github-mcp-server/releases/tag/v1.1.0</a>.</p> </details> <hr> See merge request: Harmonybrew/homebrew-core!9289
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a
list_issue_fieldstool that returns field definitions (name, type, options) for a GitHub org or repo. Picks up where #2438 left off, with some direction changes since.Why
Agents need to discover available custom fields before they can set field values on issues. Without this, they're guessing field names and types.
Fixes https://github.com/github/plan-track-agentic-toolkit/issues/38
What changed
list_issue_fieldstool — queriesrepository.issueFieldsororganization.issueFieldsvia GraphQL depending on whetherrepois passedrepois optional: passing owner+repo returns fields inherited from the org; passing owner alone returns org-level fields directlyrepoorread:org(either suffices, matchinglist_issue_typesapproach)WithGraphQLFeatures(ctx, "issue_fields")so the query hits the feature-flagged field on the monolithMCP impact
list_issue_fields— read-only tool returning field definitions (id, name, data_type, visibility, options for single_select). Requiresrepoorread:orgscope.Prompts tested
Security / limits
repoorread:orgrequired. User-owned repos return[](no error) — monolith returns null for non-org owners, which resolves to an empty list naturally.Tool renaming
Note: the original PR used
list_org_issue_fields— renamed tolist_issue_fieldssince it now covers both repo and org.Lint & tests
Docs