herdr-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| herdr_pingA | Ping the herdr server. Returns the server version and protocol. |
| herdr_session_snapshotA | Dump the full herdr session: workspaces, tabs, panes, layouts and agents. Useful for debugging the entire state at once. |
| herdr_workspace_listA | List all open workspaces in herdr. |
| herdr_workspace_getA | Get a single workspace by id. Returns label, tab/pane count, worktree info if linked. |
| herdr_tab_listA | List tabs, optionally filtered to a workspace. Each tab has tab_id, label, pane_count, agent_status. |
| herdr_tab_getA | Get a single tab by id. Returns label, pane_count, workspace_id, agent_status. |
| herdr_pane_listA | List all panes, optionally filtered to a workspace. Each pane has pane_id, cwd, agent_status, terminal info. |
| herdr_pane_getA | Get pane info by id. Returns cwd, terminal_id, agent_status, agent (if running opencode), terminal_title, scroll info. |
| herdr_pane_splitA | Split a pane, creating a new pane to the right or below. Returns the new pane's pane_id. Essential for launching reviewers in a clean pane. |
| herdr_pane_send_inputA | Send text and/or key presses to a pane in one call. Used for warm-up (PING_REPLY_WITH_PONG) and sending commands. Keys are key names like Enter, CtrlC, Backspace. |
| herdr_pane_wait_for_outputA | Block until the pane output matches a substring or regex, then return the read. More efficient than polling. Returns the matched output lines. |
| herdr_agent_startA | Launch an opencode agent in a pane. Returns agent info. May need retries if the pane is not ready yet ('not an available shell'). |
| herdr_agent_promptA | Send a prompt to an agent running in a pane. Optionally block until the agent reaches one of these statuses: idle, working, blocked, done, unknown. |
| herdr_agent_getA | Get agent info by target (pane id, session id or path). Returns agent_status (idle/working/blocked/done/unknown), terminal_title, interactive_ready. Note: agent_status is nested under .agent.agent_status. |
| herdr_agent_waitA | Block until the agent reaches one of the given statuses (idle, working, blocked, done, unknown). Alternative to polling agent.get in a loop. |
| herdr_agent_readA | Read recent output from an agent's terminal. Used to check for TASK_COMPLETE, blocked questions, or any agent output. For warm-up: read ~400 lines from 'recent' looking for PONG. |
| herdr_agent_send_keysA | Send key presses to an agent's terminal. Useful for recovery (CtrlC to interrupt a stuck agent) or TUI navigation. |
| herdr_worktree_createA | Create a git worktree and open it as a herdr workspace. Returns workspace_id, root_pane.pane_id (for agent.start), and worktree info. The pane may need retries for agent.start if 'not an available shell'. |
| herdr_worktree_removeA | WARNING: Destructive: deletes the worktree checkout and closes its workspace. Does NOT delete the git branch (use git branch -D separately). |
| herdr_worktree_listA | List git worktrees for a repository. Returns branch, path, is_linked_worktree, open_workspace_id for each. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 20 tools
Each tool targets a distinct resource and action: workspace list/get, tab list/get, pane list/get/split/send_input/wait_for_output, agent start/prompt/get/wait/read/send_keys, and worktree list/create/remove. Even similar tools like pane_send_input and agent_send_keys are clearly differentiated by target (pane vs. agent). No two tools appear to do the same thing.
The overwhelming majority follow a consistent [resource]_[action] pattern (e.g., workspace_list, pane_split, agent_start, worktree_remove). Exceptions like herdr_ping (verb only) and herdr_session_snapshot (compound noun) are minor deviations that do not obscure the pattern.
20 tools is on the higher end but appropriate for the server's broad scope of session management (workspaces, tabs, panes, agents, worktrees). Each tool serves a distinct operational need; none feel redundant. It is slightly above the typical well-scoped range but justified by the domain complexity.
The tool surface covers list/get for workspaces, tabs, and panes, pane splitting, input/wait operations, agent lifecycle management (start, prompt, get, wait, read, send_keys), and worktree create/remove. Minor gaps exist, such as no explicit pane close or tab management beyond listing, but these can be worked around (e.g., using send_keys or worktree removal).