protogrid

Search / io.github.AindriuB/data-prism

Data Prism

L0· runs locally

Fail-closed privacy layer that pseudonymises enterprise API data for LLM agents and MCP clients.

v0.6.0 · active · repository · website · descriptor JSON · versions

Runs on your machine: something must execute the package.Only local packages are published (npm, PyPI, OCI, …). The registry never executes them, so tools are unknown until you run it.
Quality–not scored
Trust94of 100
Packages1
Tools seen0

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "data-prism": {
      "command": "docker",
      "args": [
        "-v",
        "${adapter_jar_host_path}:/app/adapters/${adapter_jar_name}",
        "-v",
        "${config_host_path}:/app/config/application.yaml",
        "-e",
        "LOADER_PATH",
        "-e",
        "DATAPRISM_SECURITY_JWT_ISSUER",
        "-e",
        "DATAPRISM_SECURITY_JWT_AUDIENCE",
        "-e",
        "DATAPRISM_SECURITY_JWT_JWK_SET_URI",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION",
        "-e",
        "DATAPRISM_SECURITY_POLICY_PURPOSES",
        "-e",
        "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR",
        "-e",
        "DATAPRISM_PRIVACY_PROFILE",
        "-e",
        "DATAPRISM_PRIVACY_SCOPE_LIFETIME",
        "-e",
        "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID",
        "-e",
        "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE",
        "-e",
        "DATAPRISM_AUDIT_SINK",
        "-e",
        "DATAPRISM_AUDIT_WRITER_ID",
        "-e",
        "DATAPRISM_METRICS_SINK",
        "-e",
        "DATAPRISM_HAZELCAST_TOPOLOGY",
        "-e",
        "DATAPRISM_SOURCES_CUSTOMER_BASE_URL",
        "-e",
        "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT",
        "ghcr.io/aindriub/data-prism-server:0.6.0"
      ],
      "env": {
        "LOADER_PATH": "/app/adapters",
        "DATAPRISM_SECURITY_JWT_ISSUER": "${DATAPRISM_SECURITY_JWT_ISSUER}",
        "DATAPRISM_SECURITY_JWT_AUDIENCE": "${DATAPRISM_SECURITY_JWT_AUDIENCE}",
        "DATAPRISM_SECURITY_JWT_JWK_SET_URI": "${DATAPRISM_SECURITY_JWT_JWK_SET_URI}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL": "${DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES": "${DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION": "${DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION}",
        "DATAPRISM_SECURITY_POLICY_PURPOSES": "${DATAPRISM_SECURITY_POLICY_PURPOSES}",
        "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR": "${DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR}",
        "DATAPRISM_PRIVACY_PROFILE": "${DATAPRISM_PRIVACY_PROFILE}",
        "DATAPRISM_PRIVACY_SCOPE_LIFETIME": "${DATAPRISM_PRIVACY_SCOPE_LIFETIME}",
        "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID": "${DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID}",
        "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE": "${DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE}",
        "DATAPRISM_AUDIT_SINK": "${DATAPRISM_AUDIT_SINK}",
        "DATAPRISM_AUDIT_WRITER_ID": "${DATAPRISM_AUDIT_WRITER_ID}",
        "DATAPRISM_METRICS_SINK": "${DATAPRISM_METRICS_SINK}",
        "DATAPRISM_HAZELCAST_TOPOLOGY": "${DATAPRISM_HAZELCAST_TOPOLOGY}",
        "DATAPRISM_SOURCES_CUSTOMER_BASE_URL": "${DATAPRISM_SOURCES_CUSTOMER_BASE_URL}",
        "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT": "${DATAPRISM_SOURCES_CUSTOMER_TIMEOUT}"
      }
    }
  }
}
claude mcp add data-prism -e "LOADER_PATH=/app/adapters" -e "DATAPRISM_SECURITY_JWT_ISSUER=${DATAPRISM_SECURITY_JWT_ISSUER}" -e "DATAPRISM_SECURITY_JWT_AUDIENCE=${DATAPRISM_SECURITY_JWT_AUDIENCE}" -e "DATAPRISM_SECURITY_JWT_JWK_SET_URI=${DATAPRISM_SECURITY_JWT_JWK_SET_URI}" -e "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL=${DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL}" -e "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES=${DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES}" -e "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION=${DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION}" -e "DATAPRISM_SECURITY_POLICY_PURPOSES=${DATAPRISM_SECURITY_POLICY_PURPOSES}" -e "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR=${DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR}" -e "DATAPRISM_PRIVACY_PROFILE=${DATAPRISM_PRIVACY_PROFILE}" -e "DATAPRISM_PRIVACY_SCOPE_LIFETIME=${DATAPRISM_PRIVACY_SCOPE_LIFETIME}" -e "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID=${DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID}" -e "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE=${DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE}" -e "DATAPRISM_AUDIT_SINK=${DATAPRISM_AUDIT_SINK}" -e "DATAPRISM_AUDIT_WRITER_ID=${DATAPRISM_AUDIT_WRITER_ID}" -e "DATAPRISM_METRICS_SINK=${DATAPRISM_METRICS_SINK}" -e "DATAPRISM_HAZELCAST_TOPOLOGY=${DATAPRISM_HAZELCAST_TOPOLOGY}" -e "DATAPRISM_SOURCES_CUSTOMER_BASE_URL=${DATAPRISM_SOURCES_CUSTOMER_BASE_URL}" -e "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT=${DATAPRISM_SOURCES_CUSTOMER_TIMEOUT}" -- docker -v "${adapter_jar_host_path}:/app/adapters/${adapter_jar_name}" -v "${config_host_path}:/app/config/application.yaml" -e LOADER_PATH -e DATAPRISM_SECURITY_JWT_ISSUER -e DATAPRISM_SECURITY_JWT_AUDIENCE -e DATAPRISM_SECURITY_JWT_JWK_SET_URI -e DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL -e DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES -e DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION -e DATAPRISM_SECURITY_POLICY_PURPOSES -e DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR -e DATAPRISM_PRIVACY_PROFILE -e DATAPRISM_PRIVACY_SCOPE_LIFETIME -e DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID -e DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE -e DATAPRISM_AUDIT_SINK -e DATAPRISM_AUDIT_WRITER_ID -e DATAPRISM_METRICS_SINK -e DATAPRISM_HAZELCAST_TOPOLOGY -e DATAPRISM_SOURCES_CUSTOMER_BASE_URL -e DATAPRISM_SOURCES_CUSTOMER_TIMEOUT ghcr.io/aindriub/data-prism-server:0.6.0
[mcp_servers.data-prism]
command = "docker"
args = ["-v", "${adapter_jar_host_path}:/app/adapters/${adapter_jar_name}", "-v", "${config_host_path}:/app/config/application.yaml", "-e", "LOADER_PATH", "-e", "DATAPRISM_SECURITY_JWT_ISSUER", "-e", "DATAPRISM_SECURITY_JWT_AUDIENCE", "-e", "DATAPRISM_SECURITY_JWT_JWK_SET_URI", "-e", "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL", "-e", "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES", "-e", "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION", "-e", "DATAPRISM_SECURITY_POLICY_PURPOSES", "-e", "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR", "-e", "DATAPRISM_PRIVACY_PROFILE", "-e", "DATAPRISM_PRIVACY_SCOPE_LIFETIME", "-e", "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID", "-e", "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE", "-e", "DATAPRISM_AUDIT_SINK", "-e", "DATAPRISM_AUDIT_WRITER_ID", "-e", "DATAPRISM_METRICS_SINK", "-e", "DATAPRISM_HAZELCAST_TOPOLOGY", "-e", "DATAPRISM_SOURCES_CUSTOMER_BASE_URL", "-e", "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT", "ghcr.io/aindriub/data-prism-server:0.6.0"]
env = { "LOADER_PATH" = "/app/adapters", "DATAPRISM_SECURITY_JWT_ISSUER" = "${DATAPRISM_SECURITY_JWT_ISSUER}", "DATAPRISM_SECURITY_JWT_AUDIENCE" = "${DATAPRISM_SECURITY_JWT_AUDIENCE}", "DATAPRISM_SECURITY_JWT_JWK_SET_URI" = "${DATAPRISM_SECURITY_JWT_JWK_SET_URI}", "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL" = "${DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL}", "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES" = "${DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES}", "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION" = "${DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION}", "DATAPRISM_SECURITY_POLICY_PURPOSES" = "${DATAPRISM_SECURITY_POLICY_PURPOSES}", "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR" = "${DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR}", "DATAPRISM_PRIVACY_PROFILE" = "${DATAPRISM_PRIVACY_PROFILE}", "DATAPRISM_PRIVACY_SCOPE_LIFETIME" = "${DATAPRISM_PRIVACY_SCOPE_LIFETIME}", "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID" = "${DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID}", "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE" = "${DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE}", "DATAPRISM_AUDIT_SINK" = "${DATAPRISM_AUDIT_SINK}", "DATAPRISM_AUDIT_WRITER_ID" = "${DATAPRISM_AUDIT_WRITER_ID}", "DATAPRISM_METRICS_SINK" = "${DATAPRISM_METRICS_SINK}", "DATAPRISM_HAZELCAST_TOPOLOGY" = "${DATAPRISM_HAZELCAST_TOPOLOGY}", "DATAPRISM_SOURCES_CUSTOMER_BASE_URL" = "${DATAPRISM_SOURCES_CUSTOMER_BASE_URL}", "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT" = "${DATAPRISM_SOURCES_CUSTOMER_TIMEOUT}" }
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "data-prism": {
      "type": "local",
      "command": [
        "docker",
        "-v",
        "{env:adapter_jar_host_path}:/app/adapters/{env:adapter_jar_name}",
        "-v",
        "{env:config_host_path}:/app/config/application.yaml",
        "-e",
        "LOADER_PATH",
        "-e",
        "DATAPRISM_SECURITY_JWT_ISSUER",
        "-e",
        "DATAPRISM_SECURITY_JWT_AUDIENCE",
        "-e",
        "DATAPRISM_SECURITY_JWT_JWK_SET_URI",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION",
        "-e",
        "DATAPRISM_SECURITY_POLICY_PURPOSES",
        "-e",
        "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR",
        "-e",
        "DATAPRISM_PRIVACY_PROFILE",
        "-e",
        "DATAPRISM_PRIVACY_SCOPE_LIFETIME",
        "-e",
        "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID",
        "-e",
        "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE",
        "-e",
        "DATAPRISM_AUDIT_SINK",
        "-e",
        "DATAPRISM_AUDIT_WRITER_ID",
        "-e",
        "DATAPRISM_METRICS_SINK",
        "-e",
        "DATAPRISM_HAZELCAST_TOPOLOGY",
        "-e",
        "DATAPRISM_SOURCES_CUSTOMER_BASE_URL",
        "-e",
        "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT",
        "ghcr.io/aindriub/data-prism-server:0.6.0"
      ],
      "enabled": true,
      "environment": {
        "LOADER_PATH": "/app/adapters",
        "DATAPRISM_SECURITY_JWT_ISSUER": "{env:DATAPRISM_SECURITY_JWT_ISSUER}",
        "DATAPRISM_SECURITY_JWT_AUDIENCE": "{env:DATAPRISM_SECURITY_JWT_AUDIENCE}",
        "DATAPRISM_SECURITY_JWT_JWK_SET_URI": "{env:DATAPRISM_SECURITY_JWT_JWK_SET_URI}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL": "{env:DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES": "{env:DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION": "{env:DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION}",
        "DATAPRISM_SECURITY_POLICY_PURPOSES": "{env:DATAPRISM_SECURITY_POLICY_PURPOSES}",
        "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR": "{env:DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR}",
        "DATAPRISM_PRIVACY_PROFILE": "{env:DATAPRISM_PRIVACY_PROFILE}",
        "DATAPRISM_PRIVACY_SCOPE_LIFETIME": "{env:DATAPRISM_PRIVACY_SCOPE_LIFETIME}",
        "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID": "{env:DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID}",
        "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE": "{env:DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE}",
        "DATAPRISM_AUDIT_SINK": "{env:DATAPRISM_AUDIT_SINK}",
        "DATAPRISM_AUDIT_WRITER_ID": "{env:DATAPRISM_AUDIT_WRITER_ID}",
        "DATAPRISM_METRICS_SINK": "{env:DATAPRISM_METRICS_SINK}",
        "DATAPRISM_HAZELCAST_TOPOLOGY": "{env:DATAPRISM_HAZELCAST_TOPOLOGY}",
        "DATAPRISM_SOURCES_CUSTOMER_BASE_URL": "{env:DATAPRISM_SOURCES_CUSTOMER_BASE_URL}",
        "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT": "{env:DATAPRISM_SOURCES_CUSTOMER_TIMEOUT}"
      }
    }
  }
}
{
  "mcpServers": {
    "data-prism": {
      "command": "docker",
      "args": [
        "-v",
        "${adapter_jar_host_path}:/app/adapters/${adapter_jar_name}",
        "-v",
        "${config_host_path}:/app/config/application.yaml",
        "-e",
        "LOADER_PATH",
        "-e",
        "DATAPRISM_SECURITY_JWT_ISSUER",
        "-e",
        "DATAPRISM_SECURITY_JWT_AUDIENCE",
        "-e",
        "DATAPRISM_SECURITY_JWT_JWK_SET_URI",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION",
        "-e",
        "DATAPRISM_SECURITY_POLICY_PURPOSES",
        "-e",
        "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR",
        "-e",
        "DATAPRISM_PRIVACY_PROFILE",
        "-e",
        "DATAPRISM_PRIVACY_SCOPE_LIFETIME",
        "-e",
        "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID",
        "-e",
        "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE",
        "-e",
        "DATAPRISM_AUDIT_SINK",
        "-e",
        "DATAPRISM_AUDIT_WRITER_ID",
        "-e",
        "DATAPRISM_METRICS_SINK",
        "-e",
        "DATAPRISM_HAZELCAST_TOPOLOGY",
        "-e",
        "DATAPRISM_SOURCES_CUSTOMER_BASE_URL",
        "-e",
        "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT",
        "ghcr.io/aindriub/data-prism-server:0.6.0"
      ],
      "env": {
        "LOADER_PATH": "/app/adapters",
        "DATAPRISM_SECURITY_JWT_ISSUER": "${DATAPRISM_SECURITY_JWT_ISSUER}",
        "DATAPRISM_SECURITY_JWT_AUDIENCE": "${DATAPRISM_SECURITY_JWT_AUDIENCE}",
        "DATAPRISM_SECURITY_JWT_JWK_SET_URI": "${DATAPRISM_SECURITY_JWT_JWK_SET_URI}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL": "${DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES": "${DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION": "${DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION}",
        "DATAPRISM_SECURITY_POLICY_PURPOSES": "${DATAPRISM_SECURITY_POLICY_PURPOSES}",
        "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR": "${DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR}",
        "DATAPRISM_PRIVACY_PROFILE": "${DATAPRISM_PRIVACY_PROFILE}",
        "DATAPRISM_PRIVACY_SCOPE_LIFETIME": "${DATAPRISM_PRIVACY_SCOPE_LIFETIME}",
        "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID": "${DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID}",
        "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE": "${DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE}",
        "DATAPRISM_AUDIT_SINK": "${DATAPRISM_AUDIT_SINK}",
        "DATAPRISM_AUDIT_WRITER_ID": "${DATAPRISM_AUDIT_WRITER_ID}",
        "DATAPRISM_METRICS_SINK": "${DATAPRISM_METRICS_SINK}",
        "DATAPRISM_HAZELCAST_TOPOLOGY": "${DATAPRISM_HAZELCAST_TOPOLOGY}",
        "DATAPRISM_SOURCES_CUSTOMER_BASE_URL": "${DATAPRISM_SOURCES_CUSTOMER_BASE_URL}",
        "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT": "${DATAPRISM_SOURCES_CUSTOMER_TIMEOUT}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=data-prism&config=eyJjb21tYW5kIjoiZG9ja2VyIiwiYXJncyI6WyItdiIsIiR7YWRhcHRlcl9qYXJfaG9zdF9wYXRofTovYXBwL2FkYXB0ZXJzLyR7YWRhcHRlcl9qYXJfbmFtZX0iLCItdiIsIiR7Y29uZmlnX2hvc3RfcGF0aH06L2FwcC9jb25maWcvYXBwbGljYXRpb24ueWFtbCIsIi1lIiwiTE9BREVSX1BBVEgiLCItZSIsIkRBVEFQUklTTV9TRUNVUklUWV9KV1RfSVNTVUVSIiwiLWUiLCJEQVRBUFJJU01fU0VDVVJJVFlfSldUX0FVRElFTkNFIiwiLWUiLCJEQVRBUFJJU01fU0VDVVJJVFlfSldUX0pXS19TRVRfVVJJIiwiLWUiLCJEQVRBUFJJU01fU0VDVVJJVFlfQ0FMTEVSX0NMQUlNU19QUklOQ0lQQUwiLCItZSIsIkRBVEFQUklTTV9TRUNVUklUWV9DQUxMRVJfQ0xBSU1TX1JPTEVTIiwiLWUiLCJEQVRBUFJJU01fU0VDVVJJVFlfQ0FMTEVSX0NMQUlNU19JTlZFU1RJR0FUSU9OIiwiLWUiLCJEQVRBUFJJU01fU0VDVVJJVFlfUE9MSUNZX1BVUlBPU0VTIiwiLWUiLCJEQVRBUFJJU01fU0VDVVJJVFlQT0xJQ1lfUk9MRVNfSU5WRVNUSUdBVE9SIiwiLWUiLCJEQVRBUFJJU01fUFJJVkFDWV9QUk9GSUxFIiwiLWUiLCJEQVRBUFJJU01fUFJJVkFDWV9TQ09QRV9MSUZFVElNRSIsIi1lIiwiREFUQVBSSVNNX1BSSVZBQ1lfSE1BQ19LRVlfS0VZX0lEIiwiLWUiLCJEQVRBUFJJU01fUFJJVkFDWV9ITUFDX0tFWV9FTlZJUk9OTUVOVF9WQVJJQUJMRSIsIi1lIiwiREFUQVBSSVNNX0FVRElUX1NJTksiLCItZSIsIkRBVEFQUklTTV9BVURJVF9XUklURVJfSUQiLCItZSIsIkRBVEFQUklTTV9NRVRSSUNTX1NJTksiLCItZSIsIkRBVEFQUklTTV9IQVpFTENBU1RfVE9QT0xPR1kiLCItZSIsIkRBVEFQUklTTV9TT1VSQ0VTX0NVU1RPTUVSX0JBU0VfVVJMIiwiLWUiLCJEQVRBUFJJU01fU09VUkNFU19DVVNUT01FUl9USU1FT1VUIiwiZ2hjci5pby9haW5kcml1Yi9kYXRhLXByaXNtLXNlcnZlcjowLjYuMCJdLCJlbnYiOnsiTE9BREVSX1BBVEgiOiIvYXBwL2FkYXB0ZXJzIiwiREFUQVBSSVNNX1NFQ1VSSVRZX0pXVF9JU1NVRVIiOiIke0RBVEFQUklTTV9TRUNVUklUWV9KV1RfSVNTVUVSfSIsIkRBVEFQUklTTV9TRUNVUklUWV9KV1RfQVVESUVOQ0UiOiIke0RBVEFQUklTTV9TRUNVUklUWV9KV1RfQVVESUVOQ0V9IiwiREFUQVBSSVNNX1NFQ1VSSVRZX0pXVF9KV0tfU0VUX1VSSSI6IiR7REFUQVBSSVNNX1NFQ1VSSVRZX0pXVF9KV0tfU0VUX1VSSX0iLCJEQVRBUFJJU01fU0VDVVJJVFlfQ0FMTEVSX0NMQUlNU19QUklOQ0lQQUwiOiIke0RBVEFQUklTTV9TRUNVUklUWV9DQUxMRVJfQ0xBSU1TX1BSSU5DSVBBTH0iLCJEQVRBUFJJU01fU0VDVVJJVFlfQ0FMTEVSX0NMQUlNU19ST0xFUyI6IiR7REFUQVBSSVNNX1NFQ1VSSVRZX0NBTExFUl9DTEFJTVNfUk9MRVN9IiwiREFUQVBSSVNNX1NFQ1VSSVRZX0NBTExFUl9DTEFJTVNfSU5WRVNUSUdBVElPTiI6IiR7REFUQVBSSVNNX1NFQ1VSSVRZX0NBTExFUl9DTEFJTVNfSU5WRVNUSUdBVElPTn0iLCJEQVRBUFJJU01fU0VDVVJJVFlfUE9MSUNZX1BVUlBPU0VTIjoiJHtEQVRBUFJJU01fU0VDVVJJVFlfUE9MSUNZX1BVUlBPU0VTfSIsIkRBVEFQUklTTV9TRUNVUklUWVBPTElDWV9ST0xFU19JTlZFU1RJR0FUT1IiOiIke0RBVEFQUklTTV9TRUNVUklUWVBPTElDWV9ST0xFU19JTlZFU1RJR0FUT1J9IiwiREFUQVBSSVNNX1BSSVZBQ1lfUFJPRklMRSI6IiR7REFUQVBSSVNNX1BSSVZBQ1lfUFJPRklMRX0iLCJEQVRBUFJJU01fUFJJVkFDWV9TQ09QRV9MSUZFVElNRSI6IiR7REFUQVBSSVNNX1BSSVZBQ1lfU0NPUEVfTElGRVRJTUV9IiwiREFUQVBSSVNNX1BSSVZBQ1lfSE1BQ19LRVlfS0VZX0lEIjoiJHtEQVRBUFJJU01fUFJJVkFDWV9ITUFDX0tFWV9LRVlfSUR9IiwiREFUQVBSSVNNX1BSSVZBQ1lfSE1BQ19LRVlfRU5WSVJPTk1FTlRfVkFSSUFCTEUiOiIke0RBVEFQUklTTV9QUklWQUNZX0hNQUNfS0VZX0VOVklST05NRU5UX1ZBUklBQkxFfSIsIkRBVEFQUklTTV9BVURJVF9TSU5LIjoiJHtEQVRBUFJJU01fQVVESVRfU0lOS30iLCJEQVRBUFJJU01fQVVESVRfV1JJVEVSX0lEIjoiJHtEQVRBUFJJU01fQVVESVRfV1JJVEVSX0lEfSIsIkRBVEFQUklTTV9NRVRSSUNTX1NJTksiOiIke0RBVEFQUklTTV9NRVRSSUNTX1NJTkt9IiwiREFUQVBSSVNNX0hBWkVMQ0FTVF9UT1BPTE9HWSI6IiR7REFUQVBSSVNNX0hBWkVMQ0FTVF9UT1BPTE9HWX0iLCJEQVRBUFJJU01fU09VUkNFU19DVVNUT01FUl9CQVNFX1VSTCI6IiR7REFUQVBSSVNNX1NPVVJDRVNfQ1VTVE9NRVJfQkFTRV9VUkx9IiwiREFUQVBSSVNNX1NPVVJDRVNfQ1VTVE9NRVJfVElNRU9VVCI6IiR7REFUQVBSSVNNX1NPVVJDRVNfQ1VTVE9NRVJfVElNRU9VVH0ifX0%3D"
}
{
  "servers": {
    "data-prism": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "-v",
        "${adapter_jar_host_path}:/app/adapters/${adapter_jar_name}",
        "-v",
        "${config_host_path}:/app/config/application.yaml",
        "-e",
        "LOADER_PATH",
        "-e",
        "DATAPRISM_SECURITY_JWT_ISSUER",
        "-e",
        "DATAPRISM_SECURITY_JWT_AUDIENCE",
        "-e",
        "DATAPRISM_SECURITY_JWT_JWK_SET_URI",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION",
        "-e",
        "DATAPRISM_SECURITY_POLICY_PURPOSES",
        "-e",
        "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR",
        "-e",
        "DATAPRISM_PRIVACY_PROFILE",
        "-e",
        "DATAPRISM_PRIVACY_SCOPE_LIFETIME",
        "-e",
        "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID",
        "-e",
        "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE",
        "-e",
        "DATAPRISM_AUDIT_SINK",
        "-e",
        "DATAPRISM_AUDIT_WRITER_ID",
        "-e",
        "DATAPRISM_METRICS_SINK",
        "-e",
        "DATAPRISM_HAZELCAST_TOPOLOGY",
        "-e",
        "DATAPRISM_SOURCES_CUSTOMER_BASE_URL",
        "-e",
        "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT",
        "ghcr.io/aindriub/data-prism-server:0.6.0"
      ],
      "env": {
        "LOADER_PATH": "/app/adapters",
        "DATAPRISM_SECURITY_JWT_ISSUER": "${DATAPRISM_SECURITY_JWT_ISSUER}",
        "DATAPRISM_SECURITY_JWT_AUDIENCE": "${DATAPRISM_SECURITY_JWT_AUDIENCE}",
        "DATAPRISM_SECURITY_JWT_JWK_SET_URI": "${DATAPRISM_SECURITY_JWT_JWK_SET_URI}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL": "${DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES": "${DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION": "${DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION}",
        "DATAPRISM_SECURITY_POLICY_PURPOSES": "${DATAPRISM_SECURITY_POLICY_PURPOSES}",
        "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR": "${DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR}",
        "DATAPRISM_PRIVACY_PROFILE": "${DATAPRISM_PRIVACY_PROFILE}",
        "DATAPRISM_PRIVACY_SCOPE_LIFETIME": "${DATAPRISM_PRIVACY_SCOPE_LIFETIME}",
        "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID": "${DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID}",
        "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE": "${DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE}",
        "DATAPRISM_AUDIT_SINK": "${DATAPRISM_AUDIT_SINK}",
        "DATAPRISM_AUDIT_WRITER_ID": "${DATAPRISM_AUDIT_WRITER_ID}",
        "DATAPRISM_METRICS_SINK": "${DATAPRISM_METRICS_SINK}",
        "DATAPRISM_HAZELCAST_TOPOLOGY": "${DATAPRISM_HAZELCAST_TOPOLOGY}",
        "DATAPRISM_SOURCES_CUSTOMER_BASE_URL": "${DATAPRISM_SOURCES_CUSTOMER_BASE_URL}",
        "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT": "${DATAPRISM_SOURCES_CUSTOMER_TIMEOUT}"
      }
    }
  }
}
{
  "mcpServers": {
    "data-prism": {
      "command": "docker",
      "args": [
        "-v",
        "${adapter_jar_host_path}:/app/adapters/${adapter_jar_name}",
        "-v",
        "${config_host_path}:/app/config/application.yaml",
        "-e",
        "LOADER_PATH",
        "-e",
        "DATAPRISM_SECURITY_JWT_ISSUER",
        "-e",
        "DATAPRISM_SECURITY_JWT_AUDIENCE",
        "-e",
        "DATAPRISM_SECURITY_JWT_JWK_SET_URI",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES",
        "-e",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION",
        "-e",
        "DATAPRISM_SECURITY_POLICY_PURPOSES",
        "-e",
        "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR",
        "-e",
        "DATAPRISM_PRIVACY_PROFILE",
        "-e",
        "DATAPRISM_PRIVACY_SCOPE_LIFETIME",
        "-e",
        "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID",
        "-e",
        "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE",
        "-e",
        "DATAPRISM_AUDIT_SINK",
        "-e",
        "DATAPRISM_AUDIT_WRITER_ID",
        "-e",
        "DATAPRISM_METRICS_SINK",
        "-e",
        "DATAPRISM_HAZELCAST_TOPOLOGY",
        "-e",
        "DATAPRISM_SOURCES_CUSTOMER_BASE_URL",
        "-e",
        "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT",
        "ghcr.io/aindriub/data-prism-server:0.6.0"
      ],
      "env": {
        "LOADER_PATH": "/app/adapters",
        "DATAPRISM_SECURITY_JWT_ISSUER": "${DATAPRISM_SECURITY_JWT_ISSUER}",
        "DATAPRISM_SECURITY_JWT_AUDIENCE": "${DATAPRISM_SECURITY_JWT_AUDIENCE}",
        "DATAPRISM_SECURITY_JWT_JWK_SET_URI": "${DATAPRISM_SECURITY_JWT_JWK_SET_URI}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL": "${DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES": "${DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION": "${DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION}",
        "DATAPRISM_SECURITY_POLICY_PURPOSES": "${DATAPRISM_SECURITY_POLICY_PURPOSES}",
        "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR": "${DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR}",
        "DATAPRISM_PRIVACY_PROFILE": "${DATAPRISM_PRIVACY_PROFILE}",
        "DATAPRISM_PRIVACY_SCOPE_LIFETIME": "${DATAPRISM_PRIVACY_SCOPE_LIFETIME}",
        "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID": "${DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID}",
        "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE": "${DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE}",
        "DATAPRISM_AUDIT_SINK": "${DATAPRISM_AUDIT_SINK}",
        "DATAPRISM_AUDIT_WRITER_ID": "${DATAPRISM_AUDIT_WRITER_ID}",
        "DATAPRISM_METRICS_SINK": "${DATAPRISM_METRICS_SINK}",
        "DATAPRISM_HAZELCAST_TOPOLOGY": "${DATAPRISM_HAZELCAST_TOPOLOGY}",
        "DATAPRISM_SOURCES_CUSTOMER_BASE_URL": "${DATAPRISM_SOURCES_CUSTOMER_BASE_URL}",
        "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT": "${DATAPRISM_SOURCES_CUSTOMER_TIMEOUT}"
      }
    }
  }
}
extensions:
  "data-prism":
    enabled: true
    name: "data-prism"
    type: stdio
    cmd: "docker"
    args:
      - "-v"
      - "${adapter_jar_host_path}:/app/adapters/${adapter_jar_name}"
      - "-v"
      - "${config_host_path}:/app/config/application.yaml"
      - "-e"
      - "LOADER_PATH"
      - "-e"
      - "DATAPRISM_SECURITY_JWT_ISSUER"
      - "-e"
      - "DATAPRISM_SECURITY_JWT_AUDIENCE"
      - "-e"
      - "DATAPRISM_SECURITY_JWT_JWK_SET_URI"
      - "-e"
      - "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL"
      - "-e"
      - "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES"
      - "-e"
      - "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION"
      - "-e"
      - "DATAPRISM_SECURITY_POLICY_PURPOSES"
      - "-e"
      - "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR"
      - "-e"
      - "DATAPRISM_PRIVACY_PROFILE"
      - "-e"
      - "DATAPRISM_PRIVACY_SCOPE_LIFETIME"
      - "-e"
      - "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID"
      - "-e"
      - "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE"
      - "-e"
      - "DATAPRISM_AUDIT_SINK"
      - "-e"
      - "DATAPRISM_AUDIT_WRITER_ID"
      - "-e"
      - "DATAPRISM_METRICS_SINK"
      - "-e"
      - "DATAPRISM_HAZELCAST_TOPOLOGY"
      - "-e"
      - "DATAPRISM_SOURCES_CUSTOMER_BASE_URL"
      - "-e"
      - "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT"
      - "ghcr.io/aindriub/data-prism-server:0.6.0"
    envs:
      "LOADER_PATH": "/app/adapters"
      "DATAPRISM_SECURITY_JWT_ISSUER": "${DATAPRISM_SECURITY_JWT_ISSUER}"
      "DATAPRISM_SECURITY_JWT_AUDIENCE": "${DATAPRISM_SECURITY_JWT_AUDIENCE}"
      "DATAPRISM_SECURITY_JWT_JWK_SET_URI": "${DATAPRISM_SECURITY_JWT_JWK_SET_URI}"
      "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL": "${DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL}"
      "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES": "${DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES}"
      "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION": "${DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION}"
      "DATAPRISM_SECURITY_POLICY_PURPOSES": "${DATAPRISM_SECURITY_POLICY_PURPOSES}"
      "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR": "${DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR}"
      "DATAPRISM_PRIVACY_PROFILE": "${DATAPRISM_PRIVACY_PROFILE}"
      "DATAPRISM_PRIVACY_SCOPE_LIFETIME": "${DATAPRISM_PRIVACY_SCOPE_LIFETIME}"
      "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID": "${DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID}"
      "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE": "${DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE}"
      "DATAPRISM_AUDIT_SINK": "${DATAPRISM_AUDIT_SINK}"
      "DATAPRISM_AUDIT_WRITER_ID": "${DATAPRISM_AUDIT_WRITER_ID}"
      "DATAPRISM_METRICS_SINK": "${DATAPRISM_METRICS_SINK}"
      "DATAPRISM_HAZELCAST_TOPOLOGY": "${DATAPRISM_HAZELCAST_TOPOLOGY}"
      "DATAPRISM_SOURCES_CUSTOMER_BASE_URL": "${DATAPRISM_SOURCES_CUSTOMER_BASE_URL}"
      "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT": "${DATAPRISM_SOURCES_CUSTOMER_TIMEOUT}"
    timeout: 300

This is a local package: the command runs on your machine.

Quality – / 100not scored

Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.

protocoln/a · weight 25
  • n/a
    protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygienen/a · weight 30
  • n/a
    tools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool list unknown
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

Tool list unknown · checked 2026-10-19 10:20 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 94 / 100

provenance90
livenessn/a
freshness100
hygiene95

+repository +namespace-matches-repo +website ~liveness-unmeasured +updated-10d-ago -unpinned-packages(1)

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

packageregistryversionruntimesecrets
ghcr.io/aindriub/data-prism-server:0.6.0ociunpinneddocker

Tools (0)

No tools observed. Local packages are never executed by the registry.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.AindriuB/data-prism",
  "title": "Data Prism",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "version": "0.6.0",
  "packages": [
    {
      "transport": {
        "url": "http://localhost:8080/mcp",
        "type": "streamable-http"
      },
      "identifier": "ghcr.io/aindriub/data-prism-server:0.6.0",
      "runtimeHint": "docker",
      "registryType": "oci",
      "runtimeArguments": [
        {
          "name": "-v",
          "type": "named",
          "value": "{adapter_jar_host_path}:/app/adapters/{adapter_jar_name}",
          "variables": {
            "adapter_jar_name": {
              "isRequired": true,
              "description": "File name to expose for that jar inside /app/adapters"
            },
            "adapter_jar_host_path": {
              "format": "filepath",
              "isRequired": true,
              "description": "Absolute host path to a reviewed DataSourceAdapter/IdentityResolver jar you built and reviewed yourself"
            }
          },
          "isRepeated": true,
          "isRequired": true,
          "description": "Bind-mount at least one reviewed DataSourceAdapter/IdentityResolver jar into the loader path (LOADER_PATH=/app/adapters) for every dataprism.sources entry; absent this, DataPrismContractValidator refuses startup with MISSING_SOURCE_ADAPTER."
        },
        {
          "name": "-v",
          "type": "named",
          "value": "{config_host_path}:/app/config/application.yaml",
          "variables": {
            "config_host_path": {
              "format": "filepath",
              "isRequired": true,
              "description": "Absolute host path to your dataprism.* application.yaml"
            }
          },
          "isRequired": true,
          "description": "Bind-mount a deployment configuration YAML satisfying every required dataprism.* key in docs/configuration.md to the path Spring Boot auto-loads on startup; equivalent to, and combinable with, the DATAPRISM_* environment variables below. Absent both, DataPrismProperties.validate() refuses startup."
        }
      ],
      "environmentVariables": [
        {
          "name": "LOADER_PATH",
          "default": "/app/adapters",
          "isRequired": true,
          "description": "Directory Spring Boot's PropertiesLauncher scans for extension jars; already set to /app/adapters by the image, but startup still fails with MISSING_SOURCE_ADAPTER until you bind-mount a reviewed DataSourceAdapter/IdentityResolver jar there (see the -v arguments above)"
        },
        {
          "name": "DATAPRISM_SECURITY_JWT_ISSUER",
          "isRequired": true,
          "description": "OAuth2/OIDC issuer that mints the caller's JWT; required for every protected deployment"
        },
        {
          "name": "DATAPRISM_SECURITY_JWT_AUDIENCE",
          "isRequired": true,
          "description": "Expected JWT audience claim for this deployment; required for every protected deployment"
        },
        {
          "name": "DATAPRISM_SECURITY_JWT_JWK_SET_URI",
          "isRequired": true,
          "description": "HTTPS JWKS location used to verify caller JWTs; exactly one of this or DATAPRISM_SECURITY_JWT_ISSUER_DISCOVERY_URI is required, never both"
        },
        {
          "name": "DATAPRISM_SECURITY_JWT_ISSUER_DISCOVERY_URI",
          "description": "Alternative HTTPS OIDC issuer-discovery location; set this instead of DATAPRISM_SECURITY_JWT_JWK_SET_URI, never both"
        },
        {
          "name": "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL",
          "isRequired": true,
          "description": "JWT claim name that carries the caller's principal identifier; required, must differ from the roles and investigation claims"
        },
        {
          "name": "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES",
          "isRequired": true,
          "description": "JWT claim name that carries the caller's roles; required, must differ from the principal and investigation claims"
        },
        {
          "name": "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION",
          "isRequired": true,
          "description": "JWT claim name that carries the trusted investigation/case identifier; required, must differ from the principal and roles claims"
        },
        {
          "name": "DATAPRISM_SECURITY_POLICY_PURPOSES",
          "isRequired": true,
          "description": "Comma-separated list of permitted purposes; at least one is required"
        },
        {
          "name": "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR",
          "isRequired": true,
          "description": "Example only — declare DATAPRISM_SECURITYPOLICY_ROLES_<ROLE> per operator-defined role (no underscore between SECURITY and POLICY: Spring Boot's map-key enumeration under a hyphenated dataprism.security-policy.roles.<role> segment only binds the concatenated prefix, verified by binding this property directly against Spring Boot 4.1.1), a comma-separated list of known MCP tool capabilities; at least one role-to-capability mapping is required"
        },
        {
          "name": "DATAPRISM_PRIVACY_PROFILE",
          "isRequired": true,
          "description": "Name of the reviewed privacy profile implementation to apply; required"
        },
        {
          "name": "DATAPRISM_PRIVACY_SCOPE_LIFETIME",
          "isRequired": true,
          "description": "Positive duration (e.g. 8h) a privacy scope's synthetic identities remain valid; required"
        },
        {
          "name": "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID",
          "isRequired": true,
          "description": "Identifier of the pinned HMAC key used to derive synthetic identities; required"
        },
        {
          "name": "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE",
          "isRequired": true,
          "description": "Name of the environment variable holding the HMAC key material; exactly one of this or DATAPRISM_PRIVACY_HMAC_KEY_PROVIDER_REFERENCE is required, never both, and never a literal key value"
        },
        {
          "name": "DATAPRISM_PRIVACY_HMAC_KEY_PROVIDER_REFERENCE",
          "description": "Reference to an approved secret provider holding the HMAC key material; set this instead of DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE, never both"
        },
        {
          "name": "DATAPRISM_AUDIT_SINK",
          "isRequired": true,
          "description": "Audit sink implementation: one of approved-sink, slf4j, hash-chained; required, never downgraded to no-op"
        },
        {
          "name": "DATAPRISM_AUDIT_WRITER_ID",
          "isRequired": true,
          "description": "Writer/instance identity recorded on every audit entry; required"
        },
        {
          "name": "DATAPRISM_AUDIT_FILE_PATH",
          "description": "Path to the durable, hash-chained audit log; required when DATAPRISM_AUDIT_SINK=hash-chained, refused as MISSING_AUDIT_FILE_PATH if absent for that sink, ignored otherwise"
        },
        {
          "name": "DATAPRISM_METRICS_SINK",
          "isRequired": true,
          "description": "Metrics sink binding, currently only micrometer; required in production, never the framework no-op"
        },
        {
          "name": "DATAPRISM_HAZELCAST_TOPOLOGY",
          "isRequired": true,
          "description": "Cluster read-budget topology: embedded (shared across members that have joined one cluster; set cluster name and join mode) or single-node (enforced per process); required, never defaulted"
        },
        {
          "name": "DATAPRISM_HAZELCAST_CLUSTERNAME",
          "description": "Hazelcast cluster name; required when DATAPRISM_HAZELCAST_TOPOLOGY=embedded, never dev, refused if set with single-node"
        },
        {
          "name": "DATAPRISM_HAZELCAST_JOIN_MODE",
          "description": "How cluster members find each other: tcp-ip, kubernetes or none; required when DATAPRISM_HAZELCAST_TOPOLOGY=embedded (none is an explicit single member bound to 127.0.0.1), refused if set with single-node"
        },
        {
          "name": "DATAPRISM_HAZELCAST_JOIN_MEMBERS",
          "description": "Comma-separated member addresses (host or host:port); required when DATAPRISM_HAZELCAST_JOIN_MODE=tcp-ip, otherwise unused"
        },
        {
          "name": "DATAPRISM_HAZELCAST_MEMBER_PORT",
          "description": "Hazelcast member port, default 5701, never auto-incremented; must differ from the server, management and operator ports. Member traffic is unencrypted, so keep it on a private network. Optional"
        },
        {
          "name": "DATAPRISM_OPERATOR_ENABLED",
          "description": "Enables the operator surface; optional, off by default"
        },
        {
          "name": "DATAPRISM_OPERATOR_PORT",
          "description": "Port of the operator listener; required when DATAPRISM_OPERATOR_ENABLED=true, must differ from the server, management (OPERATOR_PORT_SHARED otherwise) and member ports, and has no fixed default (publish it explicitly)"
        },
        {
          "name": "DATAPRISM_OPERATOR_REQUIREDAUDIENCE",
          "description": "JWT audience an operator token must carry; required when DATAPRISM_OPERATOR_ENABLED=true"
        },
        {
          "name": "DATAPRISM_OPERATOR_REQUIREDSCOPE",
          "description": "JWT scope an operator token must carry; required when DATAPRISM_OPERATOR_ENABLED=true"
        },
        {
          "name": "DATAPRISM_SOURCES_CUSTOMER_BASE_URL",
          "isRequired": true,
          "description": "Example only — declare DATAPRISM_SOURCES_<NAME>_BASE_URL (HTTPS) per configured source; at least one source, each with its own reviewed DataSourceAdapter bean, is required"
        },
        {
          "name": "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT",
          "isRequired": true,
          "description": "Example only — declare DATAPRISM_SOURCES_<NAME>_TIMEOUT (positive duration) per configured source; required alongside its base URL"
        }
      ]
    }
  ],
  "repository": {
    "id": "1361848414",
    "url": "https://github.com/AindriuB/data-prism",
    "source": "github"
  },
  "websiteUrl": "https://aindriub.github.io/data-prism/",
  "description": "Fail-closed privacy layer that pseudonymises enterprise API data for LLM agents and MCP clients."
}