{"ref":"artifact:dnic-dev-bw-modeling-mcp","page":"/artifacts/dnic-dev-bw-modeling-mcp","json":"/artifacts/dnic-dev-bw-modeling-mcp.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"dnic-dev-bw-modeling-mcp","name":"bw-modeling-mcp","artifact_type":"mcp-server","ecosystem":"btp","serves_ecosystems":["abap"],"domain":"ai-and-agents","origin_ring":"independent","description":{"one_line":"Reads, creates and modifies BW/4HANA modelling objects through the same internal APIs Eclipse BWMT and the BW/4HANA Cockpit use — and can run centrally on BTP with each caller reaching BW as themselves.","short":"MCP server for BW/4HANA modelling objects","what_it_solves":"Four APIs rather than one, because BW is four things: the BW Modeling REST API at `/sap/bw/modeling/` for objects, queries and live data; the ADT API for the ABAP and AMDP routines BW generates; the BW/4HANA manage API for the request monitor and runtime; and the Push API for data loads. Beside stdio it runs as an HTTP service on Cloud Foundry behind XSUAA, reaching on-premise, private-cloud and BW Bridge systems through a BTP destination — with principal propagation, so a caller reaches BW as themselves and BW applies their own authorisations rather than a shared technical user's. Two role collections, BW MCP Reader and BW MCP Developer, decide which tools a user is even offered.","when_not_to_use":"Its README says it plainly and so does this entry: this is not a simulation, every tool call reaches a live BW system, and write operations produce real changes. BW modelling objects are the definition of a warehouse — the blast radius of a wrong one is every report built on it."},"links":{"npm":"https://www.npmjs.com/package/bw-modeling-mcp","repo":"https://github.com/dnic-dev/bw-modeling-mcp"},"identity":{"license":"MIT"},"compat":{"runtimes":["node"],"deployment":["cf","local"]},"provides":[{"capability":"capability:agent-code-access","what_it_does":"Puts BW/4HANA's own modelling surface in front of an agent — objects, queries, the generated ABAP and AMDP routines, the request monitor and data loads — rather than a generic database or a read-only view of it.","sources":[{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-10","quote":"reading, creating and modifying BW modeling objects via the same internal SAP APIs that Eclipse BWMT and the BW/4HANA Cockpit use"}],"facets":[{"key":"activate","value":true,"source":{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"Activate BW objects (aDSO, InfoObject, Transformation, DTP, DataSource, CompositeProvider)"}},{"key":"create_objects","value":true,"source":{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"Create a new aDSO — from an aDSO template, from a DataSource (RSDS) template, or empty"}},{"key":"read_source","value":true,"source":{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"the **ADT API** (`/sap/bc/adt/`) for the ABAP and AMDP routines BW generates"}},{"key":"search_objects","value":true,"source":{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"Search BW objects by name or description (wildcards supported), filtered by type"}},{"key":"table_data","value":true,"source":{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"Execute a BEx Query or preview data from any InfoProvider (aDSO, CompositeProvider) — returns a formatted result table"}},{"key":"transports","value":true,"source":{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"Transport request assignment — add a user task (sub-request) to a workbench transport"}},{"key":"where_used","value":true,"source":{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"Where-used / dependency analysis (xref) for any BW object"}},{"key":"write_source","value":true,"source":{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"Set field routines — ABAP and AMDP (StepRoutine)"}}]},{"capability":"capability:tool-governance","what_it_does":"Answers who the agent is rather than only what it may call: principal propagation so BW applies the caller's own authorisations, and two role collections deciding which tools each user is offered at all.","sources":[{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-10","quote":"principal propagation, where each caller reaches BW as themselves and BW applies their own authorizations"}]},{"capability":"capability:analytic-modelling","what_it_does":"Reads, creates and modifies BW/4HANA's own modelling objects and queries through the APIs Eclipse BWMT uses, so the warehouse's model is editable from an agent rather than only from its own tooling.","sources":[{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-10"}]},{"capability":"capability:warehouse-loading","what_it_does":"Reaches the loading side of BW as well as the modelling side — the Push API for data loads and the manage API for the request monitor and runtime.","sources":[{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-10"}]}],"provenance":{"discovered_via":[{"source":"source:sap-ai-mcp-servers"}],"first_seen":"2026-09-10"},"history":[{"date":"2026-09-10","field":"entry","from":null,"to":"created","reason":"Triaged out of data/crawled/mcp-candidates.json, the sap-ai-mcp-servers sweep. Filed on the BTP door: Datasphere, Analytics Cloud, Business Data Cloud, BW/4HANA and HANA Cloud are BTP services, and the atlas has no data-and-analytics door — an open question recorded in docs/NEIGHBOURS.md rather than settled by a placement. Written from the repository's own README."},{"date":"2026-09-10","field":"provides","from":null,"to":"capability:analytic-modelling","reason":"capability:analytic-modelling was named the same day. Until then this artifact answered only \"is an MCP server\", which said what it is and not what it is for."},{"date":"2026-09-10","field":"provides","from":null,"to":"capability:warehouse-loading","reason":"capability:warehouse-loading was named the same day. Until then this artifact answered only \"is an MCP server\", which said what it is and not what it is for."},{"date":"2026-09-10","field":"requires","from":null,"to":"external:sap-bw4hana","reason":"BW/4HANA entered as an external rather than a service — it is installed software with releases, not something you subscribe to and bind — which finally gave this edge something to point at."}],"requires":[{"ref":"external:sap-bw4hana","for":"Every tool call reaches a live BW system through its modelling, ADT, manage and Push APIs; there is nothing to run against without one, on-premise, private cloud or BW Bridge.","sources":[{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-10","quote":"Every tool call connects to a live BW system"}]}],"type_properties":{"runs":{"value":["central-server","local-process"],"sources":[{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"or **centrally hosted** on SAP BTP Cloud Foundry behind XSUAA OAuth for a whole team"},{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"Locally as a **stdio** server (one user, one machine — the steps below)"}]},"transports":{"value":["stdio","http"],"sources":[{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"Besides stdio, the server can run as an HTTP service on SAP BTP Cloud Foundry with XSUAA"}]},"auth":{"value":["basic","oauth","principal-propagation","destination","browser-sso"],"sources":[{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"(`BasicAuthentication`) or **principal propagation**, where each caller reaches BW as"},{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"OAuth in front and a BTP destination behind — either a shared technical user"},{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"Path to a browser-exported cookie file for SAML-/OAuth-fronted systems (e.g. BW Bridge)."}]},"tool_count":{"value":99,"source":{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"(99 tools)"}},"read_only":{"value":false,"source":{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"write operations produce real changes."}},"guardrails":[{"source":{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"Two role collections decide what a user is offered: **BW MCP Reader** and **BW MCP Developer**."}},{"source":{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"A new tool stays unavailable to read-only callers until it is explicitly classified as a"}},{"source":{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"XSUAA logs every login; with principal propagation the BW session log shows the real user"}},{"source":{"url":"https://github.com/dnic-dev/bw-modeling-mcp","title":"bw-modeling-mcp — README","checked":"2026-09-11","quote":"write operations produce real changes."}}]},"drafted_with_ai":true,"maintainers":["actor:dnic-dev"],"contributors":["actor:davidnicolaynl","actor:dnic-dev","actor:marianfoo"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"good","evidence":"released this month"},{"label":"Continuity","tier":"good","evidence":"3 contributors, 1 publisher"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"unknown","evidence":"no BTP release lines in the atlas"},{"label":"Survived majors","tier":"unknown","evidence":"no BTP release lines in the atlas"},{"label":"Maintainer's CI","tier":"fair","evidence":"no CI configured"}],"practice":[{"label":"Tests","tier":"good","evidence":"npm test"},{"label":"Docs","tier":"good","evidence":"docs/ with 2 pages, README 17 KB"},{"label":"Changelog","tier":"good","evidence":"CHANGELOG in the repo"}],"reach":[{"value":88,"unit":"installs/week","note":"More people watching than installing — noticed deliberately rather than pulled in."},{"value":74,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","latest_version":"1.8.1","majors":{"1":{"version":"1.0.0","date":"2026-07-19"},"0.6":{"version":"0.6.0","date":"2026-05-10"},"0.7":{"version":"0.7.0","date":"2026-05-21"},"0.8":{"version":"0.8.0","date":"2026-06-09"},"0.9":{"version":"0.9.2","date":"2026-07-02"}},"license":"MIT","first_release":"2026-05-10","last_release":"2026-10-15","releases":16,"cadence_days":10,"maintainers":1,"repository":"git+https://github.com/dnic-dev/bw-modeling-mcp.git","peer_cds":null,"test_script":true,"types":false,"downloads_weekly":88,"stars":74,"forks":27,"open_issues":2,"archived":false,"pushed_at":"2026-10-15","license_spdx":"MIT","org_owned":false,"default_branch":"main","contributors":3,"tree_truncated":false,"test_files":0,"workflows":0,"other_ci":false,"readme_bytes":17564,"docs_files":2,"changelog":true,"license_file":true,"dts_files":0,"readme_path":"README.md","readme_sha":"c146f4d4b81b6bab3df527d90ba4f802ae54677b","months_since_release":0,"dormant":false,"repository_directory":null,"first_commit":"2026-04-16","last_commit":"2026-10-15","commits":161,"dependencies":5,"node_engine":">=22.0.0","downloads_monthly":506,"created_at":"2026-03-18T19:45:04Z","open_prs":1,"repo_read":"2026-10-26"},"release_notes":{"license":"MIT","quotable":true,"source":{"kind":"npm","path":"CHANGELOG.md","version":"1.8.1","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md"},"format":"headings","releases":[{"version":"1.8.1","date":"2026-10-15","date_source":"heading","heading":"[1.8.1] — 2026-10-15","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#181--2026-10-15","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"4d1ffcbc94c0c36f"},{"version":"1.8.0","date":"2026-10-15","date_source":"heading","heading":"[1.8.0] — 2026-10-15","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#180--2026-10-15","sections":[{"kind":"feature","heading":"Added","items":10},{"kind":"feature","heading":"Improved","items":6},{"kind":"fix","heading":"Fixed","items":13},{"kind":"other","heading":"Notes","items":1}],"hash":"e80c91030946c7c5"},{"version":"1.7.1","date":"2026-10-01","date_source":"heading","heading":"[1.7.1] — 2026-10-01","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#171--2026-10-01","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"71521faba0e442e6"},{"version":"1.7.0","date":"2026-10-01","date_source":"heading","heading":"[1.7.0] — 2026-10-01","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#170--2026-10-01","sections":[{"kind":"feature","heading":"Added","items":11},{"kind":"feature","heading":"Improved","items":15},{"kind":"fix","heading":"Fixed","items":21},{"kind":"other","heading":"Notes","items":6}],"hash":"0d604448cb4ce365"},{"version":"1.6.0","date":"2026-09-21","date_source":"heading","heading":"[1.6.0] — 2026-09-21","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#160--2026-09-21","sections":[{"kind":"fix","heading":"Fixed","items":5},{"kind":"feature","heading":"Added","items":2},{"kind":"other","heading":"Notes","items":1}],"hash":"9b0aae27c3fd3d08"},{"version":"1.5.0","date":"2026-09-17","date_source":"heading","heading":"[1.5.0] — 2026-09-17","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#150--2026-09-17","sections":[{"kind":"feature","heading":"Added","items":13},{"kind":"feature","heading":"Improved","items":7},{"kind":"fix","heading":"Fixed","items":5}],"hash":"e12849141e097ae8"},{"version":"1.4.1","date":"2026-09-06","date_source":"heading","heading":"[1.4.1] — 2026-09-06","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#141--2026-09-06","sections":[{"kind":"fix","heading":"Fixed","items":5},{"kind":"feature","heading":"Improved","items":1},{"kind":"other","heading":"Notes","items":1}],"hash":"e6dec1996bfbb247"},{"version":"1.4.0","date":"2026-08-20","date_source":"heading","heading":"[1.4.0] — 2026-08-20","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#140--2026-08-20","sections":[{"kind":"feature","heading":"Added","items":6},{"kind":"feature","heading":"Improved","items":4},{"kind":"fix","heading":"Fixed","items":5},{"kind":"other","heading":"Notes","items":2}],"hash":"e3d8c22e9281a267"},{"version":"1.3.0","date":"2026-08-04","date_source":"heading","heading":"[1.3.0] — 2026-08-04","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#130--2026-08-04","sections":[{"kind":"feature","heading":"Added","items":3},{"kind":"feature","heading":"Improved","items":2},{"kind":"fix","heading":"Fixed","items":4},{"kind":"other","heading":"Notes","items":1}],"hash":"5dc10837173ef243"},{"version":"1.2.1","date":"2026-08-03","date_source":"heading","heading":"[1.2.1] — 2026-08-03","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#121--2026-08-03","sections":[{"kind":"fix","heading":"Fixed","items":2},{"kind":"other","heading":"Notes","items":2}],"hash":"bccbafffb111b85d"},{"version":"1.2.0","date":"2026-07-29","date_source":"heading","heading":"[1.2.0] — 2026-07-29","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#120--2026-07-29","sections":[{"kind":"feature","heading":"Added","items":5},{"kind":"feature","heading":"Improved","items":2},{"kind":"fix","heading":"Fixed","items":1},{"kind":"other","heading":"Notes","items":4}],"hash":"f394898d479fb8f0"},{"version":"1.1.0","date":"2026-07-23","date_source":"heading","heading":"[1.1.0] — 2026-07-23","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#110--2026-07-23","sections":[{"kind":"feature","heading":"Added","items":2},{"kind":"feature","heading":"Improved","items":1},{"kind":"fix","heading":"Fixed","items":2}],"hash":"24203ef16e901569"},{"version":"1.0.0","date":"2026-07-17","date_source":"heading","heading":"[1.0.0] — 2026-07-17","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#100--2026-07-17","sections":[{"kind":"feature","heading":"Added","items":5},{"kind":"feature","heading":"Improved","items":2},{"kind":"fix","heading":"Fixed","items":6}],"hash":"b72c0cab6d55ba72"},{"version":"0.9.2","date":"2026-07-02","date_source":"heading","heading":"[0.9.2] — 2026-07-02","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#092--2026-07-02","sections":[{"kind":"feature","heading":"Added","items":1},{"kind":"feature","heading":"Improved","items":1}],"hash":"022a2c459f16d09b"},{"version":"0.9.1","date":"2026-06-27","date_source":"heading","heading":"[0.9.1] — 2026-06-27","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#091--2026-06-27","sections":[{"kind":"fix","heading":"Fixed","items":1}],"hash":"93e16cc13f5896d6"},{"version":"0.9.0","date":"2026-06-27","date_source":"heading","heading":"[0.9.0] — 2026-06-27","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#090--2026-06-27","sections":[{"kind":"feature","heading":"Added","items":14},{"kind":"feature","heading":"Improved","items":3},{"kind":"other","heading":"Notes","items":2}],"hash":"cee858db6549e3cb"},{"version":"0.8.0","date":"2026-06-09","date_source":"heading","heading":"[0.8.0] — 2026-06-09","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#080--2026-06-09","sections":[{"kind":"feature","heading":"Added","items":9},{"kind":"feature","heading":"Improved","items":2},{"kind":"fix","heading":"Fixed","items":5},{"kind":"other","heading":"Notes","items":2}],"hash":"47d8c7165fa6c021"},{"version":"0.7.0","date":"2026-05-21","date_source":"heading","heading":"[0.7.0] — 2026-05-21","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#070--2026-05-21","sections":[{"kind":"feature","heading":"Added","items":3},{"kind":"other","heading":"Notes","items":2}],"hash":"d7ab0ddca29b9b88"},{"version":"0.6.0","date":"2026-05-10","date_source":"heading","heading":"[0.6.0] — 2026-05-10","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#060--2026-05-10","sections":[{"kind":"feature","heading":"Added","items":5}],"hash":"a01acb23f15f369c"},{"version":"0.5.0","date":"2026-05-03","date_source":"heading","heading":"[0.5.0] — 2026-05-03","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#050--2026-05-03","sections":[{"kind":"feature","heading":"Added","items":2},{"kind":"feature","heading":"Improved","items":2}],"hash":"a4ae1ebfb7bb0d94"},{"version":"0.4.0","date":"2026-04-26","date_source":"heading","heading":"[0.4.0] — 2026-04-26","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#040--2026-04-26","sections":[{"kind":"feature","heading":"Added","items":5},{"kind":"feature","heading":"Improved","items":5}],"hash":"07db3a1a92ec14c4"},{"version":"0.3.0","date":"2026-04-24","date_source":"heading","heading":"[0.3.0] — 2026-04-24","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#030--2026-04-24","sections":[{"kind":"feature","heading":"Added","items":5}],"hash":"ba561dedb5b81986"},{"version":"0.2.0","date":"2026-04-19","date_source":"heading","heading":"[0.2.0] — 2026-04-19","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#020--2026-04-19","sections":[{"kind":"feature","heading":"Added","items":1}],"hash":"9ddc92fdf06c436f"},{"version":"0.1.0","date":"2026-04-17","date_source":"heading","heading":"[0.1.0] — 2026-04-17","url":"https://github.com/dnic-dev/bw-modeling-mcp/blob/main/CHANGELOG.md#010--2026-04-17","sections":[{"kind":"feature","heading":"Added","items":9}],"hash":"f68ebeb64f19a9c8"}],"versions":[{"version":"1.8.1","date":"2026-10-15"},{"version":"1.8.0","date":"2026-10-15"},{"version":"1.7.1","date":"2026-10-01"},{"version":"1.6.0","date":"2026-09-21"},{"version":"1.5.0","date":"2026-09-17"},{"version":"1.4.1","date":"2026-09-06"},{"version":"1.4.0","date":"2026-08-20"},{"version":"1.3.0","date":"2026-08-04"},{"version":"1.2.1","date":"2026-08-03"},{"version":"1.2.0","date":"2026-07-30"},{"version":"1.1.0","date":"2026-07-23"},{"version":"1.0.0","date":"2026-07-19"},{"version":"0.9.2","date":"2026-07-02"},{"version":"0.8.0","date":"2026-06-09"},{"version":"0.7.0","date":"2026-05-21"},{"version":"0.6.0","date":"2026-05-10"}],"crawled_at":"2026-10-25"},"edges":{"maintainers":[{"ref":"actor:dnic-dev","name":"dnic-dev","json":"/actors/dnic-dev.json"}],"contributors":[{"ref":"actor:davidnicolaynl","name":"DavidNicolayNL","json":"/actors/davidnicolaynl.json"},{"ref":"actor:dnic-dev","name":"dnic-dev","json":"/actors/dnic-dev.json"},{"ref":"actor:marianfoo","name":"Marian Zeis","json":"/actors/marianfoo.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}