Summary
#43867 fixed create_discussion.body and create_issue.body by adding maxLength: 65536, exempting them from the SM-IS-01 global 10 KB cap. However, the same gap exists across almost every other body (and equivalent large-content) field in the tool set. The fix in #43867 was narrower than the underlying problem.
How the exemption works (recap)
From mcp_scripts_validation.cjs:
// Skip fields with an explicit maxLength — handler-level validation enforces their limit.
if (typeof schema.maxLength === 'number') {
continue;
}
Any string field without maxLength is subject to the 10 KB global floor. Fields that should accept large content need maxLength: 65536 (or appropriate value) to delegate enforcement to the GitHub API layer.
Affected fields
These are body / large-content fields currently missing maxLength:
| Tool |
Field |
update_discussion |
body |
update_issue |
body |
update_pull_request |
body |
update_release |
body |
update_project |
draft_body |
create_pull_request |
body |
create_pull_request_review_comment |
body |
submit_pull_request_review |
body |
reply_to_pull_request_review_comment |
body |
close_discussion |
body |
close_issue |
body |
close_pull_request |
body |
create_agent_session |
body |
create_project_status_update |
body |
create_check_run |
summary, text |
autofix_code_scanning_alert |
fix_description, fix_code |
merge_pull_request |
commit_message |
push_to_pull_request_branch |
message |
dismiss_pull_request_review |
justification |
noop |
message |
report_incomplete |
details |
Correct state after #43867 (for reference)
| Tool |
Field |
maxLength |
add_comment |
body |
65536 ✅ |
create_issue |
body |
65536 ✅ |
create_discussion |
body |
65536 ✅ |
Fix
Add appropriate maxLength values to all affected fields in both pkg/workflow/js/safe_outputs_tools.json and actions/setup/js/safe_outputs_tools.json. For most body fields, 65536 is the right value (matching add_comment and GitHub's GraphQL API limits). Fields with tighter natural limits (e.g. commit_message, noop.message) may warrant lower values.
Alternatively, consider inverting the SM-IS-01 logic: apply the 10 KB floor only to fields that have not been explicitly sized, and treat the lack of maxLength as "defer to the API" rather than "enforce 10 KB". This would make the safe default permissive and require explicit opt-in to tighter caps — more consistent with how the rest of the schema validation works.
Summary
#43867 fixed
create_discussion.bodyandcreate_issue.bodyby addingmaxLength: 65536, exempting them from the SM-IS-01 global 10 KB cap. However, the same gap exists across almost every otherbody(and equivalent large-content) field in the tool set. The fix in #43867 was narrower than the underlying problem.How the exemption works (recap)
From
mcp_scripts_validation.cjs:Any string field without
maxLengthis subject to the 10 KB global floor. Fields that should accept large content needmaxLength: 65536(or appropriate value) to delegate enforcement to the GitHub API layer.Affected fields
These are
body/ large-content fields currently missingmaxLength:update_discussionbodyupdate_issuebodyupdate_pull_requestbodyupdate_releasebodyupdate_projectdraft_bodycreate_pull_requestbodycreate_pull_request_review_commentbodysubmit_pull_request_reviewbodyreply_to_pull_request_review_commentbodyclose_discussionbodyclose_issuebodyclose_pull_requestbodycreate_agent_sessionbodycreate_project_status_updatebodycreate_check_runsummary,textautofix_code_scanning_alertfix_description,fix_codemerge_pull_requestcommit_messagepush_to_pull_request_branchmessagedismiss_pull_request_reviewjustificationnoopmessagereport_incompletedetailsCorrect state after #43867 (for reference)
maxLengthadd_commentbodycreate_issuebodycreate_discussionbodyFix
Add appropriate
maxLengthvalues to all affected fields in bothpkg/workflow/js/safe_outputs_tools.jsonandactions/setup/js/safe_outputs_tools.json. For mostbodyfields,65536is the right value (matchingadd_commentand GitHub's GraphQL API limits). Fields with tighter natural limits (e.g.commit_message,noop.message) may warrant lower values.Alternatively, consider inverting the SM-IS-01 logic: apply the 10 KB floor only to fields that have not been explicitly sized, and treat the lack of
maxLengthas "defer to the API" rather than "enforce 10 KB". This would make the safe default permissive and require explicit opt-in to tighter caps — more consistent with how the rest of the schema validation works.