Title: Reduce context usage for `projects_list` / `projects_get` project item responses · Issue #2383 · github/github-mcp-server · GitHub
Open Graph Title: Reduce context usage for `projects_list` / `projects_get` project item responses · Issue #2383 · github/github-mcp-server
X Title: Reduce context usage for `projects_list` / `projects_get` project item responses · Issue #2383 · github/github-mcp-server
Description: Problem The projects_list and projects_get tools return extremely large payloads when fetching project items, making them impractical for LLM-based workflows that need to operate within context window limits. Each project item response i...
Open Graph Description: Problem The projects_list and projects_get tools return extremely large payloads when fetching project items, making them impractical for LLM-based workflows that need to operate within context win...
X Description: Problem The projects_list and projects_get tools return extremely large payloads when fetching project items, making them impractical for LLM-based workflows that need to operate within context win...
Opengraph URL: https://github.com/github/github-mcp-server/issues/2383
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Reduce context usage for `projects_list` / `projects_get` project item responses","articleBody":"## Problem\n\nThe `projects_list` and `projects_get` tools return extremely large payloads when fetching project items, making them impractical for LLM-based workflows that need to operate within context window limits.\n\nEach project item response includes the full `content` object with:\n- Complete issue/PR body text\n- Full repository object (~2KB of URL templates)\n- Full user objects for author, assignee, milestone creator (~500B each)\n- Reaction URLs, label URLs, and other metadata\n\n**Measured impact:** A single project item response is easily ~8KB+. A `list_project_items` call returning 50 items (max `per_page`) produces ~400KB / ~100K tokens — roughly half of a typical LLM context window. At 100 items across two pages, the response consumes the entire context window.\n\nThe `fields` parameter controls which *project fields* (Status, Cycle, etc.) are included, but there is no way to suppress or reduce the `content` object that dominates the response size.\n\n## Usecase\n\nI want to be able to take programatic action across my project board (e.g., get me all items that have been updated in the last week). I want to be manipulating them with the same level of information at the project board UI layer, not with a bunch of extra content (e.g.,, issue/PR body). I'll fetch those explicitly if I need them. \n\n## What the useful data looks like\n\nFor project board operations, what's actually needed per item is:\n\n| Field | Example | Size |\n|-------|---------|------|\n| `item_id` | `146039219` | tiny |\n| `content.number` | `111` | tiny |\n| `content.title` | `\"Robust wallet management\"` | small |\n| `content.state` | `\"closed\"` | tiny |\n| `content.html_url` | `\"https://github.com/FilOzone/dealbot/issues/111\"` | small |\n| `content.assignees[].login` | `[\"rvagg\", \"SgtPooki\"]` | small |\n| `content.milestone.title` | `\"M4.1: mainnet ready\"` | small |\n| `content.repository.full_name` | `\"FilOzone/dealbot\"` | small |\n| Project fields | Status, Cycle, etc. | small |\n\nThis is ~200-300 bytes per item. The other ~7.5KB per item (issue body, full repo object, full user objects with all URL templates) is rarely needed for project board workflows.\n\n## Suggested approach\n\nApply the same \"minimal type\" pattern used in #2023, #2025, and #2028 to the projects tools:\n\n1. Default to a minimal `content` representation (title, number, state, html_url, assignee logins, milestone title, repo full_name, labels)\n2. Omit the issue/PR `body`, full `repository` object, and expanded `user` objects by default\n3. Optionally, add a `minimal_output` parameter (like `search_repositories` already has) to let callers choose\n\n## Context\n\nThis is the same class of problem reported in #142 for `list_commits` (5-6KB per commit) and discussed in #181 (response trimming). The recent fixes for `issue_read` (#2023), issue comments (#2025), and `create_or_update_file` (#2028) show the pattern works well — applying it to the projects tools would make them viable for LLM workflows that query project boards with dozens or hundreds of items.\n","author":{"url":"https://github.com/BigLep","@type":"Person","name":"BigLep"},"datePublished":"2026-04-24T16:42:22.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/2383/github-mcp-server/issues/2383"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:6eede765-4dfb-b914-8ec8-d54660457edf |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | AD0A:1A456E:121FE67:186B889:6A62C823 |
| html-safe-nonce | 6414301f2a61854a7c62205bccbdb55035ec60507f0c968b5ed89462c5e16edb |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBRDBBOjFBNDU2RToxMjFGRTY3OjE4NkI4ODk6NkE2MkM4MjMiLCJ2aXNpdG9yX2lkIjoiNDU1NTQ2MDIxNjc5MzI1MzkyMyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 54bdf5590f4b1b17c2f25f6e47993ec589a6c72dbc7c02430b56d8e9c5c79270 |
| hovercard-subject-tag | issue:4324333041 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/github/github-mcp-server/2383/issue_layout |
| twitter:image | https://opengraph.githubassets.com/bb671a200f2f8cdfed577d343ddfad487a7d560b2fd60de559fcc28cb5c8e9f9/github/github-mcp-server/issues/2383 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/bb671a200f2f8cdfed577d343ddfad487a7d560b2fd60de559fcc28cb5c8e9f9/github/github-mcp-server/issues/2383 |
| og:image:alt | Problem The projects_list and projects_get tools return extremely large payloads when fetching project items, making them impractical for LLM-based workflows that need to operate within context win... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | BigLep |
| hostname | github.com |
| expected-hostname | github.com |
| None | df33b1b61ee7b9a0af988199bfc3503c9c1acafb1f1d40e1f140ea7c84f890dd |
| turbo-cache-control | no-preview |
| go-import | github.com/github/github-mcp-server git https://github.com/github/github-mcp-server.git |
| octolytics-dimension-user_id | 9919 |
| octolytics-dimension-user_login | github |
| octolytics-dimension-repository_id | 942771284 |
| octolytics-dimension-repository_nwo | github/github-mcp-server |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 942771284 |
| octolytics-dimension-repository_network_root_nwo | github/github-mcp-server |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | d41cd1bdb290013455c0ac430fa755621733f5eb |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width