# quario

Validates JSON report definitions and renders them as PDF, Excel, Word, HTML, or CSV files. It helps agents turn structured data into reports.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 1
- Author: getquario
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/getquario/mcp
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/mcp/quario

## What it does

quario exposes two MCP tools. `validate_report` checks a report definition, while `render_report` writes the result to disk. The same JSON definition can target `pdf`, `xlsx`, `docx`, `html`, or `csv`. Validation problems include the path of the faulty field, so an agent can revise that part and try again.

The server runs locally over stdio and starts with `npx -y @quario/mcp`. A render response contains the output path and file size rather than file bytes. Existing filenames are preserved: the server appends `-1`, then `-2`, when needed.

Node 22 or later is required. Without `QUARIO_LICENSE`, the server still starts, but every rendered report carries an unlicensed mark. `QUARIO_DATA_ROOT` controls where `dataPath` can read from, while `QUARIO_OUT_DIR` selects the output directory. Query budgets and allowed link schemes also come from the launch environment, not from tool arguments. Without Node 22, the server will not start.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `QUARIO_LICENSE`, `QUARIO_DATA_ROOT`, `QUARIO_OUT_DIR`, `QUARIO_LOCALE`, `QUARIO_CURRENCY`, `QUARIO_TIME_ZONE` — 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 QUARIO_LICENSE=<QUARIO_LICENSE> --env QUARIO_DATA_ROOT=<QUARIO_DATA_ROOT> --env QUARIO_OUT_DIR=<QUARIO_OUT_DIR> --env QUARIO_LOCALE=<QUARIO_LOCALE> --env QUARIO_CURRENCY=<QUARIO_CURRENCY> --transport stdio quario -- npx -y @quario/mcp
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Codex

**Platform CLI**
```bash
codex mcp add quario --env QUARIO_LICENSE=<QUARIO_LICENSE> --env QUARIO_DATA_ROOT=<QUARIO_DATA_ROOT> --env QUARIO_OUT_DIR=<QUARIO_OUT_DIR> --env QUARIO_LOCALE=<QUARIO_LOCALE> --env QUARIO_CURRENCY=<QUARIO_CURRENCY> -- npx -y @quario/mcp
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "quario": {
            "command": "npx",
            "args": [
                "-y",
                "@quario/mcp"
            ],
            "env": {
                "QUARIO_LICENSE": "<QUARIO_LICENSE>",
                "QUARIO_DATA_ROOT": "<QUARIO_DATA_ROOT>",
                "QUARIO_OUT_DIR": "<QUARIO_OUT_DIR>",
                "QUARIO_LOCALE": "<QUARIO_LOCALE>",
                "QUARIO_CURRENCY": "<QUARIO_CURRENCY>"
            }
        }
    }
}
```
Replace <…> with your own values. 1 more environment variable is in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "quario": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@quario/mcp"
            ],
            "env": {
                "QUARIO_LICENSE": "<QUARIO_LICENSE>",
                "QUARIO_DATA_ROOT": "<QUARIO_DATA_ROOT>",
                "QUARIO_OUT_DIR": "<QUARIO_OUT_DIR>",
                "QUARIO_LOCALE": "<QUARIO_LOCALE>",
                "QUARIO_CURRENCY": "<QUARIO_CURRENCY>"
            }
        }
    }
}
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e QUARIO_LICENSE=<QUARIO_LICENSE> -e QUARIO_DATA_ROOT=<QUARIO_DATA_ROOT> -e QUARIO_OUT_DIR=<QUARIO_OUT_DIR> -e QUARIO_LOCALE=<QUARIO_LOCALE> -e QUARIO_CURRENCY=<QUARIO_CURRENCY> quario npx -y @quario/mcp
```
Replace <…> with your own values. 1 more environment variable is in the server README

## When to use it
- validate a report definition before rendering
- turn JSON data into a PDF report
- export one definition to Excel, Word, HTML, or CSV
- locate a faulty field in a report definition
- write rendered files to a selected directory

## Example prompts
- Validate this report definition for the requested output formats and list the fields that need fixing.
- Render these order records as a PDF with product and total columns, then return the file path.
- Create `xlsx`, `docx`, and `html` files from this JSON definition without overwriting existing outputs.

## Similar
- [Excel MCP Server](https://affpapa.org/en/nevibecode/mcp/excel-mcp-server.md) — MCP server · ★ 4268
- [kordoc](https://affpapa.org/en/nevibecode/mcp/kordoc.md) — MCP server · ★ 2795
- [Power BI Authoring MCP Server (Local)](https://affpapa.org/en/nevibecode/mcp/power-bi-authoring-mcp-server-local.md) — MCP server · ★ 1248
- [Microsoft 365 MCP Server](https://affpapa.org/en/nevibecode/mcp/microsoft-365-mcp-server.md) — MCP server · ★ 1085
- [anymd](https://affpapa.org/en/nevibecode/mcp/anymd.md) — MCP server · ★ 1054
- [Docling MCP](https://affpapa.org/en/nevibecode/mcp/docling-mcp.md) — MCP server · ★ 779

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