Goal: Get a basic MCP server running that exposes the bake capability.
- Install MCP SDK dependencies.
- Create
src/node/mcp-server.mjs. - Implement
cyberchef_baketool (generic input/recipe execution). - Implement
cyberchef_searchtool (wrappinghelp()function). - Verify basic connectivity via stdio.
Goal: Expose specific CyberChef operations as individual tools.
- Implement argument type mapping (CyberChef Args -> Zod Schema).
- Dynamic registration loop in
listToolshandler. - Dynamic dispatch logic in
callToolhandler. - Handle edge cases (Option mapping, Defaults).
Goal: specific container image for the MCP server.
- Create
Dockerfile.mcp. - Build and test the container locally (Tested code, Dockerfile created).
Goal: Ensure usability and stability.
- Add comprehensive descriptions to tools (Used descriptions from Config).
- Create
README_MCP.mdwith usage instructions. - Clean up code and add comments.
- Add
mcpscript topackage.json.
Goal: Automate distribution and ensure long-term reliability.
- CI/CD Pipeline: Create GitHub Actions to automatically build the
cyberchef-mcpDocker image on commit. - Publishing: Push the container image to GitHub Container Registry (GHCR) or Docker Hub so users don't have to build it locally.
- Automated Testing: Create a proper integration test suite using an MCP client mock to verify the server without manual
echo | dockercommands. - Upstream Sync: Establish a workflow to merge changes from the original
gchq/CyberChefrepository.