A Model Context Protocol server that enables generating and executing Elisp code in a running Emacs process, allowing AI assistants to control and interact with Emacs.
Model Context Protocol (MCP) server for Emacs. Enables generating and running elisp code in a running Emacs process.
The server exposes two tools:
generate_emacs_lisp_code
: generates elisp for a given taskexecute_emacs_lisp_code
: passes elisp to a running Emacs (via emacsclient
) to eval and execute it.The project is managed with uv
. First, run uv sync
to install all dependencies. Then source .venv/bin/activate
to activate the resulting venv.
To run the MCP server in the inspector:
mcp dev emacs_mcp_server.py
To install the MCP server so that Claude Desktop can use it:
mcp install emacs_mcp_server.py
But you will have to edit the resulting JSON config in claude_desktop_config.json
to include API keys and the full path to emacsclient
. It should look something like this:
"Emacs-MCP-Server": { "command": "/Users/haldar/.local/bin/uv", "args": [ "run", "--with", "mcp[cli]", "--with", "smartfunc", "mcp", "run", "/Users/haldar/repos/gh/emacs-mcp-server/emacs_mcp_server.py" ], "env": { "OPENAI_API_KEY": "sk-xxxx", "EMACSCLIENT": "/your/path/to/emacsclient" } }
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!