MCP server giving LLM agents real authorization answers: evaluate Rego in-process via OPA, or ask an OpenID AuthZEN 1.0 PDP
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add opa-authz --env AUTHZEN_PDP_TOKEN='<AUTHZEN_PDP_TOKEN>' -- docker run -i --rm -e AUTHZEN_PDP_TOKEN ghcr.io/kanywst/mcp-opa-authz:0.6.1~/.codex/config.toml
[mcp_servers.opa-authz]
command = "docker"
args = ["run", "-i", "--rm", "-e", "AUTHZEN_PDP_TOKEN", "ghcr.io/kanywst/mcp-opa-authz:0.6.1"]
env = { AUTHZEN_PDP_TOKEN = "<AUTHZEN_PDP_TOKEN>" }
# codex mcp add opa-authz --env AUTHZEN_PDP_TOKEN='<AUTHZEN_PDP_TOKEN>' -- docker run -i --rm -e AUTHZEN_PDP_TOKEN ghcr.io/kanywst/mcp-opa-authz:0.6.1~/.cursor/mcp.json
{
"mcpServers": {
"opa-authz": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"AUTHZEN_PDP_TOKEN",
"ghcr.io/kanywst/mcp-opa-authz:0.6.1"
],
"env": {
"AUTHZEN_PDP_TOKEN": "<AUTHZEN_PDP_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"opa-authz": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"AUTHZEN_PDP_TOKEN",
"ghcr.io/kanywst/mcp-opa-authz:0.6.1"
],
"env": {
"AUTHZEN_PDP_TOKEN": "<AUTHZEN_PDP_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"opa-authz": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"AUTHZEN_PDP_TOKEN",
"ghcr.io/kanywst/mcp-opa-authz:0.6.1"
],
"env": {
"AUTHZEN_PDP_TOKEN": "<AUTHZEN_PDP_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"opa-authz": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"AUTHZEN_PDP_TOKEN",
"ghcr.io/kanywst/mcp-opa-authz:0.6.1"
],
"env": {
"AUTHZEN_PDP_TOKEN": "<AUTHZEN_PDP_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"opa-authz": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"AUTHZEN_PDP_TOKEN",
"ghcr.io/kanywst/mcp-opa-authz:0.6.1"
],
"env": {
"AUTHZEN_PDP_TOKEN": "<AUTHZEN_PDP_TOKEN>"
}
}
}
}Environment variables
AUTHZEN_PDP_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.