Provides CEDARScript (a SQL-like language) capabilities for executing pattern matching and transformations on source cod...
Created byApr 23, 2025
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 commands
- Takes 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
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](https://github.com/modelcontextprotocol/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"` to `package.json`
Updated `tsconfig.json` to 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 `import` instead of `require()` for module imports