Search / io.github.AntoineGou/ssrs2
SSRS2
R0· no sign-inMarkdown to editable PowerPoint, Word, PDF; checks, edits and previews RDLC/RDL reports.
v1.6.0 · active · repository · website · descriptor JSON · versions
Search / io.github.AntoineGou/ssrs2
R0· no sign-inMarkdown to editable PowerPoint, Word, PDF; checks, edits and previews RDLC/RDL reports.
v1.6.0 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"ssrs2": {
"type": "http",
"url": "https://ssrs2.net/mcp",
"headers": {
"Authorization": "Bearer ${license_key}"
}
}
}
}claude mcp add --transport http ssrs2 https://ssrs2.net/mcp --header "Authorization: Bearer ${license_key}"[mcp_servers.ssrs2]
url = "https://ssrs2.net/mcp"
bearer_token_env_var = "license_key"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ssrs2": {
"type": "remote",
"url": "https://ssrs2.net/mcp",
"enabled": true,
"headers": {
"Authorization": "Bearer {env:license_key}"
}
}
}
}{
"mcpServers": {
"ssrs2": {
"type": "http",
"url": "https://ssrs2.net/mcp",
"headers": {
"Authorization": "Bearer ${license_key}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=ssrs2&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vc3NyczIubmV0L21jcCIsImhlYWRlcnMiOnsiQXV0aG9yaXphdGlvbiI6IkJlYXJlciAke2xpY2Vuc2Vfa2V5fSJ9fQ%3D%3D"
}{
"servers": {
"ssrs2": {
"type": "http",
"url": "https://ssrs2.net/mcp",
"headers": {
"Authorization": "Bearer ${license_key}"
}
}
}
}{
"mcpServers": {
"ssrs2": {
"httpUrl": "https://ssrs2.net/mcp",
"headers": {
"Authorization": "Bearer ${license_key}"
}
}
}
}extensions:
"ssrs2":
enabled: true
name: "ssrs2"
type: streamable_http
uri: "https://ssrs2.net/mcp"
headers:
"Authorization": "Bearer ${license_key}"
timeout: 300
Placeholders to fill from your own secret store: ${license_key}. The registry never accepts secret values.
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every useauth.prmProtected Resource Metadata (RFC 9728) publishedauth.as_metadataauthorization server metadata reachableauth.cimdClient ID Metadata Documents supportedauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations6 of 6 tools declare readOnlyHint or destructiveHinttools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHinttools.token_costabout 2,983 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes, stability.rug_pulltool history recorded for 5 of the 7 days neededdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packagedescribe_reportchangedinput schemavalidate_reportchangeddescriptionChecks a report definition (RDL or RDLC) or Markdown with the Report Viewer engine: 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"].
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"].
convert_reportchangeddescriptionConverts a report (RDL or RDLC) or Markdown (a document, or slides) with SSRS2, the Report Viewer engine, 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.
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.
Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-0d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://ssrs2.net/mcp streamable-http | none | yes | 100% | 521 ms | 2026-07-28 | 2026-10-19 |
https://ssrs2.net/mcp/licensed streamable-http | oauth2 AS: https://ssrs2.net | yes | 100% | 525 ms | – | 2026-10-20 |
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
SSRS2.Mcp | nuget | 1.6.0 | – | SSRS2_LICENSE |
compare_reportsread-only | 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. |
convert_reportread-only | 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. |
describe_reportread-only | 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). |
edit_reportread-only | 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, subreport, line, rectangle, set, remove, space, move, swap, copy, field, column, remove_column, row, total, group, sort, widths, filter. A new item goes "after" or "before" an item or a role (role:signature), "in" a container or "at":[x, y] cm. Call help: ["textbox","set"] first: their words. |
render_previewread-only | 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. |
validate_reportread-only | 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"]. |
Schemas: list_tools.
{
"name": "io.github.AntoineGou/ssrs2",
"title": "SSRS2",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://ssrs2.net/mcp",
"type": "streamable-http",
"headers": [
{
"name": "Authorization",
"value": "Bearer {license_key}",
"isSecret": true,
"variables": {
"license_key": {
"isSecret": true,
"description": "Your SSRS2 license key (SSRS2-...)."
}
},
"description": "Your SSRS2 license key, optional: without one, PDF and image output carry a trial watermark and calls are limited by address."
}
]
},
{
"url": "https://ssrs2.net/mcp/licensed",
"type": "streamable-http"
}
],
"version": "1.6.0",
"packages": [
{
"version": "1.6.0",
"transport": {
"type": "stdio"
},
"identifier": "SSRS2.Mcp",
"registryType": "nuget",
"environmentVariables": [
{
"name": "SSRS2_LICENSE",
"isSecret": true,
"description": "Your SSRS2 license key. Optional: without one, previews carry a trial watermark."
}
]
}
],
"repository": {
"url": "https://github.com/AntoineGou/SSRS2",
"source": "github"
},
"websiteUrl": "https://ssrs2.net/documentation#agents",
"description": "Markdown to editable PowerPoint, Word, PDF; checks, edits and previews RDLC/RDL reports."
}