npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@keegancsmith/emacs-mcp-server

v0.0.1

Published

MCP server for Emacs integration

Readme

Emacs MCP Server

This is a simple MCP (Model Context Protocol) server that allows language models to interact with Emacs through emacsclient --eval commands and view the current state of Emacs.

Features

The server provides three tools:

  • emacs_eval: Evaluates an Emacs Lisp expression and returns the result
  • emacs_get_visible_text: Gets the text currently visible in the Emacs window
  • emacs_get_context: Gets contextual information about the current Emacs state (buffer, mode, point position, etc.)

Requirements

  • Node.js
  • Emacs with the server running (M-x server-start in Emacs)

Installation

No installation is needed if you use npx. Just make sure you have Node.js and npm installed.

Usage with Claude for Desktop

To use this MCP server with Claude for Desktop:

  1. Make sure Emacs is running with the server started (M-x server-start)

  2. Add the server to your Claude for Desktop configuration at:

    • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
    • Windows: %AppData%\Claude\claude_desktop_config.json

Example configuration:

{
  "mcpServers": {
    "emacs-mcp": {
      "command": "npx",
      "args": [
        "-y", "@keegancsmith/emacs-mcp-server"
      ]
    }
  }
}
  1. Restart Claude for Desktop

How It Works

The server uses emacsclient --eval to send Lisp expressions to a running Emacs instance. All operations are performed in the context of the currently visible buffer in the selected window. This allows language models to:

  • Query information from Emacs (buffers, modes, variables, etc.)
  • Execute commands in Emacs
  • Manipulate text and buffers
  • Access Emacs functionality
  • See what's currently visible in Emacs
  • Get cursor position and other buffer context

Example Usage

Once the server is set up, you can use it in Claude to interact with Emacs:

Can you show me the list of buffers in my Emacs?

Claude will use the emacs_eval tool with an expression like (buffer-list) to retrieve and display your buffers.

What's currently visible in my Emacs window?

Claude can use emacs_get_visible_text to see the text content that's currently displayed.

What file am I currently editing in Emacs?

Claude will use emacs_get_context to provide information about the current buffer.

Security Considerations

This server allows executing arbitrary Emacs Lisp code, which has full access to your Emacs environment and potentially your system. Use with trusted LLM providers and be cautious about the expressions that might be executed.

License

MIT