Skip to content

feat(mcp): complete the safety-hint trio on every manifest tool - #103

Merged
tuyakhov merged 1 commit into
mainfrom
claude/nifty-nash-6ed5ad
Aug 13, 2026
Merged

feat(mcp): complete the safety-hint trio on every manifest tool#103
tuyakhov merged 1 commit into
mainfrom
claude/nifty-nash-6ed5ad

Conversation

@tuyakhov

Copy link
Copy Markdown
Contributor

Summary

OpenAI's ChatGPT/Codex plugin review requires explicit readOnlyHint, openWorldHint, and destructiveHint values on every MCP tool. The manifest previously declared exactly one hint per tool, and the ToolAnnotations union forbade holding all three — so the hosted app papered over it with an app-side TRI_HINTS completion map (senderkit/senderkit-app#312).

This moves the completed trio into the shared manifest, where both servers inherit it:

  • ToolAnnotations is now an interface requiring all three hints, so the compiler enforces completeness on every future tool.
  • Every MCP_TOOLS entry carries the exact values from the app's TRI_HINTS map: senderkit_send / senderkit_send_raw are the only openWorldHint: true tools (they deliver to recipients outside SenderKit); reads are {true, false, false}; inbound_addresses_create stays an additive non-destructive write.
  • The CLI-bundled stdio server surfaces the trio over tools/list via the shared manifest — no other behavior change (descriptions, schemas, handlers untouched).
  • SDK/CLI tests updated to assert the full trio and that only the send tools are open-world.

Type note: this widens the previous one-hint union, so external code constructing a partial ToolAnnotations must now state all three hints — hence the minor changeset for both packages.

Follow-up: senderkit-app#312 will drop its TRI_HINTS merge and consume the trio straight from the manifest once this releases.

🤖 Generated with Claude Code

OpenAI's ChatGPT/Codex plugin review requires explicit readOnlyHint,
openWorldHint, and destructiveHint values on every tool. Widen
ToolAnnotations from the one-hint union to a required trio and stamp
every MCP_TOOLS entry with the completed values (matching the hosted
app's TRI_HINTS completion map from senderkit-app#312, which this
change makes redundant). The send tools are the only open-world ones;
the CLI-bundled server inherits the trio via the shared manifest with
no other behavior change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@tuyakhov
tuyakhov merged commit 4cf8fd0 into main Aug 13, 2026
1 check passed
@tuyakhov
tuyakhov deleted the claude/nifty-nash-6ed5ad branch August 13, 2026 14:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant