Skip to content

feat(mcp-server-kit): advertise every tool hint as an explicit boolean - #24

Merged
clbotdev merged 1 commit into
mainfrom
feat/mcp-kit-explicit-hints
Nov 1, 2026
Merged

clbotdev merged 1 commit into
mainfrom
feat/mcp-kit-explicit-hints

Conversation

@clbotdev

@clbotdev clbotdev commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

What

Every tool's annotations now carries all four hints as explicit booleans:

  • readOnlyHint and destructiveHint come from risk, as before. Read tools used to leave destructiveHint out.
  • idempotentHint and openWorldHint come from the tool's annotations and default to false. Tools without annotations used to leave them out.

Why

The ChatGPT plugin guidelines say to "set readOnlyHint, destructiveHint, and openWorldHint to explicit boolean values" on every tool. A product on the kit couldn't satisfy that for read tools. SendLit is preparing submissions to the ChatGPT and Claude directories.

Product impact

A tool that reaches outside the tenant's own workspace (sending email, arbitrary destinations, public web search) should pass annotations: { openWorldHint: true }. Without it the kit now advertises false, where before the hint was left out (the MCP spec's default is true). The changeset is minor and lists this under "Product changes".

Testing

bun test in packages/mcp-server-kit: 19 pass. Typecheck and Biome are clean.

The ChatGPT Plugins Directory requires readOnlyHint, destructiveHint and
openWorldHint to be explicit on every tool. Read tools left destructiveHint
out and tools without annotations left out openWorldHint, so a product on the
kit could not pass review. idempotentHint and openWorldHint now default to
false (tools act on the tenant's own workspace unless they say otherwise).
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.

2 participants