Repository navigation
Tool annotations: readOnlyHint and openWorldHint (2.3.24) - #31
Merged
Merged
Conversation
ChatGPT treats a tool without readOnlyHint as a write and gates every call behind a confirmation; on Pro, custom MCP servers may use read tools only. Every tool now carries openWorldHint: true, and readOnlyHint: true for the 33 that change nothing on the LinkedIn account or in Linked API (fetches, searches, retrievals, stored inbox and network reads, workflow results, usage, changelog, admin reads). Syncs and get_conversation stay writes: they can open conversations on LinkedIn, which marks them read. A new tool defaults to a write.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ChatGPT respects
readOnlyHint: a tool without it is treated as a write and every call asks for confirmation, and on ChatGPT Pro custom MCP servers get read/fetch permissions only, so unannotated read tools may not be callable at all. (Source: OpenAI help article 12584461 and the developer guide, via the product team.)openWorldHint: true; the 33 tools that change nothing on the LinkedIn account or in Linked API getreadOnlyHint: true(list insrc/utils/read-only-tool-names.ts). Applied centrally ingetTools(), so each tool's own definition is untouched.execute_custom_workflow,send_feedback, the admin setters, and – judgement calls – thesync_*tools andget_conversation/nv_get_conversation, which can open conversations on LinkedIn and mark them read.Version 2.3.24. Checks: typecheck, eslint, prettier; probed
getTools(): 69 tools, 33 readOnly, 36 write, openWorldHint on all.