Skip to content

Tool annotations: readOnlyHint and openWorldHint (2.3.24) - #31

Merged
vprudnikoff merged 1 commit into
mainfrom
feat/tool-annotations
Nov 5, 2026
Merged

vprudnikoff merged 1 commit into
mainfrom
feat/tool-annotations

Conversation

@vprudnikoff

Copy link
Copy Markdown
Member

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.)

  • Every tool gets openWorldHint: true; the 33 tools that change nothing on the LinkedIn account or in Linked API get readOnlyHint: true (list in src/utils/read-only-tool-names.ts). Applied centrally in getTools(), so each tool's own definition is untouched.
  • Writes (no readOnlyHint): every send/connect/withdraw/accept/ignore/remove/react/comment/reply/post/repost/endorse/manage tool, execute_custom_workflow, send_feedback, the admin setters, and – judgement calls – the sync_* tools and get_conversation/nv_get_conversation, which can open conversations on LinkedIn and mark them read.
  • A new tool defaults to a write until it is added to the list.

Version 2.3.24. Checks: typecheck, eslint, prettier; probed getTools(): 69 tools, 33 readOnly, 36 write, openWorldHint on all.

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.
@vprudnikoff
vprudnikoff merged commit 818c60e into main Nov 5, 2026
2 checks passed
@vprudnikoff
vprudnikoff deleted the feat/tool-annotations branch November 5, 2026 11:53
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