SSRS2

io.github.AntoineGouPublished by GitHub account AntoineGouv1.6.0Updated Oct 27, 2026

Markdown to editable PowerPoint, Word, PDF; checks, edits and previews RDLC/RDL reports.

VerifiedStreamable HTTPWeb executableDeveloper ToolsMedia & Design

Overview

AI-generated overview

SSRS2 converts RDLC/RDL reports and Markdown into PDF, Word, PowerPoint, Excel and images, and lets an assistant validate, outline, edit and preview reports.

What you can do
  • Convert reports or Markdown documents and slide decks into pptx, pdf, docx, xlsx, mhtml, tiff, png, csv or xml
  • Validate report definitions and Markdown against the Report Viewer engine, returning diagnostics and runtime counts
  • Outline a report's page, datasets, fields, parameters and items to plan a change
  • Edit report XML through designer operations, applied all-or-nothing, with new problems and pages reported
  • Render page previews as PNG or PDF, with a JSON summary first
  • Group report definitions by structure to plan one change across many similar reports
When to use it
Useful when an assistant writes or maintains RDLC/RDL reports and needs to check, preview or patch them without a Windows Report Viewer, or when Markdown content should become editable PowerPoint, Word or PDF output.
Requirements
Runs as a remote endpoint or as a local .NET tool started with dnx SSRS2.Mcp. A license key is optional: set it as the SSRS2_LICENSE environment variable or an Authorization header. On Linux, fontconfig (libfontconfig1) is needed.
Before you install
Without a license key, PDF and image output carries a trial watermark and remote calls are limited by address; a commercial license is paid (USD 799 a year or USD 1,999 for three years). The edit tool rewrites report definitions, so changes should be reviewed. Large edited reports may be returned as a temporary download link.

Installation

In SourceWeft

  1. Open SSRS2 in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.AntoineGou%2Fssrs2/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "ssrs2": {
      "type": "http",
      "url": "https://ssrs2.net/mcp"
    }
  }
}

README

SSRS2 — Cross-Platform RDLC Report Engine for .NET

Run the RDLC reports you already have on any platform: PDF, Excel, Word, HTML and images, laid out as Microsoft's Report Viewer lays them out.

https://github.com/user-attachments/assets/66406aec-b92b-40cf-b031-2d506de34857

Drop-in replacement for the LocalReport of Microsoft's Report Viewer — runs on Windows, Linux, macOS, Docker, Kubernetes, and cloud environments. No GDI+ and no libgdiplus: on Linux it needs only fontconfig, which most systems have (the official .NET Docker images need libfontconfig1, see below).

[NuGet] [Live Demo] [Website]


Quick Start

bash
dotnet add package SSRS2.NETCore
csharp
using SSRS2.Reporting.NETCore;
var report = new LocalReport();report.LoadReportDefinition(rdlcStream);report.DataSources.Add(new ReportDataSource("Data", yourData));
byte[] pdf = report.Render("PDF");

Your existing .rdlc files work without modification, and your LocalReport code keeps working once its namespace is changed.

In a Linux container, add fontconfig, which the official .NET images lack:

