How the catalog is organised¶
Each module in cloudg/mcp/catalog/ registers its primitives through a register(registry) function. cloudg.mcp.catalog.default_registry() calls all of them (workspace, inventory, graph, findings, compliance, ontology, export, live, meta, resources, prompts), then adds the privacy module if it imports. cloudg.mcp.catalog.CATEGORIES holds the category descriptions:
| Category | Tools | What it covers |
|---|---|---|
workspace |
8 | Load, select, snapshot, diff and unload datasets |
inventory |
11 | Search, inspect and aggregate assets, accounts, regions, tags, coverage, org |
graph |
17 | Relationships: neighbours, paths, exposure, attack / lateral paths, dependencies, blast radius, centrality, sub-graphs |
findings |
10 | Browse, summarise, prioritise, suppress and ingest security findings |
compliance |
5 | Framework posture, controls and compliance gaps |
ontology |
6 | RDF ontology, read-only SPARQL, semantic neighbourhoods, RAG chunks |
export |
3 | Terraform recreation and report files |
live |
5 | Collect from cloud APIs and run scanners (credentials / binaries; open world) |
meta |
4 | Server capabilities and cloudg's vocabulary |
privacy |
5 | Privacy policy, pseudonym vault and data-handling controls |
prompts |
11 prompts | Packaged analysis workflows |
Resources and templates carry the category of what they show (workspace, inventory, graph and so on), so a category filter removes them along with the tools. To expose part of the catalog, filter the layer or build a registry from a subset of modules:
layer = CloudGMCPLayer(include_categories=["inventory", "graph", "meta"])
layer = CloudGMCPLayer(exclude_categories=["live"], exclude_tools=["get_asset_metadata"])
from cloudg.mcp.core import Registry
from cloudg.mcp.catalog import inventory, graph
reg = Registry()
inventory.register(reg)
graph.register(reg)
layer = CloudGMCPLayer(registry=reg)
prefix="cloudg_" renames every tool and prompt on the wire (cloudg_find_assets), which helps when the layer is mounted into another server. list_capabilities reports the prefixed names.