Docs
MCP server
rtblint runs a hosted Model Context Protocol server so an AI agent can validate OpenRTB payloads mid-conversation. It is the same rtblint-core validator behind the tester and the CLI, exposed as callable tools over HTTP. No account, no key, nothing uploaded to a third party.
Endpoint
https://rtblint.org/mcp
The server speaks JSON-RPC 2.0 over HTTP: POST a request and the response comes back in the body, with a legacy GET SSE stream for clients that expect one. It is stateless (no session ids, no Durable Objects), CORS-open, and runs on the same Cloudflare Worker that serves this site. Validation happens in a WebAssembly build of rtblint-core at the edge; the default version is the latest tracked 2.6 snapshot.
Tools
validate_bid_requestValidate an OpenRTB 2.x bid request JSON string against a tracked spec version. Returns a valid flag and structured issues, each with a rule id, severity, message, and JSON path.Arguments: payload (string, required) · version (string, optional)
validate_bid_responseValidate an OpenRTB 2.x bid response JSON string. Same issue shape as the request tool.Arguments: payload (string, required) · version (string, optional)
list_openrtb_versionsList every OpenRTB version id this build can validate against.Arguments: no arguments
The version argument accepts any tracked OpenRTB version id (call list_openrtb_versions for the set). Findings mirror the tester exactly: a stable rule id, a severity, a message, and the JSON path that tripped it.
Connect from Claude Code
claude mcp add --transport http rtblint https://rtblint.org/mcp
Then ask it to validate a bid request and it will call the tool directly.
Connect from Claude Desktop, Cursor, and others
Clients that read an mcpServers config block can reach the HTTP endpoint through the mcp-remote bridge:
{
"mcpServers": {
"rtblint": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://rtblint.org/mcp"]
}
}
}Clients with native remote-MCP support can point straight at https://rtblint.org/mcp without the bridge.
Call it directly
The endpoint is plain JSON-RPC, so you can exercise it with curl:
curl -s https://rtblint.org/mcp \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "validate_bid_request",
"arguments": { "payload": "{\"id\":\"1\",\"imp\":[]}" }
}
}'Run it locally over stdio
For a local, offline setup, the same tools ship as the rtblint-mcp crate, a stdio MCP server that needs no network:
cargo install rtblint-mcp # then point an MCP client at the "rtblint-mcp" command over stdio
Prefer the browser or a pipeline instead? See the tester and the CLI and library.