Thales CDSP CRDP MCP Server

Thales CDSP CRDP MCP Server

MCP server enabling secure data protection and revelation with Thales CipherTrust CRDP

2
Stars
3
Forks
2
Watchers
0
Issues
Thales CDSP CRDP MCP Server implements the Model Context Protocol (MCP) to allow AI applications and LLMs to securely protect and reveal sensitive data via Thales CipherTrust RestFul Data Protection (CRDP) service. The server supports both stdio and HTTP transports, individual and bulk data operations, and robust versioning support. Features include health checks, metrics collection, and integration with protection policies and JWT-based authorization.

Key Features

Supports Model Context Protocol for secure AI context handling
Integration with Thales CipherTrust RestFul Data Protection (CRDP)
Single and bulk data protect/reveal operations
Transport options: stdio and HTTP
Policy-based data protection
JWT-based authorization supported
External, internal, and non-versioned protection policy support
Health checks and monitoring endpoints
Metrics collection for operational insight
Environment variable configuration

Use Cases

Secure context management for generative AI workflows
Protecting and revealing user data in AI chatbots
Implementing organizational data security in AI-powered applications
Batch processing of sensitive data with policy enforcement
Integrating data protection with workflow automation tools like n8n and Cursor AI
Supporting compliance and auditability in AI systems
Managing versioned data protection policies in LLM contexts
Facilitating secure data exchange between applications and CRDP service
Providing health and metrics monitoring for secure data services
Enabling JWT-protected access to sensitive data for authorized users and services

README

Thales CDSP CRDP MCP Server

A Model Context Protocol (MCP) server that allows interacting with the CipherTrust RestFul Data Protection (CRDP) service.

Overview

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.

Demo Videos

  • Video 1: [https://youtu.be/O2pQRoykaaU] - Deployment and usage with Cursor AI
  • Video 2: [https://youtu.be/ILNyWRYQUpw] - How to use the n8n workflows

Features

  • Data Protection: Protect sensitive data using Data Protection policies defined on the Thales CipherTrust manager.
  • Data Revelation: Securely reveal protected data with proper authorization (username/jwt)
  • Bulk Operations: Process multiple data items in single batch operations
  • Versioning Support: Handles external versioned, internal versioned, and version disabled protection policies.
  • Monitoring: Health checks and metrics collection
  • Multiple Transports: Support for stdio and HTTP transports

Prerequisites

Before installing and running the CRDP MCP Server, ensure you have the following prerequisites installed:

  • Node.js (v18 or higher)
  • npm (comes with Node.js)
  • TypeScript (installed globally)
  • CRDP container running and registered with CipherTrust Manager

See prerequisites for detailed installation instructions.

Quick Start

1. Clone the Repository

bash
git clone https://github.com/sanyambassi/thales-cdsp-crdp-mcp-server.git
cd thales-cdsp-crdp-mcp-server

2. Install Dependencies

bash
npm install

3. Build the Project

bash
npm run build

4. Start the Server

For stdio transport (default):

bash
npm start

For HTTP transport:

bash
MCP_TRANSPORT=streamable-http npm start

Configuration

Environment Variables

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

Setting Environment Variables

Windows (PowerShell):

powershell
$env:CRDP_SERVICE_URL="http://crdp-server:8090"
$env:MCP_TRANSPORT="streamable-http"

Windows (CMD):

cmd
set CRDP_SERVICE_URL=http://crdp-server:8090
set MCP_TRANSPORT=streamable-http

Linux/macOS:

bash
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"

Available Tools

Data Protection Tools

protect_data

Protect a single piece of sensitive data.

Parameters:

  • data (required): The sensitive data to protect
  • protection_policy_name (required): CRDP protection policy name
  • jwt (optional, required if CRDP is running with JWT verification enabled): JWT token for authorization

Note: If CRDP is running with JWT verification enabled, 'jwt' is required.

Example:

json
{
  "name": "protect_data",
  "arguments": {
    "data": "john.doe@example.com",
    "protection_policy_name": "email_policy",
    "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
  }
}

protect_bulk

Protect multiple data items in a single batch operation.

Parameters:

  • request_data (required): Array of protection request objects
  • jwt (optional, required if CRDP is running with JWT verification enabled): JWT token for authorization

Note: If CRDP is running with JWT verification enabled, 'jwt' is required.

Example:

json
{
  "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"
      }
    ]
  }
}

