# RDL MCP Server

Reads and updates SSRS report files using structured tool calls instead of raw XML edits.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 13
- Author: bethmaloney
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/bethmaloney/rdl-mcp
- Updated: 2025-11-24
- HTML: https://affpapa.org/en/nevibecode/mcp/rdl-mcp-server

## What it does

Editing RDL files by hand usually means scrolling through thousands of lines of XML. This server provides clean inspection tools that return JSON for report parameters, column schemas, and dataset fields.

On the editing side, the assistant can update column widths, rename headers, append totals to footers, and swap stored procedures. An XML validation command runs after updates to catch broken markup early.

Execution depends on Python 3.8+ and `uvx`. At the moment, the tool works only with Tablix tables: chart components and matrix layouts remain unsupported.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `RDL_MCP_LOG_LEVEL`, `RDL_MCP_LOG_FILE` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env RDL_MCP_LOG_LEVEL=<RDL_MCP_LOG_LEVEL> --env RDL_MCP_LOG_FILE=<RDL_MCP_LOG_FILE> --transport stdio rdl-mcp-server -- uvx rdl-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from rdl-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add rdl-mcp-server --env RDL_MCP_LOG_LEVEL=<RDL_MCP_LOG_LEVEL> --env RDL_MCP_LOG_FILE=<RDL_MCP_LOG_FILE> -- uvx rdl-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from rdl-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "rdl-mcp-server": {
            "command": "uvx",
            "args": [
                "rdl-mcp"
            ],
            "env": {
                "RDL_MCP_LOG_LEVEL": "<RDL_MCP_LOG_LEVEL>",
                "RDL_MCP_LOG_FILE": "<RDL_MCP_LOG_FILE>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from rdl-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "rdl-mcp-server": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "rdl-mcp"
            ],
            "env": {
                "RDL_MCP_LOG_LEVEL": "<RDL_MCP_LOG_LEVEL>",
                "RDL_MCP_LOG_FILE": "<RDL_MCP_LOG_FILE>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from rdl-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e RDL_MCP_LOG_LEVEL=<RDL_MCP_LOG_LEVEL> -e RDL_MCP_LOG_FILE=<RDL_MCP_LOG_FILE> rdl-mcp-server uvx rdl-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from rdl-mcp <command>

## When to use it
- inspect datasets, parameters, and columns inside `.rdl` files
- adjust column widths and header text without touching XML tags
- update stored procedure names attached to report datasets
- append new fields and calculate sums in table footers

## Example prompts
- Show me the datasets and parameters defined in `report.rdl`.
- Set the width of the `Account Number` column to 2 inches in `report.rdl`.
- Add a `TaxAmount` column to `sales.rdl` with a sum in the footer.

## Similar
- [pbirb-mcp](https://affpapa.org/en/nevibecode/mcp/pbirb-mcp.md) — MCP server · ★ 6
- [report-generator](https://affpapa.org/en/nevibecode/skills/report-generator.md) — skill · 5200 installs
- [Excel MCP Server (FsOpenXmlDsl)](https://affpapa.org/en/nevibecode/mcp/excel-mcp-server-fsopenxmldsl.md) — MCP server · ★ 9
- [minimax-pdf](https://affpapa.org/en/nevibecode/skills/nexu-io-minimax-pdf.md) — skill · 2800 installs
- [data-storytelling](https://affpapa.org/en/nevibecode/skills/data-storytelling.md) — skill · 16782 installs
- [build-report](https://affpapa.org/en/nevibecode/skills/build-report.md) — skill · 4 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
