About SSRS2
SSRS2 is a .NET RDLC report engine for teams running existing reports on modern .NET across platforms. It renders reports into document, spreadsheet, presentation, web, and image formats, and can validate report definitions.
Key features
- 01Cross-platform RDLC rendering
- 02PDF, Excel, Word, and PPTX export
- 03HTML and image output
- 04Report definition checks
- 05Report Viewer-style interactions
Use cases
- 01Render existing RDLC reports on Linux or Docker
- 02Export reports as editable PowerPoint slides
- 03Check report definitions before rendering
MCP support
SSRS2.Mcp provides tools for coding agents to check and preview reports locally.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://ssrs2.net/mcpclaude mcp add --transport http antoinegou-ssrs2 https://ssrs2.net/mcp{"mcpServers":{"antoinegou-ssrs2":{"type":"http","url":"https://ssrs2.net/mcp"}}}Open in Cursor{"servers":{"antoinegou-ssrs2":{"type":"http","url":"https://ssrs2.net/mcp"}}}Open in VS Code{"mcpServers":{"antoinegou-ssrs2":{"type":"http","url":"https://ssrs2.net/mcp"}}}{"mcpServers":{"antoinegou-ssrs2":{"serverUrl":"https://ssrs2.net/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
https://ssrs2.net/mcpAuth requiredhttps://ssrs2.net/mcp/licensedTools
6| Parameter | Type | Required | Description |
|---|---|---|---|
| help | any | No | true, or topics (["markdown", "decks"]): the reference only. |
| name | string|null | No | The file's name, without its extension (default: the Markdown's title, else report). |
| rdlc | string|null | No | The report definition's XML (RDL or RDLC). Give rdlc or markdown. |
| format | string|null | No | pptx (default), pdf, docx, xlsx, mhtml, tiff, png, csv or xml. |
| culture | string|null | No | The culture of a report that names no Language (en-US, de-CH); left out, en-US. |
| markdown | string|null | No | Markdown's text: a document, or slides with marp: true. Give rdlc or markdown. |
| pictures | object|null | No | The pictures the Markdown names, by its paths: {"images/chart.png": "<base64>"}; 5 MB each, 20 MB in all. |
| parameters | object|null | No | Report parameter values by name (a multi-value one's separated by commas). |
| sampleData | any | No | Rows per dataset: {"DataSet": [{"Field": value}]}, dates as ISO text. Left out, made up from the fields' types. |
Details
From the project READMESSRS2 — 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).
Quick Start
dotnet add package SSRS2.NETCore
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:
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 theSSRS2_LICENSEenvironment variable or callSsrs2.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:
| SSRS2 | ReportViewerCore (free) | Power BI Paginated | |
|---|---|---|---|
| Linux / Docker | ✅ PDF and images included (with libfontconfig1) | ⚠️ HTML, Excel, Word | ❌ Cloud only |
| No GDI+ dependency | ✅ | ❌ System.Drawing | N/A |
| .NET 8 / 9 / 10 | ✅ | ✅ | N/A |
| .NET Framework 4.7.2+ | ✅ | ❌ | N/A |
| macOS / ARM64 | ✅ | ⚠️ Partial | ❌ |
| Self-hosted | ✅ | ✅ | ❌ |
| Support | Sold separately | Community | Microsoft |
| Data sovereignty | ✅ On your infra | ✅ | ❌ Cloud |
Export Formats
| Format | Render String | Extension |
|---|---|---|
| PDF (with hyperlinks) | "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 = trueholds 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,FindDocumentMapNodeandDrillthroughdo what Report Viewer's control does on a click. - AI coding agents:
dnx SSRS2.Mcpgives Claude Code, Cursor or VS Code tools that check and preview the reports they write, on your machine (SSRS2.Mcp).
Platform Support
| Platform | Status |
|---|---|
| Windows x64 | ✅ |
| Linux x64 and ARM64 | ✅ |
| macOS | ✅ |
| Docker containers | ✅ |
| Azure App Service (where ssrs2.net runs) | ✅ |
.NET Framework Support
| Framework | Status |
|---|---|
| .NET Framework 4.7.2 | ✅ |
| .NET Framework 4.8 | ✅ |
| .NET 8.0 (LTS) | ✅ |
| .NET 9.0 | ✅ |
| .NET 10.0 | ✅ |
Migration from Microsoft ReportViewer
// 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
| Resource | Link |
|---|---|
| 🌐 Website | ssrs2.net |
| 🎮 Live Demo | ssrs2.net/demo |
| 🎨 Online Designer (beta) | designer.ssrs2.net |
| 📖 Migration Guide | ssrs2.net/ssrs-to-dotnet-core |
| 📊 Feature Comparison | ssrs2.net/compare |
| 💰 Pricing | ssrs2.net/pricing |
| 📝 Medium Article | SSRS to .NET Core: 3 Options Compared |
| 🤖 Medium Article | Designing SSRS reports with an AI agent |
| 📦 NuGet | nuget.org/packages/SSRS2.NETCore |
Support
| Channel | Purpose |
|---|---|
| GitHub Issues | Bug reports & feature requests |
| ssrs2.net | Documentation & demos |
| [email protected] | Licences, and support or migration help (sold separately) |
SSRS2 — Enterprise Reporting for Modern .NET
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.