feat: Add tool annotations#333
Conversation
Add annotations to all internal and Actor tools: - title: Short display name (sentence case, Actor/Apify capitalized) - readOnlyHint: true for read-only tools - openWorldHint: true only for tools accessing open world (external web/Actors), not Apify platform Examples: call-actor and get-html-skeleton are openWorld; search-actors and fetch-apify-docs are not
yfe404
left a comment
There was a problem hiding this comment.
Tested locally with full test suite:
- Build & Type Check: Passed
- Unit Tests: 146/146 passed
- Integration Tests: 150/151 passed (1 unrelated timeout)
Question about annotation strategy:
I noticed that openWorldHint is only explicitly set to true for tools that interact with external websites (call-actor, Actor tools, get-html-skeleton), but is omitted for tools that interact with the Apify API (add-actor, search-actors, fetch-actor-details).
Since openWorldHint defaults to true in the MCP spec, this means:
- Tools with explicit
openWorldHint: true→ "truly open world" (external websites) - Tools without it → default to
trueanyway (Apify platform)
Is this intentional? Should we consider explicitly setting openWorldHint: false for Apify-platform-only tools to make the distinction clearer, or is the current approach (explicit only for "truly open" tools) the intended design?
Either way, the current implementation works correctly! Just curious about the design rationale.
|
Thanks @yfe404 , good catch. I missed that the |
close: #327