Skip to main content
Glama
dnic-dev

bw-modeling-mcp

by dnic-dev

bw_update_composite_provider

Modify a CompositeProvider (HCPR): add/remove fields, attach/detach source providers, update mappings and join conditions, adjust settings. Returns lock handle for activation.

Instructions

Change a CompositeProvider (HCPR): its fields, its source providers, their field mappings, the join condition, or root settings. Every action returns a lock_handle that must be passed to bw_activate (object type hcpr) — an HCPR cannot be activated without it. Fields: "add_field" (default) adds an element plus a mapping in every part provider supplying it, taking the field metadata from there; "remove_field" removes the element and all mappings referencing it. Sources: "add_input" attaches a source provider, creates the target elements it needs and returns the generated alias; "remove_input" strips one by alias, leaving its elements and any join reference behind. Mappings: "update_mapping" replaces the complete mapping list of one input; pass no mappings to map every field of its source one to one. This is also how an input attached at creation time gets its mappings. Joins: "update_join" sets the condition between one pair of inputs — call it once per pair to build an N-way join — and "remove_join" drops one pair. Note that both sides of a join key must be mapped onto the SAME target field, otherwise activation fails with "join fields need at least one common target field"; auto-mapping does not do this, so map the second side's key fields explicitly. Settings: "update_settings" edits label, stackable, default node and aggregation behaviour.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
labelNoupdate_settings: new description.
actionNoDefaults to "add_field".
mappingsNoadd_input / update_mapping. Omit or pass an empty list to map every field of the source one to one.
join_typeNoupdate_join: "inner" (default), "leftOuter", etc. — lowercase first letter.
key_pairsNoupdate_join: the join key field pairs, named as they appear on each side's own source.
stackableNoupdate_settings.
transportNoOptional transport request (e.g. DEVK900123). Omit for local objects.
left_aliasNoupdate_join / remove_join: alias of the left input.
cardinalityNoupdate_join: defaults to "CN_N".
input_aliasNoremove_input / update_mapping: alias of the input (e.g. "U1.ADSO.1").
right_aliasNoupdate_join / remove_join: alias of the right input.
default_nodeNoupdate_settings: path reference to the default view node (e.g. "#///U1").
provider_nameNoadd_input: technical name of the source InfoProvider to attach.
provider_typeNoadd_input: TLOGO-style suffix used in the generated alias (e.g. "ADSO"). Defaults to "ADSO".
info_object_nameNoadd_field / remove_field: field name or comma-separated list (e.g. "IOBJ_NAME" or "IOBJ_A,IOBJ_B").
source_providersNoadd_field only. Comma-separated part provider names or aliases (e.g. "PROVIDER_NAME" or "U1.ADSO.1") to restrict which inputs get a mapping. Omit to map the field in every part provider that contains it.
aggregation_behaviourNoupdate_settings.
composite_provider_nameYesTechnical name of the CompositeProvider (e.g. "HCPR_NAME").
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral burden and succeeds admirably. It discloses side effects ('removes the element and all mappings referencing it', 'leaving its elements and any join reference behind'), the mandatory lock_handle return, replacement semantics of update_mapping, and the failure condition 'join fields need at least one common target field' plus the pitfall that 'auto-mapping does not do this'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long by necessity but front-loaded: the critical lock_handle activation requirement appears in the first two sentences. The body is organized under clearly labeled action groups ('Fields:', 'Sources:', 'Mappings:', 'Joins:', 'Settings:'), which aids scanning, though the dense semicolon-separated style makes some clauses hard to parse at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 18 parameters, an 8-action enum, and the absence of any output schema or annotations, the description covers every important behavior: each action's effect, defaults, return lock_handle, the join-failure edge case, and the four settings sub-values. Nothing critical for an agent to invoke this tool correctly remains unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, giving baseline 3, and the description adds meaningful semantics on top: which parameters apply to which of the eight actions, defaults (action 'add_field' is default, provider_type defaults to 'ADSO'), the empty-list-means-one-to-one mapping rule, and examples like 'U1.ADSO.1' and 'DEVK900123'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names the operation verb ('Change'), the resource ('CompositeProvider (HCPR)'), and enumerates what can be changed: 'its fields, its source providers, their field mappings, the join condition, or root settings'. This clearly distinguishes it from siblings like bw_create_composite_provider, bw_get_composite_provider, and bw_activate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the activation workflow: 'Every action returns a lock_handle that must be passed to bw_activate (object type hcpr) — an HCPR cannot be activated without it', naming the alternative tool directly. It also guides usage per action (e.g., 'This is also how an input attached at creation time gets its mappings'), though it never explicitly states 'use bw_create_composite_provider for creation instead'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dnic-dev/bw-modeling-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server