Skip to content

How the catalog is organised

From docs/MCP_TOOLS.md on GitHub

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.