Skip to main content
Glama
lucasmetron

@erickwendel/ciphersuite-mcp

by lucasmetron

@erickwendel/ciphersuite-mcp

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.


What it does

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

How encryption works

  • 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


Related MCP server: Vibe Coder MCP

Prerequisites

  • Node.js v24+ (see engines in package.json)


Installation

npm install

No build step is needed — the server runs TypeScript directly via Node.js native TypeScript support.


Using in VS Code

1. Add the MCP server configuration

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.json to make it available in every workspace.

2. Reload VS Code

Open the Command Palette (Cmd+Shift+P) and run Developer: Reload Window (or just restart VS Code).

3. Use it in Copilot Chat

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.


Running the MCP Inspector

The MCP Inspector lets you explore and test all tools, resources, and prompts interactively in a browser UI:

npm run mcp:inspect

This opens the inspector at http://localhost:5173 and connects it to the running server.


Running tests

# Run all tests once
npm test

# Run tests in watch mode (with debugger)
npm run test:dev

The test suite covers:

  • Encrypting a message

  • Decrypting a message with the correct passphrase

  • Listing and reading the encryption://info resource

  • Fetching both prompts

  • Error: decrypting with the wrong passphrase

  • Error: decrypting a malformed ciphertext


Project structure

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

Available scripts

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

serverMCP

Available Tools

2 tools
decrypt_messageA

Decrypt a message that was encrypted with the encrypt_message tool

ParametersJSON Schema
NameRequiredDescriptionDefault
encryptionKeyYesThe same passphrase used during encryption
encryptedMessageYesThe encrypted message (format: iv:ciphertext)

Output Schema

ParametersJSON Schema
NameRequiredDescription
decryptedMessageYesThe decrypted plain-text message

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It only states the function without disclosing behavioral traits like failure conditions, security implications, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, concise sentence that completely captures the tool's purpose with no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple two-parameter tool and presence of an output schema, the description is sufficient but could briefly mention error handling or prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and parameters have adequate descriptions. The tool description does not add extra meaning beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Decrypt' and the resource 'a message', and explicitly distinguishes from its sibling tool 'encrypt_message' by referring to it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by defining the tool as the counterpart to 'encrypt_message', but does not explicitly state when to use versus alternatives or provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

encrypt_messageC

Encrypt a message

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe message to encrypt
encryptionKeyYesAny passphrase to use for encryption — the server derives a strong key from it automatically

Output Schema

ParametersJSON Schema
NameRequiredDescription
encryptedMessageYesThe encrypted message (format: iv:ciphertext)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions encryption but lacks details about algorithm, reversibility, or side effects. For a security-critical operation, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence) and front-loaded, but it does not add value beyond the title. It is concise but not substantive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists but is not described. The description omits return format, encryption algorithm, and any behavioral traits. Given low complexity, more detail is expected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond what the schema already provides for the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action and resource: 'Encrypt a message'. It is specific but lacks differentiation from the sibling 'decrypt_message', though the contrast is obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance provided on when to use this tool versus alternatives. The sibling 'decrypt_message' exists but is not mentioned in the description, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 2 tool updatesv0.0.1
    • First observeddecrypt_message
    • First observedencrypt_message

TDQS

B3.4/5.0
Disambiguation5/5

The two tools, encrypt_message and decrypt_message, have clearly distinct and mutually exclusive purposes with no overlap. An agent can easily distinguish between encryption and decryption operations.

Naming Consistency5/5

Both tool names follow a consistent verb_noun pattern (encrypt_message, decrypt_message), using the same noun 'message' and complementary verbs. The naming is uniform and predictable.

Tool Count3/5

With only 2 tools, the server is minimal but appropriate for a focused encryption/decryption purpose. However, the count feels slightly thin as additional tools like key management or algorithm selection might be expected in a complete ciphersuite.

Completeness3/5

The tool set covers the core encryption and decryption operations, but lacks supporting functionality such as key generation, algorithm selection, or message signing. This limits the server's utility for more complex workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lucasmetron/serverMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server