[GH-ISSUE #3008] 170 MCP tools advertised across 15 surfaces, but doctor inspects only 2 providers #1052

Open
opened 2026-10-15 18:30:41 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @Selene0623 on GitHub (Oct 13, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/3008

rea doctor --client opencode --json (CLI 6.4.0) reports, in identity.catalog.counts:

mcp_tools: 170, mcp_prompts: 6, cli_commands: 127

Tools by surface, from the same payload:

official-proxy 40, adb-provider 24, session 21, application 18, enhanced 14, browser-provider 12,
native-provider 11, artifact-provider 7, electron-provider 5, android-provider 5, jeb-provider 4,
managed-provider 3, apktool-provider 2, firmware-provider 2, runtime-provider 2

But providerInspections contains exactly two entries:

ghidra  configured=false  available=false   GHIDRA_INSTALL_DIR is not set
ida     configured=false  available=false   IDA MCP registration is not configured.

So tools/list advertises the adb-provider, browser-provider, electron-provider, android-provider,
jeb-provider, apktool-provider, firmware-provider, runtime-provider, artifact-provider and
managed-provider tools with no statement about whether this host can serve them, and doctor reports nothing
about those providers either.

Concretely on this host both engines are installed:

$ command -v adb; adb version | head -2
/usr/bin/adb
Android Debug Bridge version 1.0.41
Version 37.0.0-android-tools

$ ls -l /usr/bin/ghidra; pacman -Qo /usr/bin/ghidra
/usr/bin/ghidra -> /opt/ghidra/ghidraRun
/usr/bin/ghidra is owned by ghidra 12.1.2-2.1

…and yet:

  • the Ghidra provider is reported not_configured because GHIDRA_INSTALL_DIR is unset — doctor does not
    follow a ghidra executable on PATH or look at /opt/ghidra. Setting GHIDRA_INSTALL_DIR=/opt/ghidra
    flips it to configured=true, available=true, providerVersion=12.1.2 ("compatible 12.1.x release
    (verified build 12.1.4)"), so only the discovery step is missing.
  • adb is not inspected at all, although 24 of the 170 tools are adb-provider tools.

Why it matters: an MCP client loads the catalogue per session, so a frame-capped client pays for 170 tool
descriptions, and an agent has no way to know which of them can actually run — every adb-provider,
browser-provider or jeb-provider call is a coin flip until it fails. #2512 asks for a lighter
advertisement; this is the matching request for accuracy, not size.

Suggested:

  1. Report a provider row for every surface whose tools are advertised, or stop advertising tools for
    providers that cannot be served on this host.
  2. Detect an installed Ghidra by resolving a ghidra executable on PATH
    (readlink -f "$(command -v ghidra)" → install dir) in addition to GHIDRA_INSTALL_DIR.

Environment: CachyOS (Arch), Linux 7.2.9-2-cachyos, x86_64, Node 26.11.1, rea-agents 6.4.0, client opencode.

Originally created by @Selene0623 on GitHub (Oct 13, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/3008 `rea doctor --client opencode --json` (CLI 6.4.0) reports, in `identity.catalog.counts`: mcp_tools: 170, mcp_prompts: 6, cli_commands: 127 Tools by `surface`, from the same payload: official-proxy 40, adb-provider 24, session 21, application 18, enhanced 14, browser-provider 12, native-provider 11, artifact-provider 7, electron-provider 5, android-provider 5, jeb-provider 4, managed-provider 3, apktool-provider 2, firmware-provider 2, runtime-provider 2 But `providerInspections` contains exactly two entries: ghidra configured=false available=false GHIDRA_INSTALL_DIR is not set ida configured=false available=false IDA MCP registration is not configured. So `tools/list` advertises the `adb-provider`, `browser-provider`, `electron-provider`, `android-provider`, `jeb-provider`, `apktool-provider`, `firmware-provider`, `runtime-provider`, `artifact-provider` and `managed-provider` tools with no statement about whether this host can serve them, and doctor reports nothing about those providers either. Concretely on this host both engines are installed: $ command -v adb; adb version | head -2 /usr/bin/adb Android Debug Bridge version 1.0.41 Version 37.0.0-android-tools $ ls -l /usr/bin/ghidra; pacman -Qo /usr/bin/ghidra /usr/bin/ghidra -> /opt/ghidra/ghidraRun /usr/bin/ghidra is owned by ghidra 12.1.2-2.1 …and yet: - the Ghidra provider is reported `not_configured` because `GHIDRA_INSTALL_DIR` is unset — doctor does not follow a `ghidra` executable on `PATH` or look at `/opt/ghidra`. Setting `GHIDRA_INSTALL_DIR=/opt/ghidra` flips it to `configured=true, available=true, providerVersion=12.1.2` ("compatible 12.1.x release (verified build 12.1.4)"), so only the discovery step is missing. - adb is not inspected at all, although 24 of the 170 tools are `adb-provider` tools. Why it matters: an MCP client loads the catalogue per session, so a frame-capped client pays for 170 tool descriptions, and an agent has no way to know which of them can actually run — every `adb-provider`, `browser-provider` or `jeb-provider` call is a coin flip until it fails. #2512 asks for a lighter advertisement; this is the matching request for *accuracy*, not size. Suggested: 1. Report a provider row for every surface whose tools are advertised, or stop advertising tools for providers that cannot be served on this host. 2. Detect an installed Ghidra by resolving a `ghidra` executable on `PATH` (`readlink -f "$(command -v ghidra)"` → install dir) in addition to `GHIDRA_INSTALL_DIR`. Environment: CachyOS (Arch), Linux 7.2.9-2-cachyos, x86_64, Node 26.11.1, rea-agents 6.4.0, client opencode.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#1052
No description provided.