Skip to content

Configuration

Rod Christiansen edited this page Sep 3, 2026 · 1 revision

Configuration

All configuration is environment variables, read once in src/reportmate_mcp/config.py when the first tool call constructs the API client. There is no config file and no command-line flags.

Variables

Variable Required Default What it does
REPORTMATE_API_URL yes none Base URL of your ReportMate API. A trailing slash is stripped.
REPORTMATE_API_KEY one of the two none Scoped API key. Sent as the X-API-Key header.
REPORTMATE_PASSPHRASE one of the two none Shared client passphrase. Sent as the X-Client-Passphrase header.

REPORTMATE_API_URL must be set or startup of the client raises REPORTMATE_API_URL not set. At least one of REPORTMATE_API_KEY or REPORTMATE_PASSPHRASE must be set or it raises no credential.

Credential precedence

If both are set, the API key wins — Config.auth_header() returns X-API-Key and the passphrase is never sent. The passphrase is a fallback for deployments that have not issued keys yet.

Prefer a key: it is revocable and scope-limited, and this server only ever issues GET requests, so a read-scoped key is sufficient. A passphrase is shared fleet-wide and cannot be scoped down.

Setting them

For a shell session:

export REPORTMATE_API_URL=https://reportmate.example.com
export REPORTMATE_API_KEY=rm_yourclient_yoursecret

MCP clients normally launch the server themselves, so the variables go in the client's server definition rather than your shell. See Client Setup.

Fixed behaviour, not configurable

These are hard-coded in client.py and would need a code change:

Setting Value
HTTP timeout 30 seconds
Accept header application/json
User-Agent reportmate-mcp/<version>
Transport stdio (mcp.run() with no arguments)

The version stamp is a calendar version, YYYY.MM.DD.HHMM in UTC, defined as a string literal in src/reportmate_mcp/__init__.py. Read it from there, not from importlib.metadata — packaging normalizes away the zero padding.

Clone this wiki locally