Slimmer discover-abilities

Since 1.17.0 this plugin reshapes mcp-adapter’s discover-abilities, the first call most agents make. Upstream it takes no input and returns every MCP-public ability with its full description. On LocalHero that is over 300 abilities and about 175 KB of JSON, sent twice on the wire (once as the text block, again as structuredContent), so about 350 KB per session: clients truncate it, and slow, large responses like it were behind the October 2026 proxy 502s.

How

The adapter has no filter on its output, but every ability’s registration arguments pass through core’s wp_register_ability_args filter. LH_MCP_General_Abilities_Discover_Abilities hooks it on plugins_loaded, before wp_abilities_api_init, and replaces the ability’s description, input and output schemas and execute callback. The name, permission callback and annotations are the adapter’s, and exposure follows its rules (MCP-public through McpAbilityExposure, type tool), so the list is the same set as before, only shorter.

Parameters

Every result carries categories, the number of abilities in each category before filtering, so an agent can list names once and drill into one category. The full description and input schema stay in get-ability-info, which agents call before executing anyway.

What it depends on

Summaries are only as useful, and as short, as each ability’s opening sentence. The LocalHero rule is that the first sentence says what the ability does and returns in about 120 characters, at most 150, with fields, exceptions and the permission line after it. In October 2026, 112 of 319 abilities broke it.

A client that cached the tool list before 1.17.0 still holds the old output schema, which requires label and description on every item, so detail: names fails validation in that client until it refreshes its tools. The default summary satisfies both schemas.