Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
EMACS_SOCKETNoPath to Emacs daemon socketAuto-detect
EMACS_TIMEOUTNoDefault timeout for operations (ms)5000
EMACSCLIENT_PATHNoPath to emacsclient binaryemacsclient
EMACS_ORG_DIRECTORYNoOrg files directory~/org

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}
resources
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
emacs_evalB

Execute Emacs Lisp code and return the result

emacs_buffer_readC

Read the contents of an Emacs buffer

emacs_buffer_writeC

Write/replace content in an Emacs buffer

emacs_buffer_editC

Apply targeted edits to a buffer (find and replace)

emacs_buffer_listA

List all open buffers with metadata

emacs_buffer_switchA

Switch to a specific buffer (make it current)

emacs_buffer_createC

Create a new buffer

emacs_buffer_killC

Close/kill a buffer

emacs_file_openC

Open a file in Emacs

emacs_file_saveB

Save the current or specified buffer to file

emacs_file_save_asB

Save buffer to a new file path

emacs_file_infoA

Get information about a file (exists, readable, writable, size, etc.)

emacs_project_listA

List known projects (supports both project.el and projectile)

emacs_project_currentA

Get the current project root and name

emacs_project_switchC

Switch to a different project

emacs_project_filesB

List files in the current or specified project

emacs_project_searchA

Search for files in the project by name pattern

emacs_workspace_listA

List all workspaces/tabs

emacs_workspace_currentA

Get the current workspace/tab name

emacs_workspace_switchB

Switch to a workspace/tab by name or index

emacs_workspace_createC

Create a new workspace/tab

emacs_workspace_deleteB

Delete a workspace/tab

emacs_workspace_saveC

Save workspace state

emacs_org_readB

Read org document content with optional parsed structure

emacs_org_writeC

Write/replace content in an org buffer

emacs_org_heading_addB

Add a new heading to an org document

emacs_org_heading_updateC

Update an existing heading (title, content, or properties)

emacs_org_heading_deleteB

Delete a heading and its subtree

emacs_org_heading_moveC

Move a heading up, down, or change its level

emacs_org_todo_setB

Set TODO state for a heading

emacs_org_todo_listB

List all TODO items in a buffer or across org files

emacs_org_tag_setB

Set tags for a heading

emacs_org_property_setC

Set a property for a heading

emacs_org_exportC

Export org document to various formats

emacs_org_agendaC

Query org-agenda items

emacs_org_captureC

Create a new org entry using capture templates

emacs_org_searchC

Search org files for text or headings

emacs_git_statusA

Get git status (staged, unstaged, untracked files)

emacs_git_diffA

Get diff for staged, unstaged, or committed changes

emacs_git_logC

Get commit log

emacs_git_stageB

Stage file(s) for commit

emacs_git_unstageB

Unstage file(s)

emacs_git_commitC

Create a git commit with a message

emacs_git_branch_listC

List git branches

emacs_git_branch_currentB

Get current branch name

emacs_git_branch_checkoutC

Checkout a branch

emacs_git_stash_listA

List git stashes

emacs_git_stash_pushB

Create a new stash

emacs_git_stash_popB

Pop the latest stash

emacs_git_blameC

Show git blame for a file

emacs_ediff_filesB

Compare two files and return the diff

emacs_ediff_buffersC

Compare two buffers and return the diff

emacs_ediff_regionsB

Compare two text regions and return the diff

emacs_ediff_3wayA

Three-way comparison of files (useful for merge conflicts)

emacs_diff_summaryB

Get a summary of differences between two files or buffers

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
Emacs BuffersList of all open Emacs buffers
Emacs ProjectsList of known projects
Current ProjectInformation about the current project
Emacs WorkspacesList of workspaces/tabs
Current WorkspaceCurrent workspace/tab name
Org AgendaToday's agenda items
Org TODOsAll TODO items across org-agenda files
Org FilesList of org-agenda files
Capture TemplatesAvailable org-capture templates
Git StatusCurrent git status (staged, unstaged, untracked files)
Git BranchCurrent git branch information

TDQS

B3.3/5.0

Scored across 55 tools

Disambiguation4/5

Tools are mostly clearly separated by domain (buffer, file, project, workspace, org, git, ediff) and action, so an agent can generally tell them apart. However, a few near-overlaps exist, such as emacs_ediff_files/emacs_diff_summary both comparing files, and emacs_buffer_write vs emacs_buffer_edit with only subtle differences.

Naming Consistency5/5

All 55 tools follow the exact same emacs_<domain>_<verb> snake_case pattern with no mixed conventions. Verb choices are semantically consistent within each domain (list, create, delete, switch, etc.), making the naming highly predictable.

Tool Count2/5

With 55 tools, this dramatically exceeds the 25+ threshold for 'too many'. Even though Emacs is a broad application, this number creates heavy selection overhead and will likely overwhelm agents trying to choose among such a large surface area.

Completeness5/5

The set provides thorough lifecycle coverage for buffers, files, projects, workspaces, org documents, git operations, and diff comparisons. Each domain has create/read/update/delete or equivalent operations with no obvious dead ends for the implied scope of controlling Emacs.

Maintenance

ActivityInactive
ResponsivenessNo issues