Skip to content

OAuth entry lists every tool up front; open-world and destructive hints per the directory scanner (26.10.2) - #80

Merged
phwizard merged 1 commit into
mainfrom
fix/scanner-findings
Oct 16, 2026
Merged

phwizard merged 1 commit into
mainfrom
fix/scanner-findings

Conversation

@phwizard

Copy link
Copy Markdown
Member

The plugin directory's MCP tool scan on 26.10.1 returned:

  • ethora-tools-enable: "appears to execute operations that are not individually exposed; expose each model-callable operation upfront as a separate tool".
  • ethora-app-create / -update, ethora-agent-create / -update: "marked openWorldHint: false, but interacts with an independently controlled external system".
  • ethora-source-site-crawl-wait: "marked destructiveHint: false, but causes material loss or a hard-to-reverse change".

Changes

  • OAuth surface (/mcp/oauth, ChatGPT and Claude.ai): applyOAuthSurface lists every offered tool at initialize and removes ethora-tools-enable, OAUTH_HIDDEN_TOOLS and the keys, session, b2b, legacy-bot groups, so nothing callable is absent from tools/list. About 65 tools. The open and personal-URL entries are unchanged (core + tools-enable). OAuth instructions say every tool is listed; the authenticated entry keeps the groups line.
  • openWorldHint: true for every tool that calls the Ethora API or fetches a website (the scanner treats the Ethora platform as an external system from the client's side); false only for in-server tools. Rule text updated in the table header and the generated doc.
  • destructiveHint: true for crawl, crawl-wait, reindex, reindex-wait, refresh and knowledge-rebuild (they replace stored pages or index entries; crawl only with force).
  • Tests: the open-world rule per tool and the OAuth surface shape (22/22). docs/TOOL_ANNOTATIONS.md regenerated. Plugin description says every tool is listed up front. 26.10.2.

…ts per the directory scanner

The plugin directory's tool scan returned three kinds of finding against
26.10.1: ethora-tools-enable 'executes operations that are not individually
exposed', create/update tools 'interact with an independently controlled
external system' while marked closed-world, and the crawl tool 'causes a
hard-to-reverse change' while marked non-destructive.

- OAuth connections get the whole offered catalogue at initialize and no
  ethora-tools-enable; keys, session, b2b and legacy-bot are removed there
  rather than hidden, so no callable tool is missing from tools/list. Open
  and personal-URL entries keep the compact core plus tools-enable.
- openWorldHint true for every tool that calls the Ethora API or fetches a
  website; false only for in-server tools (status, help, app-select, search,
  fetch, session configuration, generators).
- destructiveHint true for crawl, re-index, refresh and knowledge-rebuild,
  which replace stored pages or index entries (crawl only with force).
- Tests: open-world rule, OAuth surface shape. 26.10.2.
@phwizard
phwizard merged commit 4fbef60 into main Oct 16, 2026
5 checks passed
@phwizard
phwizard deleted the fix/scanner-findings branch October 16, 2026 17:00
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