Search / io.github.AindriuB/data-prism
Data Prism
L0· runs locallyFail-closed privacy layer that pseudonymises enterprise API data for LLM agents and MCP clients.
v0.6.0 · active · repository · website · descriptor JSON · versions
Search / io.github.AindriuB/data-prism
L0· runs locallyFail-closed privacy layer that pseudonymises enterprise API data for LLM agents and MCP clients.
v0.6.0 · active · repository · website · descriptor JSON · versions
{
"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.
Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.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)stability.changes, stability.rug_pulltool list unknowndeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageNo 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.
+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.
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
ghcr.io/aindriub/data-prism-server:0.6.0 | oci | unpinned | docker |
No tools observed. Local packages are never executed by the registry.
Schemas: list_tools.
{
"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."
}