Data Prism MCP Server

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

Local serverstreamable-http

What is the Data Prism MCP Server?

Data Prism is an MCP integration. Fail-closed privacy layer that pseudonymises enterprise API data for LLM agents and MCP clients.

Packages and local setup

The published oci package is ghcr.io/aindriub/data-prism-server:0.5.0. Its declared MCP transport is streamable-http.

The package declares LOADER_PATH (required): 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); DATAPRISM_SECURITY_JWT_ISSUER (required): OAuth2/OIDC issuer that mints the caller's JWT; required for every protected deployment; DATAPRISM_SECURITY_JWT_AUDIENCE (required): Expected JWT audience claim for this deployment; required for every protected deployment; DATAPRISM_SECURITY_JWT_JWK_SET_URI (required): HTTPS JWKS location used to verify caller JWTs; exactly one of this or DATAPRISM_SECURITY_JWT_ISSUER_DISCOVERY_URI is required, never both; DATAPRISM_SECURITY_JWT_ISSUER_DISCOVERY_URI: Alternative HTTPS OIDC issuer-discovery location; set this instead of DATAPRISM_SECURITY_JWT_JWK_SET_URI, never both; DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL (required): JWT claim name that carries the caller's principal identifier; required, must differ from the roles and investigation claims; DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES (required): JWT claim name that carries the caller's roles; required, must differ from the principal and investigation claims; DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION (required): JWT claim name that carries the trusted investigation/case identifier; required, must differ from the principal and roles claims; DATAPRISM_SECURITY_POLICY_PURPOSES (required): Comma-separated list of permitted purposes; at least one is required; DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR (required): Example only — declare DATAPRISM_SECURITYPOLICY_ROLES_ per operator-defined role (no underscore between SECURITY and POLICY: Spring Boot's map-key enumeration under a hyphenated dataprism.security-policy.roles. 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; DATAPRISM_PRIVACY_PROFILE (required): Name of the reviewed privacy profile implementation to apply; required; DATAPRISM_PRIVACY_SCOPE_LIFETIME (required): Positive duration (e.g. 8h) a privacy scope's synthetic identities remain valid; required; DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID (required): Identifier of the pinned HMAC key used to derive synthetic identities; required; DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE (required): 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; DATAPRISM_PRIVACY_HMAC_KEY_PROVIDER_REFERENCE: Reference to an approved secret provider holding the HMAC key material; set this instead of DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE, never both; DATAPRISM_AUDIT_SINK (required): Audit sink implementation: one of approved-sink, slf4j, hash-chained; required, never downgraded to no-op; DATAPRISM_AUDIT_WRITER_ID (required): Writer/instance identity recorded on every audit entry; required; DATAPRISM_AUDIT_FILE_PATH: 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; DATAPRISM_METRICS_SINK (required): Metrics sink binding, currently only micrometer; required in production, never the framework no-op; DATAPRISM_HAZELCAST_TOPOLOGY (required): 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; DATAPRISM_HAZELCAST_CLUSTERNAME: Hazelcast cluster name; required when DATAPRISM_HAZELCAST_TOPOLOGY=embedded, never dev, refused if set with single-node; DATAPRISM_HAZELCAST_JOIN_MODE: 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; DATAPRISM_HAZELCAST_JOIN_MEMBERS: Comma-separated member addresses (host or host:port); required when DATAPRISM_HAZELCAST_JOIN_MODE=tcp-ip, otherwise unused; DATAPRISM_HAZELCAST_MEMBER_PORT: 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; DATAPRISM_OPERATOR_ENABLED: Enables the operator surface; optional, off by default; DATAPRISM_OPERATOR_PORT: 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); DATAPRISM_OPERATOR_REQUIREDAUDIENCE: JWT audience an operator token must carry; required when DATAPRISM_OPERATOR_ENABLED=true; DATAPRISM_OPERATOR_REQUIREDSCOPE: JWT scope an operator token must carry; required when DATAPRISM_OPERATOR_ENABLED=true; DATAPRISM_SOURCES_CUSTOMER_BASE_URL (required): Example only — declare DATAPRISM_SOURCES_ BASE_URL (HTTPS) per configured source; at least one source, each with its own reviewed DataSourceAdapter bean, is required; DATAPRISM_SOURCES_CUSTOMER_TIMEOUT (required): Example only — declare DATAPRISM_SOURCES _TIMEOUT (positive duration) per configured source; required alongside its base URL.

This package has launch arguments in its registry record. Use the maintainer’s configuration for those arguments rather than launching it with only the package name.

Before connecting

Check the maintainer’s instructions for account access, authentication and the supported client configuration. Once connected, inspect the tools your client receives and try a small task that matches the server’s stated purpose. The registry description does not include a verified, complete tool list.

Project and source