Data Revelation Tools

reveal_data

Reveal a single piece of protected data.

Parameters:

  • protected_data (required): The protected data to reveal
  • protection_policy_name (required): Policy name used for protection
  • external_version (optional): Version information for the protected data
  • username (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:

json
{
  "name": "reveal_data",
  "arguments": {
    "protected_data": "enc_abc123def456",
    "username": "authorized_user",
    "protection_policy_name": "email_policy",
    "external_version": "1003000",
    "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
  }
}

reveal_bulk

Reveal multiple protected data items in a single batch operation.

Parameters:

  • protected_data (required): The protected data to reveal
  • username (required): User identity for authorization
  • protection_policy_name (required): Policy name used for protection
  • external_version (optional): From the output of the protect operation when using a protection policy with external versioning
  • jwt (optional): JWT token for authorization

Example:

json
{
  "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..."
  }
}

Monitoring Tools

get_metrics

Get CRDP service metrics.

check_health

Check CRDP service health status.

check_liveness

Check CRDP service liveness.

Versioning Support

The server supports Portection Policy versioning:

1. External Versioning

Returns both protected data and external version:

Data protected successfully. Protected data: abcdefcLJTrU0Y8FKC
External version: 1003000

2. Internal Versioning

Returns protected data with embedded version:

Data protected successfully. Protected data: 1001000Y57IlQvok1Ke

3. Versioning Disabled

Returns protected data only:

Data protected successfully. Protected data: BcmX5McZK6BB

Testing

For comprehensive testing instructions, see testing.

Integration with AI Assistants

This MCP server can be integrated with various AI assistants to enable secure data protection and revelation capabilities through natural language interactions.

Supported AI Assistants

  • Cursor AI
  • Google Gemini
  • Claude Desktop

Quick Setup

All supported AI assistants use the same mcp.json configuration:

json
{
  "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"
      }
    }
  }
}

Usage Examples

After configuration, you can use natural language commands like:

  • "Protect my email address john.doe@example.com using the email_policy"
  • "Reveal the protected data abc123def456 for user admin using protection policy ssn_policy"
  • "Check the health of my CRDP service"

For detailed setup instructions and troubleshooting, see AI Assistant Integration Guide.

n8n Integration

This project includes n8n workflow templates for creating conversational AI interfaces to the CRDP service:

n8n Templates

  • crdp_demo_mcp_server.json: MCP Server workflow that exposes CRDP tools
  • crdp_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.

Features

  • Conversational Interface: Protect and reveal data using natural language
  • JWT Authorization: Secure operations with optional JWT tokens
  • Conversational Memory: Maintains context across chat sessions
  • Intelligent Tool Selection: Automatically uses bulk operations for multiple data items
  • Strict Security: Always requires proper authorization parameters

Quick Setup

  1. Import Workflows: Import both JSON files into your n8n instance
  2. Configure Credentials: Add your OpenAI credentials to the MCP Client
  3. Activate Workflows: Enable both workflows
  4. Start Chatting: Use the chat interface to interact with CRDP

For detailed n8n setup instructions, see n8n docs.

Quick Test

Test the server using curl:

bash
# 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"
      }
    }
  }'

Development

Project Structure

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

npm Commands

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

Security Considerations

  • All sensitive data is processed through the secure CRDP service
  • User authorization is required for all reveal operations
  • The server does not store sensitive data locally
  • This MCP server only supports CRDP running in no-tls mode

Troubleshooting

Common Issues

  1. "tsc is not recognized": Install TypeScript globally with npm install -g typescript
  2. Connection refused: Ensure CRDP service is running and accessible
  3. 404 errors: Ensure correct protection policy names are being used

Logs

The server outputs logs to stderr. Check for:

  • CRDP service connection status
  • Tool execution results
  • Error messages and stack traces

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

