Human-readable gating clause shown in docs.
Registration kind — drives WHICH register*Tools fn picks it up.
Tool name as registered (e.g., "obsidian_search").
One-line summary (~60 chars). Detailed description lives in the registerTool() call's description field.
Machine-readable tool registry. Single source of truth for:
Consumers:
Introduced in v3.6.0-rc.2 alongside the src/index.ts → domain-module split. Populated by hand from the existing registerReadTools / registerWriteTools / registerFtsTools call sites. The summary field is a 1-line distillation of the registerTool()
descriptionargument — the full description stays at the registration site so MCP clients still see verbatim what they did pre-refactor. Count math invariant (enforced by docs-consistency.test.ts): 44 total = 33 always-on read