Skip to main content
Glama
bw-modeling-mcp

bw-modeling-mcp

by dnic-dev

bw_write_open_hub

Create or update an Open Hub Destination from a template object, and change table or file options, fields, keys, and notifications for SAP BW/4HANA data extraction.

Instructions

Create or change an Open Hub Destination. The operation enum lists every operation with what it requires; bw_describe(tool: "bw_write_open_hub", operation: "…") gives the complete parameter definition of one.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "operation": "<operation>"
    },
    "name": "bw_write_open_hub"
  }
}

Input Schema

NameRequiredDescriptionDefault
fieldsNoFields to add; existing fields are kept. Full definition: bw_describe(tool: "bw_write_open_hub", operation: "update"). [update]
packageNoDevelopment package (default "$TMP"). [create]
directoryNoDefined per operation — bw_describe(tool: "bw_write_open_hub", operation: "…") gives each definition.
file_nameNoDefined per operation — bw_describe(tool: "bw_write_open_hub", operation: "…") gives each definition.
file_typeNoDefined per operation — bw_describe(tool: "bw_write_open_hub", operation: "…") gives each definition.
info_areaNoInfoArea to create the destination in (e.g. "INFOAREA_NAME"). [create]
operationYesOperation — one of: create: Create an Open Hub Destination (TLOGO DEST) from a template object: the server copies the fields and key of the given aDSO, CompositeProvider or query and gene… Requires open_hub_name, description, info_area, template_object_name. | update: Change an Open Hub Destination (TLOGO DEST): description, the database options of a table destination (write mode, technical key, connection), the file options… Requires open_hub_name.
separatorNoDefined per operation — bw_describe(tool: "bw_write_open_hub", operation: "…") gives each definition.
transportNoTransport request to record the change on. [update]
key_fieldsNoTable only, without technical key. The complete semantic key in order, by field name as bw_get_open_hub lists it (including any $BIC$ prefix); an empty array clears the key. [update]
write_modeNoDefined per operation — bw_describe(tool: "bw_write_open_hub", operation: "…") gives each definition.
descriptionNoDefined per operation — bw_describe(tool: "bw_write_open_hub", operation: "…") gives each definition.
server_nameNoDefined per operation — bw_describe(tool: "bw_write_open_hub", operation: "…") gives each definition.
open_hub_nameNoDefined per operation — bw_describe(tool: "bw_write_open_hub", operation: "…") gives each definition.
remove_fieldsNoField names to remove, including from the key. [update]
rename_fieldsNoFields to rename, as an object of current field name to new field name. A new name has at most 16 characters, starts with a letter and consists of letters, digits and underscores. [update]
connection_typeNoDefined per operation — bw_describe(tool: "bw_write_open_hub", operation: "…") gives each definition.
rfc_destinationNoRFC destination for the notification. [update]
destination_typeNoTAB = database table, FILE = flat file. Default "TAB". [create]
logical_file_nameNoDefined per operation — bw_describe(tool: "bw_write_open_hub", operation: "…") gives each definition.
use_technical_keyNoDefined per operation — bw_describe(tool: "bw_write_open_hub", operation: "…") gives each definition.
db_connection_nameNoDefined per operation — bw_describe(tool: "bw_write_open_hub", operation: "…") gives each definition.
external_format_onNoFields to switch to external format; output type and length follow the modeling tools (CHAR with the display length, STRG for strings). [update]
file_on_app_serverNoDefined per operation — bw_describe(tool: "bw_write_open_hub", operation: "…") gives each definition.
external_format_offNoFields to switch back to internal format. [update]
dtp_external_programNoThe DTP into this destination is started by an external program. [update]
template_object_nameNoTechnical name of the object whose fields and key are copied (an aDSO, a CompositeProvider or a query). [create]
template_object_typeNoType of the template object. Full definition: bw_describe(tool: "bw_write_open_hub", operation: "create"). [create]
send_notification_rfcNoNotify an RFC destination after a load; needs rfc_destination. [update]

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.0.0

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations supplied, the description carries the full behavioral burden, and it does not state that this is a mutating, activating write that alters repository objects. Nothing is said about required authorizations, transport recording, whether an existing destination is overwritten, or what happens on partial failure. Nearly all behavioral detail is deferred to bw_describe, leaving the agent dependent on a second call before understanding the operation's side effects.

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?

Two short sentences, front-loaded with the purpose, with the pointer to the enum and bw_describe placed second where it belongs. Nothing is padded, but the deferral pattern means the text is lean partly by shifting detail rather than by efficiently summarizing it.

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

Completeness3/5

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

For a 29-parameter tool with nested objects, no annotations, and no output schema, the progressive-disclosure design (enum plus bw_describe pointer) is coherent, but the description alone leaves the agent without mutation semantics or authorizations. It is adequate as an entry point, not as a self-contained definition.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3 and the schema already tags each parameter with its applicable operation and notes like "existing fields are kept" and "an empty array clears the key." The description itself adds no parameter meaning; it only points at the enum and bw_describe, so it neither improves nor undermines the schema.

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

Purpose4/5

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

The description names a specific verb pair and resource: "Create or change an Open Hub Destination." The resource is distinctive enough that an agent can separate it from bw_write_adso, bw_write_dtp, and the other bw_write_* siblings without opening a schema, though it never explicitly contrasts itself with them.

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

Usage Guidelines3/5

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

It gives indirect routing advice — check the operation enum for requirements, call bw_describe for a full per-operation parameter definition — which is genuinely useful procedural guidance. It says nothing about when a caller should choose this tool over activating, deleting, or reading an existing destination, and there is no create-vs-update selection advice beyond the schema enum.

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