使用说明

项目简介

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 的能力。

安装步骤

  1. 安装 uv: 如果尚未安装 'uv',请根据项目 README 中的指示安装。
  2. 同步依赖: 在项目根目录下运行 'uv sync' 命令安装项目依赖。
  3. 激活虚拟环境: 运行 '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' 可执行文件的实际路径。

基本使用方法

  1. 启动 Emacs MCP Server: 根据上述配置,使用 MCP 客户端启动 Emacs MCP Server。
  2. 客户端调用工具: 在 MCP 客户端中,您可以调用以下工具:
    • 'generate_emacs_lisp_code': 用于生成 Emacs Lisp 代码,需要提供 'purpose' 参数描述代码的用途。
    • 'execute_emacs_lisp_code': 用于执行 Emacs Lisp 代码,需要提供 'code' 参数,即要执行的 Emacs Lisp 代码字符串。
  3. 获取结果: 客户端将收到工具执行的结果,例如 'execute_emacs_lisp_code' 工具会返回 Emacs Lisp 代码执行后的输出。

通过 Emacs MCP Server,LLM 可以方便地与 Emacs 编辑器进行集成,实现更强大的自动化和交互功能。

信息

分类

开发者工具