Majorsilence.Reporting.Mcp
27.0.0-alpha.8
dotnet tool install --global Majorsilence.Reporting.Mcp --version 27.0.0-alpha.8
dotnet new tool-manifest
dotnet tool install --local Majorsilence.Reporting.Mcp --version 27.0.0-alpha.8
#tool dotnet:?package=Majorsilence.Reporting.Mcp&version=27.0.0-alpha.8&prerelease
nuke :add-package Majorsilence.Reporting.Mcp --version 27.0.0-alpha.8
Majorsilence.Reporting.Mcp
An MCP server that lets an AI assistant work with Majorsilence Reporting RDL/RDLC reports: render them, inspect their structure, lint them for engine compatibility, and scaffold new ones — all in-process against the reporting engine, no GUI required.
It is a dotnet global tool that speaks MCP over stdin/stdout.
assistant ──MCP/stdio──▶ majorsilence-report-mcp ──▶ Majorsilence.Reporting engine
Install
dotnet tool install -g Majorsilence.Reporting.Mcp
Point a client at it
Claude Code:
claude mcp add majorsilence-report -- majorsilence-report-mcp
Any client that launches MCP servers itself (Claude Desktop, editors, agent frameworks) takes the same command in its own configuration format:
{
"mcpServers": {
"majorsilence-report": { "command": "majorsilence-report-mcp" }
}
}
The server takes no options. --help prints a summary.
Tools
| Tool | Arguments | Does |
|---|---|---|
report_formats |
— | Lists the output formats report_render accepts. |
report_inspect |
path | xml, dataSourceReferencePassword? |
Parses a report and returns its structure as JSON — name, page size, margins, parameters (type, prompt, nullable, multi-value, defaults), datasets and fields, data sources and providers, a body-item summary, and any parse errors/warnings. |
report_lint |
path | xml |
Runs the same compatibility checks as the rdl-doctor CLI (Tablix, Gauge/Indicator/Sparkline/Map, Lookup*, unknown elements, unresolved subreports/images, …) and returns the findings. |
report_render |
format, path | xml, parameters?, connectionStringOverride?, outputPath?, dataSourceReferencePassword? |
Renders to pdf, html, mhtml, xml, csv, rtf, xlsx, xlsx_table, tif or tifbw. Writes to outputPath and returns a summary, or returns the result inline (text formats as text, binary as base64, up to ~8 MB). |
report_scaffold |
spec (JSON), outputPath? |
Builds a minimal, valid RDL from a small spec — title, optional data source + dataset + query, an optional table over the dataset's fields, optional free-standing textboxes — and validates it by parsing before returning. |
A report is given either as a file path (subreports, images and shared data-source references
resolve relative to its directory) or as inline xml.
report_scaffold spec
{
"name": "Sales by region",
"description": "optional",
"author": "optional",
"pageWidth": "8.5in",
"pageHeight": "11in",
"dataSource": { "name": "DS1", "provider": "Microsoft.Data.Sqlite", "connectionString": "Data Source=sales.db;" },
"dataSet": {
"name": "Data",
"query": "SELECT Region, Total FROM Sales",
"fields": [
{ "name": "Region", "type": "System.String" },
{ "name": "Total", "type": "System.Decimal" }
]
},
"table": { "columns": [ { "field": "Region", "header": "Region" }, { "field": "Total", "header": "Total", "width": "1in" } ] },
"textboxes": [ { "text": "Sales by region", "top": "0in", "left": "0in", "width": "6in", "height": "0.3in", "bold": true, "fontSize": "16pt" } ]
}
Every part except name is optional. With no dataSet/table you get a static report of just the
textboxes.
Driving the visual designer
Designer-GUI automation is a separate concern and this server does not do it. ReportDesigner
is a Majorsilence.Forms app, so drive its UI
with Majorsilence.Forms.Mcp pointed at
the designer's WebDriverServer endpoint, and register both servers with your client:
claude mcp add majorsilence-report -- majorsilence-report-mcp
claude mcp add majorsilence-designer -- majorsilence-mcp --port 4444
Notes
- No font installation is required. When a report asks for Arial / Times New Roman / Courier New /
Calibri / Cambria and those aren't on the machine, the renderer substitutes the
metric-compatible fonts bundled with
Majorsilence.Forms.Drawing.Common(Liberation, Carlito, Caladea, plus Noto for wide Unicode coverage), so PDF/image output looks right on a bare Linux container. Installing the real fonts (ttf-mscorefonts-installer) only matters if you need those exact typefaces rather than close equivalents. report_renderconnects to the report's data source. PassconnectionStringOverrideto point it somewhere else, or scaffold/inspect without ever connecting.
Part of Majorsilence Reporting.
License
Tri-licensed — take your pick:
- MIT License — see
LICENSE-MIT - Apache License 2.0 — see
LICENSE-APACHE - BSD 2-Clause License — see
LICENSE-BSD
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 27.0.0-alpha.8 | 54 | 11/2/2026 |
| 27.0.0-alpha.6 | 53 | 10/28/2026 |
| 27.0.0-alpha.5 | 69 | 10/23/2026 |
| 27.0.0-alpha.4 | 61 | 10/21/2026 |
| 27.0.0-alpha.3 | 64 | 10/20/2026 |
| 27.0.0-alpha.2 | 63 | 10/13/2026 |
| 27.0.0-alpha.1 | 63 | 10/10/2026 |