View the publisher’s registry entry · Project repository · Project website. This profile uses version 0.5.0 from the registry. Registration identifies the publisher namespace; it does not establish that this is a first-party integration for every service it connects.

Browse related other integrations MCP servers for tools that cover the same kind of work.

Configuration

VariableDescriptionRequired
LOADER_PATHDirectory 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)Yes
DATAPRISM_SECURITY_JWT_ISSUEROAuth2/OIDC issuer that mints the caller's JWT; required for every protected deploymentYes
DATAPRISM_SECURITY_JWT_AUDIENCEExpected JWT audience claim for this deployment; required for every protected deploymentYes
DATAPRISM_SECURITY_JWT_JWK_SET_URIHTTPS JWKS location used to verify caller JWTs; exactly one of this or DATAPRISM_SECURITY_JWT_ISSUER_DISCOVERY_URI is required, never bothYes
DATAPRISM_SECURITY_JWT_ISSUER_DISCOVERY_URIAlternative HTTPS OIDC issuer-discovery location; set this instead of DATAPRISM_SECURITY_JWT_JWK_SET_URI, never bothCheck documentation
DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPALJWT claim name that carries the caller's principal identifier; required, must differ from the roles and investigation claimsYes
DATAPRISM_SECURITY_CALLER_CLAIMS_ROLESJWT claim name that carries the caller's roles; required, must differ from the principal and investigation claimsYes
DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATIONJWT claim name that carries the trusted investigation/case identifier; required, must differ from the principal and roles claimsYes
DATAPRISM_SECURITY_POLICY_PURPOSESComma-separated list of permitted purposes; at least one is requiredYes
DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATORExample only — declare DATAPRISM_SECURITYPOLICY_ROLES_ per operator-defined role (no underscore between SECURITY and POLICY: Spring Boot's map-key enumeration under a hyphenated dataprism.security-policy.roles. 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 requiredYes
DATAPRISM_PRIVACY_PROFILEName of the reviewed privacy profile implementation to apply; requiredYes
DATAPRISM_PRIVACY_SCOPE_LIFETIMEPositive duration (e.g. 8h) a privacy scope's synthetic identities remain valid; requiredYes
DATAPRISM_PRIVACY_HMAC_KEY_KEY_IDIdentifier of the pinned HMAC key used to derive synthetic identities; requiredYes
DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLEName 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 valueYes
DATAPRISM_PRIVACY_HMAC_KEY_PROVIDER_REFERENCEReference to an approved secret provider holding the HMAC key material; set this instead of DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE, never bothCheck documentation
DATAPRISM_AUDIT_SINKAudit sink implementation: one of approved-sink, slf4j, hash-chained; required, never downgraded to no-opYes
DATAPRISM_AUDIT_WRITER_IDWriter/instance identity recorded on every audit entry; requiredYes
DATAPRISM_AUDIT_FILE_PATHPath 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 otherwiseCheck documentation
DATAPRISM_METRICS_SINKMetrics sink binding, currently only micrometer; required in production, never the framework no-opYes
DATAPRISM_HAZELCAST_TOPOLOGYCluster 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 defaultedYes
DATAPRISM_HAZELCAST_CLUSTERNAMEHazelcast cluster name; required when DATAPRISM_HAZELCAST_TOPOLOGY=embedded, never dev, refused if set with single-nodeCheck documentation
DATAPRISM_HAZELCAST_JOIN_MODEHow 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-nodeCheck documentation
DATAPRISM_HAZELCAST_JOIN_MEMBERSComma-separated member addresses (host or host:port); required when DATAPRISM_HAZELCAST_JOIN_MODE=tcp-ip, otherwise unusedCheck documentation
DATAPRISM_HAZELCAST_MEMBER_PORTHazelcast 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. OptionalCheck documentation
DATAPRISM_OPERATOR_ENABLEDEnables the operator surface; optional, off by defaultCheck documentation
DATAPRISM_OPERATOR_PORTPort 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)Check documentation
DATAPRISM_OPERATOR_REQUIREDAUDIENCEJWT audience an operator token must carry; required when DATAPRISM_OPERATOR_ENABLED=trueCheck documentation
DATAPRISM_OPERATOR_REQUIREDSCOPEJWT scope an operator token must carry; required when DATAPRISM_OPERATOR_ENABLED=trueCheck documentation
DATAPRISM_SOURCES_CUSTOMER_BASE_URLExample only — declare DATAPRISM_SOURCES_ _BASE_URL (HTTPS) per configured source; at least one source, each with its own reviewed DataSourceAdapter bean, is requiredYes
DATAPRISM_SOURCES_CUSTOMER_TIMEOUTExample only — declare DATAPRISM_SOURCES_ _TIMEOUT (positive duration) per configured source; required alongside its base URLYes