This project is licensed under the MIT License (c) 2025 Thales Group. See the LICENSE file for details.

Support

For issues and questions:

Star History

Star History Chart

Repository Owner

Repository Details

Language JavaScript
Default Branch main
Size 81 KB
License MIT License
MCP Verified Nov 12, 2025

Programming Languages

JavaScript
100%

Topics

ai aiassistant cdsp ciphertrust crdp cursor gemini genai llm mcp mcp-server nodejs security thales typescript

Join Our Newsletter

Stay updated with the latest AI tools, news, and offers by subscribing to our weekly newsletter.

We respect your privacy. Unsubscribe at any time.

Related MCPs

Discover similar Model Context Protocol servers

  • Lara Translate MCP Server

    Lara Translate MCP Server

    Context-aware translation server implementing the Model Context Protocol.

    Lara Translate MCP Server enables AI applications to seamlessly access professional translation services via the standardized Model Context Protocol. It supports features such as language detection, context-aware translations, and translation memory integration. The server acts as a secure bridge between AI models and Lara Translate, managing credentials and facilitating structured translation requests and responses.

    • 76
    • MCP
    • translated/lara-mcp
  • TeslaMate MCP Server

    TeslaMate MCP Server

    Query your TeslaMate data using the Model Context Protocol

    TeslaMate MCP Server implements the Model Context Protocol to enable AI assistants and clients to securely access and query Tesla vehicle data, statistics, and analytics from a TeslaMate PostgreSQL database. The server exposes a suite of tools for retrieving vehicle status, driving history, charging sessions, battery health, and more using standardized MCP endpoints. It supports local and Docker deployments, includes bearer token authentication, and is intended for integration with MCP-compatible AI systems like Claude Desktop.

    • 106
    • MCP
    • cobanov/teslamate-mcp
  • Teamwork MCP Server

    Teamwork MCP Server

    Seamless Teamwork.com integration for Large Language Models via the Model Context Protocol

    Teamwork MCP Server is an implementation of the Model Context Protocol (MCP) that enables Large Language Models to interact securely and programmatically with Teamwork.com. It offers standardized interfaces, including HTTP and STDIO, allowing AI agents to perform various project management operations. The server supports multiple authentication methods, an extensible toolset architecture, and is designed for production deployments. It provides read-only capability for safe integrations and robust observability features.

    • 11
    • MCP
    • Teamwork/mcp
  • Azure DevOps MCP Server

    Azure DevOps MCP Server

    Standardized AI access to Azure DevOps via Model Context Protocol.

    Implements the Model Context Protocol (MCP) to enable AI assistants to securely and efficiently interact with Azure DevOps resources. Provides a standardized bridge for managing projects, work items, repositories, pull requests, and pipelines through natural language interfaces. Supports modular authentication and a feature-based architecture for scalability and integration. Facilitates seamless integration with AI tools such as Claude Desktop and Cursor AI.

    • 306
    • MCP
    • Tiberriver256/mcp-server-azure-devops
  • Weblate MCP Server

    Weblate MCP Server

    Seamlessly connect AI assistants to Weblate for translation management via the Model Context Protocol.

    Weblate MCP Server enables AI assistants and clients to directly manage Weblate translation projects through the Model Context Protocol (MCP). It integrates with the Weblate REST API, allowing natural language interaction for project and translation management. The tool offers multiple transport options including HTTP, SSE, and STDIO, and is optimized for large language model workflows. Full support for project, component, and translation operations is provided, with a focus on type safety and flexible environment configuration.

    • 9
    • MCP
    • mmntm/weblate-mcp
  • attio-mcp-server

    attio-mcp-server

    MCP server for enabling Attio CRM access via AI model context clients.

    attio-mcp-server implements a Model Context Protocol (MCP) server that facilitates communication between MCP clients, such as Claude, and the Attio CRM API. It enables reading and writing company notes and records within Attio by leveraging a bearer token for authentication. Designed for Node.js, it provides streamlined integration with Attio for applications utilizing AI-driven model context protocols.

    • 16
    • MCP
    • hmk/attio-mcp-server
  • Didn't find tool you were looking for?

    Be as detailed as possible for better results