| MCP, graph status, or schema | inspect_graph_tool(include_raw_schema=false) and when needed inspect_graph_tool(include_raw_schema=true) |
| Structured read | query_graph_data_tool (bounded page or exact ID query) |
| Natural-language Gremlin generation | generate_gremlin_tool(query, execute=false) |
| Generate Gremlin without execution | generate_gremlin_tool(query, execute=false); raw execution must return FEATURE_DISABLED |
| Raw Gremlin disabled boundary | execute_gremlin_read_tool(unsafe_write_query); rejection verifies unconditional disablement, not write classification |
| Text-to-graph extraction | extract_graph_data_tool(text, graph_schema?, example_prompt?) |
| Import dry-run | import_graph_data_tool(mode="ingest", graph_data, dry_run=true) |
| Import preview boundary | Assert confirmable=false, preview_only=true, no plan_id; confirmation returns FEATURE_DISABLED |
| Verify existing graph data | query_graph_data_tool |
| Schema design | design_schema_tool(operations?) |
| Schema validation | apply_schema_tool(mode="validate", operations) |
| Schema dry-run | apply_schema_tool(mode="dry_run", operations) |
| Raw write Gremlin disabled boundary | execute_gremlin_write_tool(gremlin_query); must remain disabled even in admin mode |
| Admin gate check without a write | refresh_vid_embeddings_tool(confirm=false) in separate admin-disabled and admin-enabled processes |