This document describes all breaking changes planned for CyberChef MCP v2.0.0 and provides migration guidance for users upgrading from v1.x.
- Overview
- Breaking Changes Summary
- Tool Naming Convention (DEP001)
- Recipe Schema Format (DEP002)
- Error Response Format (DEP003)
- Configuration System (DEP004)
- Legacy Argument Handling (DEP005)
- Recipe Array Format (DEP006)
- Meta-Tool Renames (DEP007, DEP008)
- MCP Protocol Version Updates
- Migration Examples
- Testing Your Migration
- FAQ
CyberChef MCP v2.0.0 introduces several breaking changes to improve consistency, maintainability, and alignment with MCP best practices. These changes were announced in v1.8.0 with deprecation warnings to give users time to prepare.
| Version | Status | Description |
|---|---|---|
| v1.8.0 | Released | Deprecation warnings introduced |
| v1.8.x | Current | Migration preview tools available |
| v2.0.0 | Planned | Breaking changes enforced |
- Enable deprecation warnings (default in v1.8.0+)
- Use the migration preview tool to analyze your recipes
- Test with v2 compatibility mode:
V2_COMPATIBILITY_MODE=true - Update your code following this guide
| Code | Feature | Impact | Migration Effort |
|---|---|---|---|
| DEP001 | Tool naming convention | All tool calls | Low |
| DEP002 | Recipe schema format | Recipe definitions | Medium |
| DEP003 | Error response format | Error handling | Low |
| DEP004 | Configuration system | Server configuration | Low |
| DEP005 | Legacy argument handling | Recipe arguments | Medium |
| DEP006 | Recipe array format | Recipe structure | Medium |
| DEP007 | cyberchef_bake rename | Meta-tool calls | Low |
| DEP008 | cyberchef_search rename | Meta-tool calls | Low |
The cyberchef_ prefix will be removed from all tool names in v2.0.0.
{
"method": "tools/call",
"params": {
"name": "cyberchef_to_base64",
"arguments": { "input": "Hello World" }
}
}{
"method": "tools/call",
"params": {
"name": "to_base64",
"arguments": { "input": "Hello World" }
}
}- Remove the
cyberchef_prefix from all tool names - Update any hardcoded tool name references
- Update documentation and scripts
| v1.x Name | v2.0.0 Name |
|---|---|
cyberchef_to_base64 |
to_base64 |
cyberchef_from_base64 |
from_base64 |
cyberchef_aes_encrypt |
aes_encrypt |
cyberchef_aes_decrypt |
aes_decrypt |
cyberchef_md5 |
md5 |
cyberchef_sha256 |
sha256 |
| ... | ... |
Recipe validation will use enhanced Zod v4 schemas with stricter type checking.
Loose validation allowing various formats:
{
"recipe": [
{ "op": "To Base64" }
]
}Strict validation requiring complete recipe objects:
{
"recipe": {
"name": "My Recipe",
"description": "Optional description",
"operations": [
{ "op": "To Base64", "args": {} }
]
}
}- Wrap array recipes in object format with
nameandoperations - Add explicit
argsobjects to all operations (even if empty) - Use the
cyberchef_migration_previewtool to validate recipes
Error responses will include structured error codes for programmatic handling.
{
"error": {
"message": "Invalid input: expected string"
}
}{
"error": {
"code": "INVALID_INPUT",
"message": "Invalid input: expected string",
"details": {
"expected": "string",
"received": "number",
"path": "arguments.input"
}
}
}| Code | Description |
|---|---|
INVALID_INPUT |
Input validation failed |
OPERATION_NOT_FOUND |
Unknown operation name |
OPERATION_FAILED |
Operation execution error |
RECIPE_INVALID |
Recipe validation failed |
RATE_LIMITED |
Request rate limit exceeded |
QUOTA_EXCEEDED |
Resource quota exceeded |
INTERNAL_ERROR |
Unexpected server error |
- Update error handling to use error codes
- Add fallback handling for the
messagefield - Log or display
detailswhen available
Configuration will use a unified config file combined with environment variables.
Environment variables only:
CYBERCHEF_MAX_INPUT_SIZE=10485760
CYBERCHEF_CACHE_TTL=3600000
CYBERCHEF_ENABLE_TELEMETRY=falseUnified config file (cyberchef.config.json) with env var overrides:
{
"server": {
"maxInputSize": 10485760,
"cacheTTL": 3600000
},
"telemetry": {
"enabled": false,
"endpoint": null
},
"security": {
"allowedOperations": ["*"],
"blockedOperations": []
}
}Environment variables will still work as overrides:
# Overrides config file value
CYBERCHEF_MAX_INPUT_SIZE=20971520- Create
cyberchef.config.jsonin your working directory - Move environment variable settings to the config file
- Keep environment variables for deployment-specific overrides
Positional array arguments will be replaced with named object arguments.
{
"op": "To Base64",
"args": ["A-Za-z0-9+/=", true]
}{
"op": "To Base64",
"args": {
"alphabet": "A-Za-z0-9+/=",
"showPrefix": true
}
}- Convert array arguments to named objects
- Use the
cyberchef_migration_previewtool in "transform" mode - Consult operation documentation for argument names
| Index | Name | Type |
|---|---|---|
| 0 | alphabet |
string |
| Index | Name | Type |
|---|---|---|
| 0 | key |
string |
| 1 | iv |
string |
| 2 | mode |
string |
| 3 | inputType |
string |
| 4 | outputType |
string |
| Index | Name | Type |
|---|---|---|
| 0 | find |
string |
| 1 | replace |
string |
| 2 | global |
boolean |
Recipe operations using simple arrays will require explicit operation objects.
[
{ "op": "To Base64", "args": [] },
{ "op": "MD5", "args": [] }
]{
"name": "Encode and Hash",
"operations": [
{ "op": "To Base64", "args": {} },
{ "op": "MD5", "args": {} }
]
}- Wrap array recipes in an object with
nameandoperations - Convert array
argsto objectargs - Add optional
descriptionandmetadatafields
The cyberchef_bake and cyberchef_search meta-tools will be renamed.
| Version | Tool Name |
|---|---|
| v1.x | cyberchef_bake |
| v2.0.0 | bake |
| Version | Tool Name |
|---|---|
| v1.x | cyberchef_search |
| v2.0.0 | search |
- Update tool calls to use the new names
- Update any scripts or automation that reference these tools
CyberChef MCP v2.0.0 will require MCP protocol version 2024-11-05 or later.
- Streaming responses - Large outputs will use streaming
- Progress notifications - Long operations report progress
- Cancellation support - Operations can be cancelled mid-execution
- Resource management - Explicit resource lifecycle management
Ensure your MCP client supports:
- Protocol version
2024-11-05or later - Streaming content handling
- Progress notification handling
Before (v1.x):
const result = await client.callTool({
name: "cyberchef_to_base64",
arguments: { input: "Hello World" }
});After (v2.0.0):
const result = await client.callTool({
name: "to_base64",
arguments: { input: "Hello World" }
});Before (v1.x):
{
"method": "tools/call",
"params": {
"name": "cyberchef_bake",
"arguments": {
"input": "Hello World",
"recipe": [
{ "op": "To Base64", "args": ["A-Za-z0-9+/="] },
{ "op": "MD5", "args": [] }
]
}
}
}After (v2.0.0):
{
"method": "tools/call",
"params": {
"name": "bake",
"arguments": {
"input": "Hello World",
"recipe": {
"name": "Encode and Hash",
"operations": [
{ "op": "To Base64", "args": { "alphabet": "A-Za-z0-9+/=" } },
{ "op": "MD5", "args": {} }
]
}
}
}
}Before (v1.x):
try {
const result = await client.callTool(params);
} catch (error) {
console.error("Error:", error.message);
}After (v2.0.0):
try {
const result = await client.callTool(params);
} catch (error) {
console.error(`Error [${error.code}]: ${error.message}`);
if (error.details) {
console.error("Details:", JSON.stringify(error.details, null, 2));
}
}{
"method": "tools/call",
"params": {
"name": "cyberchef_migration_preview",
"arguments": {
"recipe": [
{ "op": "To Base64", "args": ["A-Za-z0-9+/="] }
],
"mode": "analyze"
}
}
}Response:
{
"compatible": true,
"issues": [
{
"code": "DEP005",
"location": "operations[0].args",
"message": "Positional array arguments are deprecated",
"severity": "warning",
"fix": "Convert array arguments to named object: { key: value }"
},
{
"code": "DEP006",
"location": "root",
"message": "Recipe passed as array instead of object",
"severity": "warning",
"fix": "Wrap recipe in object: { name: 'Recipe Name', operations: [...] }"
}
],
"issueCount": 2,
"breakingCount": 0,
"warningCount": 2
}Deprecation warnings are enabled by default in v1.8.0+. To ensure they're active:
# Ensure warnings are NOT suppressed
unset CYBERCHEF_SUPPRESS_DEPRECATIONSAnalyze your recipes for compatibility:
{
"method": "tools/call",
"params": {
"name": "cyberchef_migration_preview",
"arguments": {
"recipe": { /* your recipe */ },
"mode": "analyze"
}
}
}Test with v2.0.0 behavior (deprecations become errors):
V2_COMPATIBILITY_MODE=true npm run mcpOr in Docker:
docker run -i --rm -e V2_COMPATIBILITY_MODE=true cyberchef-mcpUse the transform mode to automatically convert recipes:
{
"method": "tools/call",
"params": {
"name": "cyberchef_migration_preview",
"arguments": {
"recipe": [ /* legacy recipe */ ],
"mode": "transform"
}
}
}Review which deprecations you've triggered:
{
"method": "tools/call",
"params": {
"name": "cyberchef_deprecation_stats",
"arguments": {}
}
}A: v2.0.0 is planned for release after sufficient time has been given for users to migrate. Monitor the changelog and release notes for updates.
A: Yes, set CYBERCHEF_SUPPRESS_DEPRECATIONS=true. However, this is not recommended as it may cause issues when upgrading to v2.0.0.
A: No, v2.0.0 will enforce the new formats. Use the migration preview tool to update your recipes before upgrading.
A: Open an issue on the GitHub repository with:
- Your current version
- The deprecation code(s) involved
- Your original recipe/configuration
- The error or unexpected behavior
A: The transformRecipeToV2 function (available via the migration preview tool) provides automatic transformation. However, the result should be reviewed as some transformations are best-effort (e.g., array arguments are converted to arg0, arg1, etc.).
A: You can continue using v1.8.x until you're ready to migrate. v1.8.x will receive security updates for a reasonable period after v2.0.0 release.
A: Ensure your MCP client supports protocol version 2024-11-05 or later. Most modern MCP clients are compatible.
A: Use the cyberchef_search tool to get operation details, or consult the CyberChef documentation. Argument names follow the operation's parameter names.
- Documentation: Project README
- Issues: GitHub Issues
- Discussions: GitHub Discussions
This document is part of CyberChef MCP v1.8.0 - Breaking Changes Preparation release.