push_files / create_or_update_file have no way to write large content without inlining it in the tool call

Offen
#3,547 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 2 Tagen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
35/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
github, go
Bereich
api, devtools

Rechercherichtung

Start by locating the implementations of push_files and create_or_update_file, then trace how file content is serialized into GitHub API calls. Compare the available blob, tree, and commit operations described in the issue and check whether the server exposes any existing streaming or upload pattern. Done means callers can write large files without sending all content inline, or have a documented supported size ceiling.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

push_files and create_or_update_file require the full file content inline in the tool call, with no option for a file-by-reference upload or chunked/streaming write for large files.

Repro:

  • Call push_files with one file whose content is on the order of 2-3 MB of text.
  • The call either fails or risks truncation because the entire content must be serialized into the tool call's JSON payload.

Expected: some way to push large files without having to pass the complete content inline in a single call, e.g. a multipart/chunked write, or accepting a pre-uploaded blob SHA (the REST API's own git blob + tree + commit flow would allow this, but there is no MCP tool here that exposes creating a blob from a stream or from a size that exceeds a reasonable tool-call payload).

Actual: the only way to commit large text content through this MCP server is to pass it whole inline, which breaks down well before typical repo file sizes (multi-MB text exports, long logs, etc.).

Ask: expose a way to create a blob/commit for large content without it having to round-trip through a single tool call's inline payload, for example a tool that accepts a local-file-style streamed upload, or document a supported size ceiling so callers know when to split rather than discovering it empirically.

Vorherrschende Sprache
Go
Sterne
34.2k
Forks
5.3k
Ø Merge
5 T. 18 Std.
Gemergte PRs (30 T.)
13

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus github/github-mcp-server

Alle Issues in github/github-mcp-server

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.