A Model Context Protocol (MCP) server that allows interacting with the CipherTrust RestFul Data Protection (CRDP) service. This MCP server enables AI applications and LLMs to securely protect and reveal sensitive data through the CipherTrust CRDP service. It supports both individual and bulk protect and reveal operations with versioning support. - Video 1: [https://youtu.be/O2pQRoykaaU] - Deployme
Add this skill
npx mdskills install sanyambassi/thales-cdsp-crdp-mcp-serverWell-documented MCP server enabling secure data protection/revelation through Thales CipherTrust CRDP with clear setup and examples
A Model Context Protocol (MCP) server that allows interacting with the CipherTrust RestFul Data Protection (CRDP) service.
This MCP server enables AI applications and LLMs to securely protect and reveal sensitive data through the CipherTrust CRDP service. It supports both individual and bulk protect and reveal operations with versioning support.
Before installing and running the CRDP MCP Server, ensure you have the following prerequisites installed:
See prerequisites for detailed installation instructions.
git clone https://github.com/sanyambassi/thales-cdsp-crdp-mcp-server.git
cd thales-cdsp-crdp-mcp-server
npm install
npm run build
npm start
MCP_TRANSPORT=streamable-http npm start
| Variable | Description | Default |
|---|---|---|
CRDP_SERVICE_URL | CRDP service endpoint for protect/reveal operations | http://localhost:8090 |
CRDP_PROBES_URL | CRDP service endpoint for monitoring operations | http://localhost:8080 |
MCP_TRANSPORT | Transport type (stdio or streamable-http) | stdio |
MCP_PORT | HTTP port (when using streamable-http) | 3000 |
Windows (PowerShell):
$env:CRDP_SERVICE_URL="http://crdp-server:8090"
$env:MCP_TRANSPORT="streamable-http"
Windows (CMD):
set CRDP_SERVICE_URL=http://crdp-server:8090
set MCP_TRANSPORT=streamable-http
Linux/macOS:
export CRDP_SERVICE_URL="http://crdp-server:8090"
export CRDP_PROBES_URL="http://crdp-server:8080"
export MCP_TRANSPORT="streamable-http"
export MCP_PORT="3000"
protect_dataProtect a single piece of sensitive data.
Parameters:
data (required): The sensitive data to protectprotection_policy_name (required): CRDP protection policy namejwt (optional, required if CRDP is running with JWT verification enabled): JWT token for authorizationNote: If CRDP is running with JWT verification enabled, 'jwt' is required.
Example:
{
"name": "protect_data",
"arguments": {
"data": "john.doe@example.com",
"protection_policy_name": "email_policy",
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
protect_bulkProtect multiple data items in a single batch operation.
Parameters:
request_data (required): Array of protection request objectsjwt (optional, required if CRDP is running with JWT verification enabled): JWT token for authorizationNote: If CRDP is running with JWT verification enabled, 'jwt' is required.
Example:
{
"name": "protect_bulk",
"arguments": {
"request_data": [
{
"protection_policy_name": "email_policy",
"data": "john.doe@example.com"
},
{
"protection_policy_name": "ssn_policy",
"data": "123-45-6789"
}
]
}
}
reveal_dataReveal a single piece of protected data.
Parameters:
protected_data (required): The protected data to revealprotection_policy_name (required): Policy name used for protectionexternal_version (optional): Version information for the protected datausername (conditionally required): User identity for authorization (required if 'jwt' is not provided)jwt (conditionally required): JWT token for authorization (required if 'username' is not provided)Note: At least one of 'username' or 'jwt' is required for reveal operations.
Example:
{
"name": "reveal_data",
"arguments": {
"protected_data": "enc_abc123def456",
"username": "authorized_user",
"protection_policy_name": "email_policy",
"external_version": "1003000",
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
reveal_bulkReveal multiple protected data items in a single batch operation.
Parameters:
protected_data (required): The protected data to revealusername (required): User identity for authorizationprotection_policy_name (required): Policy name used for protectionexternal_version (optional): From the output of the protect operation when using a protection policy with external versioningjwt (optional): JWT token for authorizationExample:
{
"name": "reveal_bulk",
"arguments": {
"username": "authorized_user",
"protected_data_array": [
{
"protection_policy_name": "email_policy",
"protected_data": "enc_abc123"
},
{
"protection_policy_name": "ssn_policy",
"protected_data": "enc_def456"
}
],
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
get_metricsGet CRDP service metrics.
check_healthCheck CRDP service health status.
check_livenessCheck CRDP service liveness.
The server supports Portection Policy versioning:
Returns both protected data and external version:
Data protected successfully. Protected data: abcdefcLJTrU0Y8FKC
External version: 1003000
Returns protected data with embedded version:
Data protected successfully. Protected data: 1001000Y57IlQvok1Ke
Returns protected data only:
Data protected successfully. Protected data: BcmX5McZK6BB
For comprehensive testing instructions, see testing.
This MCP server can be integrated with various AI assistants to enable secure data protection and revelation capabilities through natural language interactions.
All supported AI assistants use the same mcp.json configuration:
{
"mcpServers": {
"crdp": {
"command": "node",
"args": ["/path/to/your/crdp-mcp-server/dist/crdp-mcp-server.js"],
"env": {
"CRDP_SERVICE_URL": "http://your-crdp-server:8090",
"CRDP_PROBES_URL": "http://your-crdp-server:8080",
"MCP_TRANSPORT": "stdio"
}
}
}
}
After configuration, you can use natural language commands like:
For detailed setup instructions and troubleshooting, see AI Assistant Integration Guide.
This project includes n8n workflow templates for creating conversational AI interfaces to the CRDP service:
crdp_demo_mcp_server.json: MCP Server workflow that exposes CRDP toolscrdp_demo_mcp_client.json: MCP Client workflow with conversational AI interface.
Note: You will need an OpenAI API key to use the conversational AI features. Sign up or generate a key at the OpenAI website.For detailed n8n setup instructions, see n8n docs.
Test the server using curl:
# Test HTTP transport
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "protect_data",
"arguments": {
"data": "test@example.com",
"protection_policy_name": "email_policy"
}
}
}'
crdp-mcp-server/
├── src/
│ └── crdp-mcp-server.ts # Main server implementation
├── dist/ # Compiled JavaScript output
├── docs/ # Documentation
├── n8n/ # n8n workflow templates
├── package.json # Project configuration
├── scripts/
│ └── test-server.ts # Test Script
└── tsconfig.json # TypeScript configuration
| Script | Description |
|---|---|
npm start | Start the server (stdio transport) |
npm run dev | Start development server with auto-reload |
npm run build | Compile TypeScript to JavaScript |
npm run clean | Clean the dist directory |
npm install -g typescriptThe server outputs logs to stderr. Check for:
This project is licensed under the MIT License (c) 2025 Thales Group. See the LICENSE file for details.
For issues and questions:
Install via CLI
npx mdskills install sanyambassi/thales-cdsp-crdp-mcp-serverThales CDSP CRDP MCP Server is a free, open-source AI agent skill. A Model Context Protocol (MCP) server that allows interacting with the CipherTrust RestFul Data Protection (CRDP) service. This MCP server enables AI applications and LLMs to securely protect and reveal sensitive data through the CipherTrust CRDP service. It supports both individual and bulk protect and reveal operations with versioning support. - Video 1: [https://youtu.be/O2pQRoykaaU] - Deployme
Install Thales CDSP CRDP MCP Server with a single command:
npx mdskills install sanyambassi/thales-cdsp-crdp-mcp-serverThis downloads the skill files into your project and your AI agent picks them up automatically.
Thales CDSP CRDP MCP Server works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Gemini Cli, Amp, Roo Code, Goose. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.