dockerfile
RUN apt-get update && apt-get install -y --no-install-recommends libfontconfig1 && rm -rf /var/lib/apt/lists/*

Free trial — works without a license key. Output includes a small watermark until activated.
Buy a licence at ssrs2.net/pricing: the key arrives by email within a minute. Set it as the SSRS2_LICENSE environment variable or call Ssrs2.License.Activate("your-key").

Try it in the browser — the online designer (beta) opens your .rdlc, previews it as SSRS2 renders it on Linux and exports PDF, Excel or Word. No install; an account is only needed to save reports online.


Why SSRS2?

Microsoft's Report Viewer runs on .NET Framework and Windows only, and has no .NET 8, 9 or 10 version (checked 2026-10-01). Microsoft points to Power BI paginated reports instead, which come with Power BI Pro at USD 14 per user per month. If you have existing RDLC reports and need to run them on modern .NET, your options are limited:

SSRS2ReportViewerCore (free)Power BI Paginated
Linux / Docker✅ PDF and images included (with libfontconfig1)⚠️ HTML, Excel, Word❌ Cloud only
No GDI+ dependency✅❌ System.DrawingN/A
.NET 8 / 9 / 10✅✅N/A
.NET Framework 4.7.2+✅❌N/A
macOS / ARM64✅⚠️ Partial❌
Self-hosted✅✅❌
SupportSold separatelyCommunityMicrosoft
Data sovereignty✅ On your infra✅❌ Cloud

Export Formats

FormatRender StringExtension
PDF (with hyperlinks)"PDF".pdf
Excel"EXCELOPENXML".xlsx
Word"WORDOPENXML".docx
PowerPoint (editable slides)"PPTX".pptx
HTML5"HTML5".html
HTML 4.0"HTML4.0".html
MHTML"MHTML".mhtml
PNG"PNG".png
JPEG"JPEG".jpg
WebP"WEBP".webp
TIFF (all pages)"IMAGE".tif
CSV"CSV".csv
XML"XML".xml

Beyond rendering

  • Check a report without running it: report.CheckDefinition() returns each problem of a definition (its code, item, property and expression), without rendering it.
  • Reports your application did not write: RestrictedCode = true holds their expressions and custom code to what a report computes with: no files, environment, processes or reflection (.NET 8, 9 and 10).
  • PDF settings: the report's title and author, passwords and permissions (AES-256), or PDF/A-2b for archives.
  • A viewer of your own: Toggle, Sort, FindBookmark, FindDocumentMapNode and Drillthrough do what Report Viewer's control does on a click.
  • AI coding agents: dnx SSRS2.Mcp gives Claude Code, Cursor or VS Code tools that check and preview the reports they write, on your machine (SSRS2.Mcp).

Platform Support

PlatformStatus
Windows x64✅
Linux x64 and ARM64✅
macOS✅
Docker containers✅
Azure App Service (where ssrs2.net runs)✅

.NET Framework Support

FrameworkStatus
.NET Framework 4.7.2✅
.NET Framework 4.8✅
.NET 8.0 (LTS)✅
.NET 9.0✅
.NET 10.0✅

Migration from Microsoft ReportViewer

csharp
// Before (Microsoft Report Viewer — Windows only)using Microsoft.Reporting.WinForms;
// After (SSRS2 — runs anywhere)using SSRS2.Reporting.NETCore;
// Same API. Same RDLC files. Any platform.var report = new LocalReport();report.LoadReportDefinition(rdlcStream);report.DataSources.Add(new ReportDataSource("Data", yourData));byte[] pdf = report.Render("PDF");

Migrate at your own pace — SSRS2 supports .NET Framework 4.7.2/4.8 AND .NET 8/9/10. Adopt on your existing .NET Framework app today, move to .NET 10 when ready.

📖 Full migration guide with cost comparison →


Licensing

SSRS2 is a commercial product with a free trial (watermarked output).

  • One licence per company: USD 799 a year, or USD 1,999 for three years — no per-seat or per-server fees
  • Unlimited developers, applications, servers and renders: nothing is counted, and the key is checked offline
  • All features included in every licence, with every release published while it runs; a key keeps working forever with those releases
  • Not included: support, migration help and custom work (sold separately), and shipping SSRS2 inside software other companies install (a separate redistribution licence)

Buy online at ssrs2.net/pricing; the licence terms are one page.


Resources

ResourceLink
🌐 Websitessrs2.net
🎮 Live Demossrs2.net/demo
🎨 Online Designer (beta)designer.ssrs2.net
📖 Migration Guidessrs2.net/ssrs-to-dotnet-core
📊 Feature Comparisonssrs2.net/compare
💰 Pricingssrs2.net/pricing
📝 Medium ArticleSSRS to .NET Core: 3 Options Compared
🤖 Medium ArticleDesigning SSRS reports with an AI agent
📦 NuGetnuget.org/packages/SSRS2.NETCore

Support

ChannelPurpose
GitHub IssuesBug reports & feature requests
ssrs2.netDocumentation & demos
[email protected]Licences, and support or migration help (sold separately)

SSRS2 — Enterprise Reporting for Modern .NET

Source: README.md at commit 5507597

Tools

6

convert_report

Convert a report to a file

Converts a report (RDL or RDLC) or Markdown (a document, or slides) with SSRS2 (Report Viewer's rules) to pptx (PowerPoint's own text boxes, tables and pictures, a slide per page: a Markdown deck becomes a deck), pdf, docx, xlsx, mhtml, tiff, png (the first page), csv or xml. It is checked first, as validate_report checks it: with errors nothing is written. Returns validate_report's answer and written: the file's name and size, url (downloaded once, within ten minutes), curl (the command that saves it), and what it holds read back as PowerPoint (slides) or Word and a PDF reader (document) get it. help: ["answers"] says more.

ParametershelpnamerdlcformatculturemarkdownpicturesparameterssampleData

compare_reports

Group reports by structure

Groups report definitions (RDL or RDLC) by structure, to plan one change across many: a group's reports have the same items, datasets, parameters and code modules and differ only in places, texts and looks, so one set of operations naming their items changes them alike. Returns groups, the largest first: structure (edit_report's structure), roles (what role:signature and the like name there), differs (how its first report differs from the first group's), places (items placed otherwise), and versions: each report and its version.

Parametersdetailreportsrequired

render_preview

Render a report's pages

Renders a report definition (RDL or RDLC) or Markdown (a document, or slides: a page each) with SSRS2, the Report Viewer engine, and returns its pages as PNG, as a PDF of it would show them: a JSON summary first (what validate_report answers, no need to validate first; madeUpRows; conversion for Markdown, what it approximated at its lines; text, what the pages print, page by page in reading order, where values are read exactly), then an image per page, or one image of numbered thumbnails (sheet) to see a deck or a long report whole. A report with errors is not rendered. help: ["answers"] says more.

ParametersdpihelprdlcpagessheetculturemarkdownpicturesfirstPagemadeUpRowsparameterssampleData

describe_report

Outline a report

Outlines a report definition (RDL or RDLC) to plan a change: its page, datasets and fields, parameters, and every item top to bottom with its kind, place and size in cm, what it shows and does (hidden, toggled, page breaks), and its role (title, table, totals, declaration, signature...), which role:signature and the like name in edit_report and validate_report whatever the report calls the item. Returns version (edit_report's baseVersion) and outline; with item, that part's XML as written, with its lines (to copy an edit's find from).

Parametersitempartrdlcrequireddetail

edit_report

Change a report

Changes a report definition (RDL, RDLC) given as its XML by operations (the SSRS2 designer's own), all or none. The text is patched (the rest as it was), then checked: its new problems and pages said. The answer's rdlc is the changed report (past 200 KB, url and curl: a download within ten minutes). Operations ("op"): dataset, parameter, page, header, footer, code, textbox, table, matrix, list, chart, gauge, indicator, databar, sparkline, image, barcode, qrbill, subreport, line, rectangle, set, remove, space, move, swap, copy, field, column, remove_column, row, total, group, sort, widths, filter, restyle, palette. A new item goes "after"/"before" an item or a role (role:signature), in a container or at [x, y] cm. help: ["textbox","set"]: their words.

ParametersfithelprdlccheckeditsdetaildryRunrewritesummarymaxPagespicturesvariants+6 more

validate_report

Validate a report

Checks a report definition (RDL or RDLC) or Markdown with SSRS2's engine (Report Viewer's rules): XML, schema, every expression compiled, then a run with rows through every page. Returns ok, a summary and diagnostics (code, severity, item, property, expression, line, message, hint); atRunTime counts what failed as it ran (#Error cells). Call it after each change until ok is true and atRunTime absent. Expressions are Visual Basic and may only compute (restrictedCode). Also layout, expect, variants, rowCounts and the report as it was (baselineRdlc): help: ["checks"].

ParametershelprdlcexpectlayoutrenderculturemarkdownpicturesvariantsrowCountsmadeUpRowsparameters+2 more

Version history

2
  1. v1.6.0LatestOct 19, 2026
  2. v1.5.0Oct 14, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.