protogrid

Search / io.github.AntoineGou/ssrs2

SSRS2

R0· no sign-in

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

v1.6.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality96new
Trust97of 100
Uptime, 30 days100%
Latency p50521 ms

Connect

8 clients · secrets stay placeholders
{
  "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.

Quality 96 / 100new

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorization100 · weight 15
  • pass
    auth.prmProtected Resource Metadata (RFC 9728) published
  • pass
    auth.as_metadataauthorization server metadata reachable
  • pass
    auth.cimdClient ID Metadata Documents supported
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations6 of 6 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 2,983 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 5 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

6 tools, about 2,983 tokens to load them all · tool set 3eaa6b2eba22 · tools last changed 2026-10-17 · checked 2026-10-20 01:29 UTC

Tool changes

  • describe_reportchangedinput schema
  • validate_reportchangeddescription
    before

    Checks 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"].

    after · 96% of words in common

    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_reportchangeddescription
    before

    Converts 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.

    after · 97% of words in common

    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.

Trust 97 / 100

provenance90
liveness100
freshness100
hygiene100

+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.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://ssrs2.net/mcp streamable-httpnoneyes100%521 ms2026-07-282026-10-19
https://ssrs2.net/mcp/licensed streamable-httpoauth2 AS: https://ssrs2.netyes100%525 ms–2026-10-20
packageregistryversionruntimesecrets
SSRS2.Mcpnuget1.6.0–SSRS2_LICENSE

Tools (6)

compare_reportsread-onlyGroups 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-onlyConverts 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-onlyOutlines 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-onlyChanges 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-onlyRenders 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-onlyChecks 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.

Similar MCP servers

Official server.json
{
  "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."
}