Skip to content

Add standard readOnlyHint / destructiveHint annotations on tools for native client grouping #120

Description

@bst1n

Context

PR #110 (closes #70) added ghst/toolGroup and ghst/toolGroupTitle metadata in the _meta field of each tool. This was a forward-looking choice anticipating future MCP grouping standards.

However, this custom namespace isn't recognized by any current MCP client (including Claude Desktop), so all 91 tools still appear as a flat "Other tools" list in the client UI.

What clients actually use today

Claude Desktop renders tool groups based on the MCP standard annotations readOnlyHint and destructiveHint. As an example, the Airtable connector groups its tools into "Read-only tools" (12) and "Write/Delete tools" (9) automatically because each tool carries the appropriate annotation.

State of custom-category grouping in the MCP spec

So custom-category grouping (Posts / Pages / Stats / etc.) isn't supported by clients today and isn't in the spec — it might land via the toolgroups extension or a future SEP, but there's no ETA.

Suggestion

Complement the existing ghst/toolGroup metadata (keep it — it's good future-proofing) by adding the standard annotations.readOnlyHint and annotations.destructiveHint fields on each tool. This would give immediate visible grouping in Claude Desktop and other compliant clients, without removing any existing capability.

Examples:

  • ghost_post_list, ghost_post_get, ghost_stats_*readOnlyHint: true
  • ghost_post_delete, ghost_member_deletedestructiveHint: true
  • ghost_post_create, ghost_post_update → neither hint (write but non-destructive)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions