Tool granularity¶
The vManage API is huge — 20.10 has 2,983 operations spread over 304 OpenAPI tags. Naively mapping one MCP tool per tag gives an LLM 300+ tools, which most clients (and most LLMs) cannot ingest cleanly.
So we offer two granularities:
| Granularity | What it groups | Tools (20.10, RW) | Use when |
|---|---|---|---|
section (default) |
First word before " - " | 38 | You want the LLM to find anything across the API. |
tag |
Full Cisco tag | 304 | Your client can handle hundreds of tools and you want narrower descriptions. |
How grouping works¶
A Cisco tag like Configuration - Feature Profile (SDWAN) is parsed as:
- section =
Configuration - tag =
Configuration - Feature Profile (SDWAN)
In section mode all 1,500+ Configuration operations roll up into a single configuration tool. The tool's description still lists every operation by name, so the LLM still knows exactly what's available — it just picks action="getFeatureProfile" instead of having a configuration_feature_profile_sdwan tool to choose from.
Tradeoff¶
section: fewer tools, but each tool's description is huge (megabytes forconfiguration). Some LLM clients reject oversized tool descriptions. If you hit this, switch totag.tag: many tools but each one is small. Better for clients that gracefully handle hundreds of tools.
Switching¶
config.yaml:
Or CLI override: