The Cedardiff MCP Server allows you to manipulate code using CEDARScript, a SQL-like language for code transformations.
Execute commands to modify source code files within a specified working directory
Perform pattern-based transformations using regex, prefix/suffix, and indentation rules
Target specific code elements including files, functions, classes, or methods
File operations: Create, delete, move, and update files
Complex manipulation: Execute block-level code transformations with SQL-like syntax
Uses TypeScript for implementing the MCP server that provides CEDARScript capabilities for code manipulation
cedardiff MCP Server
Edit files with CEDARScript grammar rules
This is a TypeScript-based MCP server that implements CEDARScript, a SQL-like language for code manipulation. It provides:
A comprehensive grammar for code manipulation commands
Tools for executing CEDARScript operations
Support for complex pattern matching and transformations
Features
Grammar
SQL-like syntax for code operations (DDL, DML)
Support for file, function, class, and method targeting
Pattern matching with regex, prefix/suffix, and indentation rules
Block-level code manipulation capabilities
Tools
edit_file- Execute CEDARScript commandsTakes script and working directory as parameters
Supports file creation, deletion, moving, and updating
Pattern-based code transformations
Implementation Status
Current testing has revealed:
Command parsing works correctly
Grammar supports complex operations
File writing mechanism needs improvement
Success messages returned but changes not persisted
Related MCP server: SQL MCP Server for Claude Desktop
Development
Install dependencies:
Build the server:
For development with auto-rebuild:
Installation
To use with Claude Desktop, add the server config:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
The Inspector will provide a URL to access debugging tools in your browser.
ES Module Migration
The project has been migrated to use ES modules. Key changes include:
Added
"type": "module"topackage.jsonUpdated
tsconfig.jsonto use"module": "ESNext"Converted import/export statements to ES module syntax
Updated type definitions to be compatible with ES modules
Compatibility Notes
Ensure you are using Node.js version 12 or higher
Use
importinstead ofrequire()for module importsUse
.jsextension when importing local files