使用说明
Emacs MCP服务器
这是一个简单的MCP(模型上下文协议)服务器,允许语言模型通过以下方式与Emacs交互 emacsclient --eval 命令并查看Emacs的当前状态。
特性
服务器提供三个工具:
emacs_eval:计算Emacs Lisp表达式并返回结果emacs_get_visible_text:获取当前在Emacs窗口中可见的文本emacs_get_context:获取有关当前Emacs状态(缓冲区、模式、点位置等)的上下文信息
需求
- Node.js
- 运行服务器的Emacs(
M-x server-start在Emacs中)
安装
如果使用npx,则不需要安装。请确保您已安装Node.js和npm。
使用Claude for Desktop
要将此MCP服务器与Claude for Desktop一起使用,请执行以下操作:
-
确保Emacs在服务器启动的情况下运行(
M-x server-start) -
将服务器添加到您的Claude进行桌面配置:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json - 窗户:
%AppData%\Claude\claude_desktop_config.json
- MacOS:
配置示例:
{
"mcpServers": {
"emacs-mcp": {
"command": "npx",
"args": [
"-y", "@keegancsmith/emacs-mcp-server"
]
}
}
}
- 重新启动桌面版的Claude
运作原理
服务器使用 emacsclient --eval 将Lisp表达式发送到正在运行的Emacs实例。所有操作都在所选窗口中当前可见缓冲区的上下文中执行。这允许语言模型:
- 从Emacs查询信息(缓冲区、模式、变量等)
- 在Emacs中执行命令
- 操纵文本和缓冲区
- 访问Emacs功能
- 查看Emacs中当前可见的内容
- 获取光标位置和其他缓冲区上下文
示例用法
设置好服务器后,您可以在Claude中使用它与Emacs交互:
Can you show me the list of buffers in my Emacs?
克劳德将使用 emacs_eval 具有类似表达式的工具 (buffer-list) 检索和显示缓冲区。
What's currently visible in my Emacs window?
克劳德可以使用 emacs_get_visible_text 查看当前显示的文本内容。
What file am I currently editing in Emacs?
克劳德将使用 emacs_get_context 以提供关于当前缓冲器的信息。
安全考虑
此服务器允许执行任意Emacs Lisp代码,这些代码可以完全访问您的Emacs环境,甚至可能访问您的系统。与受信任的LLM提供者一起使用,并对可能执行的表达式保持谨慎。
许可证
麻省理工学院