Skip to content
VS Code

Data Prism for VS Code

io.github.aindriub/data-prism

Privacy layer for enterprise APIs; refuses to start without a reviewed adapter jar per source

client:VS Code transport:stdio runtime:oci

Install Data Prism in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "loader-path",
      "description": "LOADER_PATH",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-security-jwt-issuer",
      "description": "DATAPRISM_SECURITY_JWT_ISSUER",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-security-jwt-audience",
      "description": "DATAPRISM_SECURITY_JWT_AUDIENCE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-security-jwt-jwk-set-uri",
      "description": "DATAPRISM_SECURITY_JWT_JWK_SET_URI",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-security-jwt-issuer-discovery-uri",
      "description": "DATAPRISM_SECURITY_JWT_ISSUER_DISCOVERY_URI",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-security-caller-claims-principal",
      "description": "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-security-caller-claims-roles",
      "description": "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-security-caller-claims-investigation",
      "description": "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-security-policy-purposes",
      "description": "DATAPRISM_SECURITY_POLICY_PURPOSES",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-securitypolicy-roles-investigator",
      "description": "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-privacy-profile",
      "description": "DATAPRISM_PRIVACY_PROFILE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-privacy-scope-lifetime",
      "description": "DATAPRISM_PRIVACY_SCOPE_LIFETIME",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-privacy-hmac-key-key-id",
      "description": "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-privacy-hmac-key-environment-variable",
      "description": "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-privacy-hmac-key-provider-reference",
      "description": "DATAPRISM_PRIVACY_HMAC_KEY_PROVIDER_REFERENCE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-audit-sink",
      "description": "DATAPRISM_AUDIT_SINK",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-audit-writer-id",
      "description": "DATAPRISM_AUDIT_WRITER_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-audit-file-path",
      "description": "DATAPRISM_AUDIT_FILE_PATH",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-metrics-sink",
      "description": "DATAPRISM_METRICS_SINK",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-hazelcast-topology",
      "description": "DATAPRISM_HAZELCAST_TOPOLOGY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-sources-customer-base-url",
      "description": "DATAPRISM_SOURCES_CUSTOMER_BASE_URL",
      "password": true
    },
    {
      "type": "promptString",
      "id": "dataprism-sources-customer-timeout",
      "description": "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT",
      "password": true
    }
  ],
  "servers": {
    "data-prism": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/aindriub/data-prism-server:0.3.0"
      ],
      "env": {
        "LOADER_PATH": "${input:loader-path}",
        "DATAPRISM_SECURITY_JWT_ISSUER": "${input:dataprism-security-jwt-issuer}",
        "DATAPRISM_SECURITY_JWT_AUDIENCE": "${input:dataprism-security-jwt-audience}",
        "DATAPRISM_SECURITY_JWT_JWK_SET_URI": "${input:dataprism-security-jwt-jwk-set-uri}",
        "DATAPRISM_SECURITY_JWT_ISSUER_DISCOVERY_URI": "${input:dataprism-security-jwt-issuer-discovery-uri}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_PRINCIPAL": "${input:dataprism-security-caller-claims-principal}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_ROLES": "${input:dataprism-security-caller-claims-roles}",
        "DATAPRISM_SECURITY_CALLER_CLAIMS_INVESTIGATION": "${input:dataprism-security-caller-claims-investigation}",
        "DATAPRISM_SECURITY_POLICY_PURPOSES": "${input:dataprism-security-policy-purposes}",
        "DATAPRISM_SECURITYPOLICY_ROLES_INVESTIGATOR": "${input:dataprism-securitypolicy-roles-investigator}",
        "DATAPRISM_PRIVACY_PROFILE": "${input:dataprism-privacy-profile}",
        "DATAPRISM_PRIVACY_SCOPE_LIFETIME": "${input:dataprism-privacy-scope-lifetime}",
        "DATAPRISM_PRIVACY_HMAC_KEY_KEY_ID": "${input:dataprism-privacy-hmac-key-key-id}",
        "DATAPRISM_PRIVACY_HMAC_KEY_ENVIRONMENT_VARIABLE": "${input:dataprism-privacy-hmac-key-environment-variable}",
        "DATAPRISM_PRIVACY_HMAC_KEY_PROVIDER_REFERENCE": "${input:dataprism-privacy-hmac-key-provider-reference}",
        "DATAPRISM_AUDIT_SINK": "${input:dataprism-audit-sink}",
        "DATAPRISM_AUDIT_WRITER_ID": "${input:dataprism-audit-writer-id}",
        "DATAPRISM_AUDIT_FILE_PATH": "${input:dataprism-audit-file-path}",
        "DATAPRISM_METRICS_SINK": "${input:dataprism-metrics-sink}",
        "DATAPRISM_HAZELCAST_TOPOLOGY": "${input:dataprism-hazelcast-topology}",
        "DATAPRISM_SOURCES_CUSTOMER_BASE_URL": "${input:dataprism-sources-customer-base-url}",
        "DATAPRISM_SOURCES_CUSTOMER_TIMEOUT": "${input:dataprism-sources-customer-timeout}"
      }
    }
  }
}

VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs

Data Prism in other clients