使用说明
项目简介
Emacs MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 提供与 Emacs 编辑器交互的能力。通过该服务器,LLM 可以生成和执行 Emacs Lisp 代码,从而利用 Emacs 的强大功能来完成各种任务,例如编辑文件、管理进程、访问网络资源等。
主要功能点
- 代码生成工具 (generate_emacs_lisp_code): 允许 LLM 根据用户意图生成 Emacs Lisp 代码。
- 代码执行工具 (execute_emacs_lisp_code): 允许 LLM 将生成的 Emacs Lisp 代码发送到正在运行的 Emacs 进程并执行,并返回执行结果。
- 基于 MCP 协议: 遵循 MCP 协议标准,易于与支持 MCP 协议的 LLM 客户端集成。
- 工具注册: 通过装饰器 '@mcp.tool()' 轻松注册 Emacs 相关工具,扩展 LLM 的能力。
安装步骤
- 安装 uv: 如果尚未安装 'uv',请根据项目 README 中的指示安装。
- 同步依赖: 在项目根目录下运行 'uv sync' 命令安装项目依赖。
- 激活虚拟环境: 运行 'source .venv/bin/activate' 命令激活创建的虚拟环境。
服务器配置
MCP 客户端需要配置以下 JSON 格式信息才能连接到 Emacs MCP Server。以下是一个配置示例,您需要根据实际情况进行调整:
{ "Emacs-MCP-Server": { // 服务器名称,客户端用于识别和调用 "command": "/Users/haldar/.local/bin/uv", // 启动服务器的命令,这里使用 uv "args": [ // 启动服务器的命令参数 "run", "--with", "mcp[cli]", // 指定使用 mcp cli 工具 "--with", "smartfunc", // 指定使用 smartfunc 库,用于 LLM 代码生成 "mcp", // 执行 mcp 命令 "run", // mcp 命令的子命令,用于运行服务器 "/Users/haldar/repos/gh/emacs-mcp-server/emacs_mcp_server.py" // 服务器脚本的路径 ], "env": { // 环境变量配置 "OPENAI_API_KEY": "sk-xxxx", // OpenAI API 密钥,用于代码生成工具,请替换为您的 API 密钥 "EMACSCLIENT": "/your/path/to/emacsclient" // emacsclient 可执行文件的路径,请替换为您 emacsclient 的实际路径 } } }
请注意:
- 您需要将 'OPENAI_API_KEY' 替换为您自己的 OpenAI API 密钥,以便 'generate_emacs_lisp_code' 工具正常工作。
- 您需要将 'EMACSCLIENT' 替换为您系统中 'emacsclient' 可执行文件的完整路径。'emacsclient' 通常是 Emacs 的一部分,用于与正在运行的 Emacs 实例通信。
- '/Users/haldar/repos/gh/emacs-mcp-server/emacs_mcp_server.py' 需要替换为 'emacs_mcp_server.py' 脚本在您本地文件系统中的绝对路径。
- '/Users/haldar/.local/bin/uv' 需要替换为您 'uv' 可执行文件的实际路径。
基本使用方法
- 启动 Emacs MCP Server: 根据上述配置,使用 MCP 客户端启动 Emacs MCP Server。
- 客户端调用工具: 在 MCP 客户端中,您可以调用以下工具:
- 'generate_emacs_lisp_code': 用于生成 Emacs Lisp 代码,需要提供 'purpose' 参数描述代码的用途。
- 'execute_emacs_lisp_code': 用于执行 Emacs Lisp 代码,需要提供 'code' 参数,即要执行的 Emacs Lisp 代码字符串。
- 获取结果: 客户端将收到工具执行的结果,例如 'execute_emacs_lisp_code' 工具会返回 Emacs Lisp 代码执行后的输出。
通过 Emacs MCP Server,LLM 可以方便地与 Emacs 编辑器进行集成,实现更强大的自动化和交互功能。
信息
分类
开发者工具