mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-31 19:16:29 +00:00
feat(mcp): curated exclude list for cloudflare + glob tool filters + default_excluded manifests
The cloudflare entry's 3,320-endpoint surface is ~43% product families a personal/dev account never touches (Zero Trust org-fleet suite, Magic Transit/WAN, Cloudforce One, Radar analytics, API Shield, legacy migration surfaces). Ship a 34-pattern curated exclude list in the manifest: 3,320 -> 1,905 tools kept, and everything Cloudflare adds later stays enabled by default. Mechanism, two small extensions: - tools/mcp_tool.py: tools.include/exclude entries containing glob metacharacters now match via fnmatch (plain names stay exact-match), so a product family is one pattern instead of hundreds of stale literals. - hermes_cli/mcp_catalog.py: manifests may declare tools.default_excluded (mutually exclusive with default_enabled); install writes it to tools.exclude and skips the probe/checklist — a 3,320-row curses checklist is not a UX. Prior user include selections still win on reinstall. Verified by replaying the real filter functions over the live-probed 3,320-tool list: 1,415 excluded, zero overmatch against a per-product target audit; DNS/Workers/R2/D1/tunnels/Access/AI kept.
This commit is contained in:
parent
ce0defe4d8
commit
58c97b9ddd
6 changed files with 295 additions and 14 deletions
|
|
@ -104,6 +104,13 @@ The pre-checked rows come from:
|
|||
catalog entries pre-prune mutating or rarely-useful tools)
|
||||
3. **Everything** if neither applies
|
||||
|
||||
Some entries with very large auto-generated surfaces (e.g. `cloudflare`,
|
||||
~3,300 OpenAPI endpoint tools) instead declare `tools.default_excluded` — a
|
||||
curated block-list of names and glob patterns. Installing one of these skips
|
||||
the checklist entirely and writes `tools.exclude`; everything not matched
|
||||
stays enabled, including tools the server adds later. Edit
|
||||
`mcp_servers.<name>.tools.exclude` in config.yaml to re-enable a family.
|
||||
|
||||
Submit the checklist with ENTER. Only the checked tools end up in
|
||||
`mcp_servers.<name>.tools.include`. If you select everything, no filter is
|
||||
written (cleanest config shape, identical behavior).
|
||||
|
|
@ -448,6 +455,12 @@ mcp_servers:
|
|||
|
||||
Only those MCP server tools are registered.
|
||||
|
||||
Entries in `include`/`exclude` may also be glob patterns (`*`, `?`, `[...]`,
|
||||
matched case-sensitively): `include: ["*_dns_*"]` registers every tool whose
|
||||
name contains `_dns_`. Plain entries without metacharacters stay exact-match.
|
||||
Globs are the practical way to filter servers that expose thousands of
|
||||
auto-generated endpoint tools by product family.
|
||||
|
||||
### Blacklist server tools
|
||||
|
||||
```yaml
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue