An MCP (Model Context Protocol) server that provides AES-256-CBC encryption and decryption tools, a resource describing the algorithm, and ready-to-use prompts — all runnable directly inside VS Code Copilot Chat.
| Capability | Name | Description |
|---|---|---|
| 🔧 Tool | encrypt_message |
Encrypts any plain-text message with a passphrase |
| 🔧 Tool | decrypt_message |
Decrypts a previously encrypted message with the same passphrase |
| 📄 Resource | encryption://info |
Returns details about the algorithm, key derivation, and output format |
| 💬 Prompt | encrypt_message_prompt |
Pre-built prompt that asks the agent to encrypt a message |
| 💬 Prompt | decrypt_message_prompt |
Pre-built prompt that asks the agent to decrypt a message |
- Algorithm: AES-256-CBC
- Key derivation:
scrypt(passphrase, fixedSalt, 32)— you pass any passphrase string; the server derives a strong 32-byte key automatically - Output format:
<IV in hex>:<ciphertext in hex>— keep the full string to decrypt later - IV: a fresh random 16-byte IV is generated on every encryption call, so the same message encrypted twice produces different output
- Node.js v24+ (see
enginesinpackage.json)
npm installNo build step is needed — the server runs TypeScript directly via Node.js native TypeScript support.
Create (or open) .vscode/mcp.json in your workspace and add:
{
"servers": {
"ciphersuite-mcp": {
"command": "node",
"args": ["--experimental-strip-types", "ABSOLUTE_PATH_TO_PROJECT/src/index.ts"]
}
}
}or via npm
{
"servers": {
"ciphersuite-mcp": {
"command": "npx",
"args": ["-y", "@erickwendel/ciphersuite-mcp"]
}
}
}Tip: You can also add this server to your user-level MCP config at
~/.vscode/mcp.jsonto make it available in every workspace.
Open the Command Palette (Cmd+Shift+P) and run Developer: Reload Window (or just restart VS Code).
Open Copilot Chat (Agent mode) and try:
Encrypt the message "Hello, World!" using the passphrase "my-secret-key"
Decrypt this message: a3f1...:<ciphertext> using the passphrase "my-secret-key"
Show me the encryption://info resource
The agent will automatically call the appropriate tool and return the result.
The MCP Inspector lets you explore and test all tools, resources, and prompts interactively in a browser UI:
npm run mcp:inspectThis opens the inspector at http://localhost:5173 and connects it to the running server.
# Run all tests once
npm test
# Run tests in watch mode (with debugger)
npm run test:devThe test suite covers:
- Encrypting a message
- Decrypting a message with the correct passphrase
- Listing and reading the
encryption://inforesource - Fetching both prompts
- Error: decrypting with the wrong passphrase
- Error: decrypting a malformed ciphertext
src/
index.ts # Entry point — connects the server to stdio transport
mcp.ts # All tools, resources, and prompts are registered here
tests/
mcp.test.ts
| Script | Description |
|---|---|
npm start |
Start the server (used by MCP clients) |
npm run dev |
Start with file-watch and Node.js inspector |
npm test |
Run all tests |
npm run test:dev |
Run tests in watch mode |
npm run mcp:inspect |
Open the MCP Inspector UI |