Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Bound binary response size in generated clients

Open
#86 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
30/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Quiet
Tech stack
python
Domain
api, backend

Research direction

Start with client.request_bytes in the generated servers and review PR #84 for the earlier streaming approach. Then inspect mcp-scope.yaml and the response_kind contract before deciding where the response limit belongs. Done means the project has a documented size-limit design that avoids the rejected environment-variable override without changing response_kind.

Written by the indexing model from the issue text.

Description

Follow-up to PR #84 review.

Context

client.request_bytes (in generated servers) currently reads the full
response body via response.content with no upper bound. For the "help
people build MCP servers fast" default that is the right choice, but a
truly large upstream body (multi-GB PDF, tarball, archive) will OOM
the generated server.

An earlier iteration of PR #84 streamed the body via
httpx.AsyncClient.stream(...) + aiter_bytes() with a 32 MiB cap
configurable via MCP_MAX_BINARY_RESPONSE_BYTES. That shape was
reverted as too complex for a scaffolding repo, but the underlying
concern remains.

Open questions

  • Where should the cap live — scope YAML (per-tool), server-level
    config, or a hard default baked into the renderer?
  • Do we want in-memory reads with an early fail, or stream-to-tempfile
    so the caller can hand MCP a path instead of bytes?
  • Avoid the env-var override pattern from the reverted version — if
    configurable, prefer something declared in mcp-scope.yaml.

Non-goals

  • Re-introducing MCP_MAX_BINARY_RESPONSE_BYTES as-is.
  • Any change to the response_kind contract.
Dominant language
Python
Stars
0
Forks
1
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from stacklok/mcp-builder

All issues in stacklok/mcp-builder

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.