使用说明
项目简介
CEDARScript MCP Server 是一个基于 Model Context Protocol (MCP) 的后端服务器,它使用 CEDARScript 语言提供代码操作工具。CEDARScript 是一种类似 SQL 的语言,用于代码操作,支持代码的查询、修改等功能。此服务器提供了一个 'edit_file' 工具,允许 LLM 客户端通过执行 CEDARScript 命令来编辑代码文件。
主要功能点
- 代码编辑工具: 提供 'edit_file' 工具,允许 LLM 客户端发送 CEDARScript 脚本来编辑指定文件。
- CEDARScript 语法: 使用类似 SQL 的 CEDARScript 语法定义代码操作命令,包括 'UPDATE', 'CREATE', 'RM', 'MV' 等,支持基于模式匹配和条件判断的代码转换和修改。
- 文件操作: 支持创建、删除、移动和更新文件,以及对文件内容进行查找、替换、插入等操作。
- 可扩展性: 基于 MCP 协议,易于集成到支持 MCP 协议的 LLM 客户端,扩展 LLM 的代码操作能力。
安装步骤
- 前提条件: 确保已安装 Node.js 和 npm。
- 克隆仓库: 将仓库克隆到本地:
git clone https://github.com/th3w1zard1/cedarscript-mcp.git - 进入项目目录:
cd cedarscript-mcp - 安装依赖:
npm install - 构建项目:
构建成功后,会在 'build' 目录下生成 'index.js' 文件,这是服务器的入口文件。npm run build
服务器配置
要将 CEDARScript MCP 服务器与 MCP 客户端(例如 Claude Desktop)连接,需要在客户端的配置文件中添加服务器配置信息。以 Claude Desktop 为例,配置文件通常位于:
- MacOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
- Windows: '%APPDATA%/Claude/claude_desktop_config.json'
在配置文件中,添加 'mcpServers' 字段,并配置 'cedardiff' 服务器:
{ "mcpServers": { "cedardiff": { "command": "/path/to/cedardiff/build/index.js" // 请替换为 cedarscript-mcp 项目 build 目录下的 index.js 文件的绝对路径 } } }
注意:
- 'command' 字段的值需要替换为 'cedarscript-mcp' 项目 'build' 目录下 'index.js' 文件的实际绝对路径。例如,如果你的项目位于 '/Users/yourname/cedarscript-mcp',则 'command' 应该配置为 '/Users/yourname/cedarscript-mcp/build/index.js'。
基本使用方法
-
启动服务器: 构建项目后,服务器即可通过配置的 'command' 启动。当 Claude Desktop 等 MCP 客户端连接时,服务器会自动运行。
-
客户端调用 'edit_file' 工具: 在 MCP 客户端中,可以使用 'edit_file' 工具来编辑代码文件。调用该工具需要提供以下参数:
- 'script': CEDARScript 命令字符串,用于描述代码编辑操作。例如:
UPDATE FILE 'main.py' REPLACE ALL CASE WHEN REGEX r'console.log\((.*?)\)' THEN SUB r'logger.debug(\1)' WHEN PREFIX 'TODO:' THEN DELETE END; - 'workingDir': 工作目录,用于解析 'script' 中指定的文件路径。例如,如果 'script' 中 'FILE 'src/main.py'',并且 'workingDir' 设置为 '/path/to/your/project',则实际操作的文件路径为 '/path/to/your/project/src/main.py'。
客户端发送请求后,服务器会解析 CEDARScript 脚本,执行相应的代码编辑操作,并将结果返回给客户端。
- 'script': CEDARScript 命令字符串,用于描述代码编辑操作。例如:
示例 CEDARScript 命令:
- 替换 'console.log' 为 'logger.debug':
UPDATE FILE 'example.js' REPLACE ALL CASE WHEN REGEX r'console.log\((.*?)\)' THEN SUB r'logger.debug(\1)' END; - 删除以 'TODO:' 开头的行:
UPDATE FILE 'example.js' REPLACE ALL CASE WHEN PREFIX 'TODO:' THEN DELETE END; - 创建新文件:
CREATE FILE 'new_file.js' WITH CONTENT 'console.log("Hello, world!");';
请根据 CEDARScript 的语法规则编写更复杂的代码编辑脚本,以实现更强大的代码操作功能。
信息
分类
开发者工具