Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HERDR_SESSIONNoTarget a named Herdr session instead of the default one.
HERDR_BIN_PATHNoPath to the `herdr` binary. Default: first `herdr` on `PATH`.
HERDR_MCP_MACHINENoRun every command against a saved SSH machine profile (`herdr --machine`). Live events are disabled in this mode because there is no local socket for that machine.
HERDR_SOCKET_PATHNoLow-level override of the socket path (CLI and event tap).
HERDR_MCP_LOG_LEVELNoLog level written to stderr. Default `INFO`.INFO

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
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
herdr_statusA

Check that Herdr is reachable and report server version plus event tap state.

session_snapshotA

Full live snapshot: workspaces, tabs, panes, agents, layouts and focus. Large; prefer the list tools for routine checks.

workspace_listA

List workspaces with their labels, tab/pane counts and aggregate agent status.

workspace_getB

Get one workspace by id (for example "w1").

workspace_createA

Create a workspace with one tab and one shell pane. Returns the new workspace, tab and root_pane ids.

workspace_focusC

Switch the user's view to a workspace.

workspace_renameC

Rename a workspace.

workspace_closeA

Close a workspace and every pane process in it. Only close workspaces you created or the user named.

tab_listA

List tabs, optionally within one workspace.

tab_createC

Create a tab with one shell pane. Returns the new tab and root_pane ids.

tab_focusB

Switch the user's view to a tab (for example "w1:t2").

tab_renameC

Rename a tab.

tab_closeA

Close a tab and every pane process in it. Only close tabs you created or the user named.

pane_listA

List panes with cwd, title, hosted agent and agent status, optionally within one workspace.

pane_getB

Get one pane by id (for example "w1:p3").

pane_layoutB

Geometry of the tab containing a pane: rects and split tree. Use it to pick a split direction.

pane_process_infoB

Foreground process and shell information for a pane.

pane_readB

Read terminal output from a pane. recent-unwrapped joins soft wraps and suits logs; visible is the rendered viewport.

pane_splitA

Split a pane to create a new shell pane beside it. Returns the new pane under result.pane. Split wide panes right and tall panes down.

pane_runB

Type a shell command into a pane and press Enter. The pane must be at an interactive shell prompt.

pane_send_textB

Send raw text to a pane without pressing Enter.

pane_send_keysC

Send logical key presses to a pane, for example ["ctrl+c"] or ["esc"] or ["enter"].

pane_wait_outputC

Block until pane output contains a literal substring (match) or a Rust regex (regex). Output that already exists matches immediately.

pane_renameB

Set a pane's label, or clear it when label is omitted.

pane_closeA

Close a pane and kill its process. Only close panes you created or the user named.

agent_listA

List recognized coding agents: kind, name, pane, cwd, status and terminal title.

agent_getA

Get one agent by unique name or hosting pane id.

agent_explainB

Explain how Herdr detected an agent and why it reports its current state.

agent_readA

Read an agent's terminal output. Use after agent_prompt to see the response; use source=detection for the raw bottom-of-screen text.

agent_promptA

Submit a prompt to an agent. With wait=true, block until the agent settles (idle, done or blocked by default, or any state in until). Rejected with agent_blocked if the agent is already waiting at a dialog.

agent_waitB

Wait until an agent reaches a settled state (idle, done or blocked by default, or any state in until).

agent_send_keysB

Send logical key presses to an agent's UI, for example ["esc"], ["ctrl+c"], ["enter"], ["y"].

agent_startA

Start a coding agent (kind such as claude, codex, grok, opencode, pi) in an existing idle shell pane and name it. Extra args go to the agent's own CLI.

agent_renameA

Give an agent a unique name, or clear it when name is omitted.

agent_focusB

Switch the user's view to an agent's pane and mark its completion as seen.

worktree_listB

List git worktrees known to a workspace or repository.

worktree_createC

Create a git worktree and open it as a linked workspace.

notification_showC

Show a toast inside the Herdr terminal UI.

events_statusA

State of the live event tap: connection, buffer bounds (oldest_seq, latest_seq), and last known agent status per pane.

events_recentB

Buffered Herdr events after since_seq, newest last. Kinds include pane_agent_status_changed, pane_agent_detected, pane_created, pane_closed, pane_exited, tab_created, tab_closed, workspace_created, workspace_closed, layout_updated, tap_connected, tap_disconnected. Returns latest_seq to use as the next cursor.

events_waitA

Block until a matching event arrives after since_seq, or until timeout_ms. Typical: kinds=["pane_agent_status_changed"], agent_status=["done","blocked"]. Returns timed_out=true with no events when nothing matched.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 41 tools

Disambiguation4/5

The set is strongly segmented by resource prefix (workspace_, tab_, pane_, agent_, events_, worktree_), and repeated actions such as list/get/create/close target explicit resources. The closest overlaps are pane_read vs agent_read and pane_send_keys vs agent_send_keys, plus the several input tools, but descriptions make the intended conditions clear.

Naming Consistency5/5

All names use snake_case with a resource/domain prefix, and nearly all are resource_action forms like workspace_list, pane_read, and agent_prompt. Exceptions such as herdr_status, session_snapshot, and events_status are readable status/snapshot nouns and do not break the overall convention.

Tool Count2/5

41 tools is heavy for any single MCP server; even though the terminal/workspace/agent domain is broad, many fine-grained pane/agent input, read, and wait variants could be consolidated or parameterized. The count exceeds the reasonable 3-15 range and sits in the 'too many' band.

Completeness4/5

Core lifecycle is covered: workspaces, tabs, and panes can be created, listed, renamed, focused, and closed; agents can be started, prompted, waited on, and read; events and worktrees have support. Gaps remain for pane_focus/resize, agent_stop, tab_get, and worktree_remove, though terminal access and close operations provide workarounds.

Maintenance

ActivityMaintained
ResponsivenessNo issues