PBI Bootstrap
Session setup and recovery for SemanticOps MCP. Use the bundled references as the working documentation.
Quick Start
- Check the connection:
manage_model_connection{ "operation": "get_current" }. - If no model is connected — Desktop:
{ "operation": "list" }, present the choices, then{ "operation": "select", "model_id": "<model_id>" }with the user's pick. Service:{ "operation": "authenticate", "source": "service" }first when needed, then{ "operation": "list_workspaces" }for the workspace choice, then{ "operation": "list", "source": "service", "workspace": "<workspace>" }to list its datasets, and finallyselectwith the returnedmodel_id(workspaces themselves are not selectable). - Load saved preferences with
manage_preferences{ "action": "list", "resource": "rendered" }and apply them within their stated trust boundary. - Read tool-invocation-conventions before composing any non-trivial write or bulk request.
- If a tool returns empty or stale results, switch to troubleshooting-guide before retrying.
Route to the right tool family
list_model(list,search,analyze,info,report) for discovery, search, previews, and metadata inspection.run_query(execute,analyze,vertipaq,test_access) for DAX execution, performance analysis, storage inspection, and RLS checks.- Write tools (
manage_schema,manage_semantic,manage_security) only after the target object and operation are explicit. - Once connected and healthy, hand off to the task skill: query authoring →
mcp-engine-query; slow queries →mcp-engine-dax-performance; wrong values →mcp-engine-dax-debugging; tables, columns, relationships, partitions →mcp-engine-schema-authoring; measures and calc groups →mcp-engine-semantic-authoring; multi-object refactors →mcp-engine-refactoring; tests, checkpoints, rollback →mcp-engine-testing-changes; RLS, policy, masking, audit →mcp-engine-security-governance. If a named skill is not installed, continue with the tool'sinputSchemaor ask the user to add it.
Guard bulk and write requests
- Keep
transaction,dry_run,include_items, andinclude_detailsas top-level request controls. - Put per-item identifiers and
specvalues inside each item; items do not inherit from the request. - Confirm destructive intent before deletes, renames, broad refreshes, or model-wide rewrites.
Recover from common failures
- Wrong or stale connection state: re-check with
{ "operation": "get_current" }, then{ "operation": "reload" }after external model changes. - Object seems missing: broaden discovery with
list_model{ "operation": "search", "spec": { "query": "<object name>", "mode": "name" } }(spec.queryis required) before concluding it does not exist. - Argument validation errors: fix key names and payload shape per tool-invocation-conventions before changing business logic.
- Full recovery flows: troubleshooting-guide.