cedarscript file manipulation.com
cedarscript file manipulation.com logo

CEDARScript File Manipulation

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
  • Use `.js` extension when importing local files