opa-mcp-server (OrygnsCode/opa-mcp-server) is an MCP server listed on the M8ven Trust Index. It scores 49 out of 100, grade D. It declares 52 tools. No publisher has claimed this listing.

D
Caution
49/100

opa-mcp-server

MCP server for Open Policy Agent (OPA) and the Rego policy language. Wraps the OPA CLI and Regal linter with 32 tools for authoring, evaluating, and debugging Rego policies through any MCP-compatible client.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

OrygnsCode

Source: Glama

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
⚠️
Tool annotations don’t match behaviour
5 read-only tools perform write/delete/exec — rego_check_schema (line 151: writeFile(schemaFile, JSON.stringify(inlineSchema), 'utf8')); rego_format (line 44: /^(\d+)\.(\d+)\.(\d+)/.exec(v)); opa_exec (line 172: opa.exec()
⚠️
Tool descriptions don’t match what handlers do
1 tool describes read intent but its handler mutates — rego_check_schema (line 151: writeFile(schemaFile, JSON.stringify(inlineSchema), 'utf8'))
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
Open source with a license and README
Anyone can audit the code, the license is declared, and the publisher documents what it does.
🔐
You'll be asked for 2 credentials: GITHUB_TOKEN, OPA_TOKEN
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configCONFTEST_BINARYconftest (on PATH) Path to the conftest binary. Only required by conftest_ tools. Returns CONFTEST_NOT_FOUND if absent.
🔐 secretGITHUB_TOKEN
configOPA_BINARY"": "/usr/local/bin/opa",
configOPA_MCP_ALLOWED_PATHS"": "/path/to/your/policies"
configOPA_MCP_DOCKER_SMOKE
configOPA_MCP_HTTP_TIMEOUT_MS15000 Timeout for HTTP requests to the OPA REST API.
configOPA_MCP_LOG_FILEtmpdir>/orygn-opa-mcp.log Path the server appends logs to. The server never writes to stdout; that channel is reserved for the MCP protocol.
configOPA_MCP_LOG_LEVELinfo One of debug, info, warn, error.
configOPA_MCP_MAX_RESPONSE_BYTES100000 Hard cap on a single tool response. Larger payloads are truncated with a __truncated: true marker.
configOPA_MCP_NO_TELEMETRY
configOPA_MCP_TIMEOUT_MS30000 Hard timeout for any spawned subprocess (opa, regal). After this, the child gets SIGTERM and then SIGKILL.
🔐 secretOPA_TOKEN_(unset)_ Bearer token for OPA, if your instance requires auth. Treated as a secret. Never echoed in logs or tool responses.
configOPA_URL"": "http://localhost:8181",
configREGAL_BINARY"": "/usr/local/bin/regal",
// quality suggestions

Tool annotations match behaviour

5 read-only tools perform write/delete/exec — rego_check_schema (line 151: writeFile(schemaFile, JSON.stringify(inlineSchema), 'utf8')); rego_format (line 44: /^(\d+)\.(\d+)\.(\d+)/.exec(v)); opa_exec (line 172: opa.exec()

Either remove the readOnlyHint:true annotation, or remove the write/delete call from the tool handler.

Destructive tools are labelled

1 tool perform destructive updates without destructiveHint — rego_check_schema deletes at line 202 (rm(tempDir, { recursive: true, force: true }))

Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.

Descriptions match behaviour

1 tool describes read intent but its handler mutates — rego_check_schema (line 151: writeFile(schemaFile, JSON.stringify(inlineSchema), 'utf8'))

Rename the tool, rewrite the description, or move the side-effect into a separate clearly-named tool.

Tool inputs are validated

Only 10/52 tool handlers declare input schemas (19%)

Declare an inputSchema with zod/joi/yup on every tool definition.

Tool handlers catch errors

Only 18/52 tool handlers wrap calls in try/catch (35%)

Wrap each tool handler body in try/catch and return a structured error response.

Shell command execution

14 child_process calls — runs shell commands

Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.

Tool description accuracy

rego_check_schema: description implies read-only but handler writes/deletes/executes

Update tool descriptions to accurately reflect all capabilities — especially write, delete, or execute operations.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 7 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/orygnscode/opa-mcp-server?variant=verified)](https://m8ven.ai/mcp/orygnscode/opa-mcp-server)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: d220332cfdcf5a6eeba2b9a9eab155dfe75297e3
code hash: 3ee28ca05c6ed795658590fa8ff1eb961e547a290c81bf986eb911745c1297c5
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client