Model Context Protocol server for Rollbar
DataArcus for Power BI is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Plan, check and write Power BI reports on your PC after you approve. Arabic RTL and Gulf calendar.
Quickstart
Install it the way its author documents:
The full guide: https://github.com/Antnioo/DataArcus
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts DataArcus for Power BI as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
Install it the way its author documents:
The full guide: https://github.com/Antnioo/DataArcus
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
Lists the tables, visible columns (with types), measures (with formats) and date tables of a model, without changing it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | A Power BI project folder, its .SemanticModel folder, a model.bim or a .pbit, relative to the DataArcus folder |
| tables | array | no | Only these tables, in full (names as read_model lists them). For a large model, after its summary |
Picks which of the model's measures and columns go in each KPI card, chart, table and slicer, the way the DataArcus theme generator does (base measures first, month from the date table, no keys or hidden fields).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | A Power BI project folder, its .SemanticModel folder, a model.bim or a .pbit, relative to the DataArcus folder |
| kpis | integer | no | Number of KPI cards (1-…, as plan_layout and create_report take) |
| focus | string | no | On a large model: the part of the model the user asked about, in their words ("logistics", "sales"). The picks then come from the tables whose name or whose measures' display folder contains it, the t |
| tables | array | no | Instead of a focus: the tables to pick from, by name (the tables related to them and the date table are added) |
| lang | string | no | The report's language: pass it. On a model with columns in both languages (City and المدينة) only the columns in that language are picked (language: what was skipped); an English report uses an Arabic |
Runs the DataArcus Model Health Check: score, and every finding with the objects it concerns (unused columns and measures, risky relationships, slow DAX, date tables...). Reads a project saved by Power BI Desktop (TMDL or model.bim), a model.bim or a .pbit. The model is never changed. Ready fix…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | A Power BI project folder, its .SemanticModel folder, a model.bim or a .pbit, relative to the DataArcus folder |
| maxItems | integer | no | Objects listed per finding |
| weekStart | string | no | The first day of the week, used only when a fix script has to add a weekday number column to sort day names: sunday (default: Saudi Arabia and most of the Gulf), monday (a Saturday-Sunday weekend, as |
| country | string | no | For a Gulf model: the country whose official weekend the calendar is checked against (uae, ksa, qat, kwt, bhr, omn). Giving it adds the gulfCalendar section (not part of the score): Hijri, Ramadan and |
| asOf | string | no | The date the gulfCalendar section counts as today (YYYY-MM-DD; default: today). For tests |
| planId | string | no | The approved plan id (from plan_layout, or from this tool's own answer without one, then approve_plan after the user's go). Without an approved planId this tool writes nothing and answers with what it |
| only | array | no | Only these parts of the answer, for the rest of a list the answer shortened (listsCut says so): finding ids (findings[].id, skipped.checks[].id), fix names (MONTH_SORT, NO_FORMAT, PCT_FORMAT, THOUSAND |
| answers | array | no | Only with the user's own answers to pleaseConfirm questions: { answerKey (from the question), answer: intended (the user says it is right) or mistake }. Recorded in "<model>.dataarcus-answers.json" ne |
| forgetAnswers | boolean | no | The user asked to forget their recorded answers: empties the answers file (after an approved plan) |
| columnTypes | object | no | Only when a TMDL project skipped checks: column types read from the same model open in Power BI Desktop, as { "Table[Column]": type }. The type is a model.bim name (string, int64, double, decimal, dat |
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | The project folder or .SemanticModel folder the report will use |
| planId | string | no | The approved plan id from plan_layout (made with this model's path), after approve_plan with the user's go. Required: without it nothing is written |
| name | string | no | Report name (needed for a new report; customVisualsFrom names its copy after the original) |
| title | string | no | The title in the report's header; without it the header shows the report's name |
| pages | array | no | Hand-placed pages; or give a design instead |
| design | object | no | The design from generate_theme or plan_layout; the layout inputs below change it, as in plan_layout |
| layout | string | no | — |
| kpis | integer | no | — |
| focus | string | no | On a large model: the part of the model the user asked about, in their words ("logistics", "sales"). The picks then come from the tables whose name or whose measures' display folder contains it, the t |
| tables | array | no | Instead of a focus: the tables to pick from, by name (the tables related to them and the date table are added) |
| filters | string | no | — |
| header | boolean | no | — |
| page | no | Power BI page size: 1920x1080 (default), 1280x720, 960x720, or { w, h } (640-3840 x 360-2160, shaped 4:3 to 2.4:1; other sizes are fitted as the website does) | |
| dir | string | no | — |
| secondPage | boolean | no | (Default true.) With a design: a second page in a complementary layout (details after an overview, an overview after analysis), with page buttons |
| slidePanel | boolean | no | (Default false.) With a design: filters as a slide-in panel opened from a Filters button in the header, instead of a filter rail |
| theme | string | no | Theme JSON file (e.g. from the DataArcus theme generator), inside the DataArcus folder |
| fields | object | no | The fields of the approved plan, each written as Table[Field] exactly as read_model lists it. What is given is bound as given and nothing is re-picked for it; what is left out is picked as suggest_fie |
| pageFilters | array | no | Page filters, for a request that limits the report to part of the data (for example "Ramadan only": [{ "field": "Calendar[Is Ramadan]", "values": [true] }]. That keeps every Ramadan of the calendar: f |
| svgColumns | array | no | EXPERIMENTAL. Small pictures drawn per row of a table (a progress bar, a ring, an arrow, a sparkline, a label), from a declarative design. Each is compiled to a report-level measure that exists only i |
Makes a Power BI report theme (JSON) as the DataArcus Theme Generator does. Without an approved planId it writes nothing: it returns the design (pass it to plan_layout and create_report; create_report puts the theme in the report itself), the colours, the readability checks and a proposed planId…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | Theme name; empty or blank gives "My Brand Theme" |
| palette | object | no | — |
| brand | string | no | A brand colour (hex): 8 data colours are generated from it with the harmony |
| harmony | string | no | analogous (default), complementary, triadic or mono |
| preset | string | no | A preset palette: … (default DataArcus) |
| font | string | no | One of: …. For Arabic reports: … |
| chart | object | no | — |
| layout | object | no | Page and style choices that change the theme (text sizes grow with the page, kept within 8-60) |
| mode | string | no | light (default): a near-white page and white visuals; dark only when the user asks for it |
| pageTint | boolean | no | A light design's page is a 6% tint of the lead colour (default); false keeps the plain page. Never on a dark design or over an asked background |
| lang | string | no | Language of the report: names in it, and right to left when dir is not given |
| themeFrom | string | no | With path: the report (its name, as colours.otherReports lists it) whose colours to keep, when the model has several |
| path | string | no | The model the theme is for: when no colours are asked (no palette, brand, preset or mode) and one of its reports has its own theme, the colours start from that theme (said in sayInPlan) |
| folder | string | no | Folder for the theme file, inside the DataArcus folder (default: the DataArcus folder) |
| planId | string | no | The approved plan id (from plan_layout, or from this tool's own answer without one, then approve_plan after the user's go). Without an approved planId this tool writes nothing and answers with what it |
Checks a PBIR report that already exists, whoever built it, and never changes it: Microsoft's report validator (offline: the JSON schemas it would download are checked against Microsoft's own copies bundled with DataArcus; no network connection is opened) and the rules DataArcus measured in Power…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | The report: a .pbip file, a .Report folder, or a folder holding definition/, inside the working folder |
| checks | array | no | Only these checks (default all): validator (Microsoft's, offline, with the bundled schemas), schemas (the bundled schemas alone), sizes, selectors, phone, tooltips, theme, navigation (page buttons), s |
| lang | string | no | The report's language: auto counts the letters of its titles and text boxes (never returned) |
| maxFindings | integer | no | At most this many findings (errors first); counts.byRule always has every count |
Reads a PBIR report that already exists, whoever built it, and never changes it: a compact inventory, one line per visual (its type, place and size on the page, its title when a measure gives it (a typed, static title is never returned, as it can hold a figure or a name: the line says "static…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | The report: a .pbip file, a .Report folder, or a folder holding definition/, inside the working folder |
| pages | array | no | Only these pages (1 is the first in the report's order), for a report too large for one answer |
| format | string | no | text (default): one line per visual, the smallest; json: the same as data |
| from | integer | no | With pages: start the first page asked at this visual (the answer's MORE line, or next.from, gives it when a page is too large for one answer) |
No parameter schema on file.
Writes the DataArcus Calendar Generator's date table for a Gulf model (Hijri year, month and day, Ramadan and Eid flags and Ramadan Day, the UAE's announced Ramadan and Eid dates with later ones marked as estimates, and the official weekend of the chosen country with the dates it changed) as a…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | The model the table is for (read for name clashes and the relateTo columns); the script file goes next to it |
| firstYear | integer | no | First year of the calendar (1 January). Ask the user: the years their data covers. Needed unless arabicColumnsOnly |
| lastYear | integer | no | Last year of the calendar (31 December); at most 60 years in all. Needed unless arabicColumnsOnly |
| arabicColumnsOnly | boolean | no | Only when the user wants Arabic month, day and flag names on their OWN date table, without a report: no new table; the script adds the Arabic calendar columns (each sorted like its English column) to |
| country | string | no | The country whose official weekend the table uses (with the dates it changed) and that the answer names |
| weekend | string | no | country (default): the country's official weekend; or a fixed weekend for a company whose weekend differs |
| announced | boolean | no | Ramadan, Shawwal and Dhu al-Hijjah on the UAE's announced dates (later ones are Umm al-Qura estimates); false: Umm al-Qura only |
| lang | string | no | Language of the month, day and Hijri month names in the table (the column names stay English) |
| arabicNames | boolean | no | Also write Day Name (Arabic), Month Name (Arabic) and Hijri Month Name (Arabic), sorted by their numbers, so an Arabic report can show Arabic names (an English table only: with lang "ar" the names are |
| name | string | no | The new table's name: letters, digits, spaces and _, at most 40 characters. Never the name of a table, measure or column the model has |
| weekStart | string | no | The first day of the week for Day of Week and Week Start |
| fiscalStart | integer | no | The month the fiscal year starts |
| relateTo | array | no | Date columns of the user's fact tables to relate to the new table's Date, as "Table[Column]" (many to one, single direction). Only columns the user names |
| asOf | string | no | The date the self-check counts as today (YYYY-MM-DD; default: today). For tests |
| planId | string | no | The approved plan id (from plan_layout, or from this tool's own answer without one, then approve_plan after the user's go). Without an approved planId this tool writes nothing and answers with what it |
Makes the right-to-left Arabic twin of an existing PBIR report: a new "<name> AR" report and .pbip next to the original (or, with into "same", one copy "<name> (EN-AR)" holding the English pages and their Arabic pages, with a language button on each page to its counterpart and the slicers of each…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | yes | The original report: its .pbip file or its .Report folder, inside the working folder |
| labels | object | no | The Arabic texts the user approved, by the text ids of the plan ({ "page:<id>": "...", "title:<page>/<visual>": "...", "field:<queryRef>": "..." }). A text without a label stays as it is |
| terms | object | no | The terminology sheet's terms the user approved, one Arabic name per field: { "Table[Field]": "الاسم" }, or the field's English name to keep it in English. A term is written on every header of its fie |
| timeRightToLeft | boolean | no | Charts over time (months, dates) run right to left like the rest of the page (default); false keeps time left to right. The user's choice |
| waterfallRtl | yes | — | |
| arabicMonth | boolean | no | Offer (and after the go write) the TMDL script that adds an Arabic month name column to the date table; the user applies it in TMDL view |
| mirrorPicturePages | boolean | no | A page drawn on a background picture is kept left to right by default (Power BI has no setting that mirrors the picture, so mirrored visuals would leave its panels); true mirrors such pages anyway. Th |
| into | string | no | "separate" (the default): the twin is its own report "<name> AR". "same": ONE report holding both languages, a copy "<name> (EN-AR)" next to the original (never the original itself): its English pages |
| tabsShown | string | no | With into "same": the pages shown in the tabs; the other language's are hidden and reached by the language button. "en" (the default) or "ar" |
| textsFrom | integer | no | The plan only: list the texts from this one on (moreTexts.from in an answer that could not list them all); the plan and what is written stay the same |
| planId | string | no | The approved plan id (from plan_layout, or from this tool's own answer without one, then approve_plan after the user's go). Without an approved planId this tool writes nothing and answers with what it |
Asks the person to approve a plan, so the writing tools may write what it lists. Call it only after you showed the user the plan (pages, visuals and fields, page size, the report's name, theme colours and options, the files that will be written) and the user replied go, never in the same turn as…
| Parameter | Type | Required | Notes |
|---|---|---|---|
| planId | string | yes | The proposed plan id |
| reopen | boolean | no | Open the approval window again (the user closed it or can't find it); the same link, still one approval |
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source is public; its licence metadata reads NOASSERTION rather than naming a licence
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install DataArcus for Power BI or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | high | capability blast radius (high) — client exposure if the model is manipulated | −6 |
| verification-discount | repo | publisher verification (public source) — no provenance, but the source is public and inspectable | −1 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
No tools were enumerated, so prompt-injection, capability and toxic-flow analysis had no tool surface to inspect. To grade a package’s real runtime tools, scan the running server: --command "npx -y <package>".
mcp/lib/twin-geometry.mjs (24 KB) was not read: over the file-count budget.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. high is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| No per-tool rows for this release — see the note below. | ||
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
It installs from its repository rather than from a versioned package, so the command cannot be pinned to a release. The history below is for reading; the current release on file is 0.3.2.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish DataArcus for Power BI can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.