Action-Verb Tool Abstraction
Separate portable capability instructions from host-specific tool bindings.
These examples and illustrative results are independently authored teaching materials, not measured model results.
Use case
Host A offers source_read while B uses file tools for the same review. The core goal is reading allowed current source, not hardcoding private names everywhere.
Mechanism
Describe capability/input/output, then verify real tools/schema/permissions in adapters. Map arguments/results while preserving error/scope semantics. Missing hosts/capabilities yield gaps, not invented APIs. Use matched fixtures for bytes/confinement; justify core procedure without one model’s failure.
Bad example
Require mcp_vendor_read everywhere and invent it or use unrestricted shell when absent.
Good example
Core reads permitted current source. A maps actual source_read and B verified file read, recording schemas/identity. Unknown hosts report unavailable without scope expansion; both meet equal read/error contracts.
Why the change matters
Capability verbs preserve meaning while bindings handle platforms, reducing duplicated private interfaces with checked execution mappings.
Observable expectation
Teaching adapters return the same same.txt digest and reject out-of-scope reads; absent tools report gaps. A declared read without callable binding is not implementation. Unrun hosts remain designs.
Limits
Abstraction creates neither tools nor authority. Verify details in adapters and do not turn frozen model-transfer claims into this example’s evidence.
Sources and evidence
- addyosmani/agent-skills · Capability verbs over private tool workarounds
File at this version9d0c60d406b4