Terminal Hook MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
bun install
bun run compile
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add terminal-hook -- node "<FULL_PATH_TO_TERMINAL_HOOK>/dist/index.js"

Replace <FULL_PATH_TO_TERMINAL_HOOK>/dist/index.js with the actual folder you prepared in step 1.

README.md

Captures real-time terminal output and exposes it to AI assistants via MCP.

Terminal Hook

A VSCode/Cursor extension that captures terminal output in real-time and exposes it via MCP (Model Context Protocol) for AI assistants.

Why another extension?

copy-pasting terminal output and manually referencing it in every chat is so meehhh. When AI assistants can proactively read your terminal — checking errors, logs, and command output without you having to break the execution to ask for more info, this extension solves that! Other MCP tools can also tap into terminal data for automation

How It Works

┌─────────────────┐     stdio      ┌─────────────────┐     TCP      ┌─────────────────┐
│  Cursor/Claude  │◄──────────────►│  mcp-server.mjs │◄────────────►│ VSCode Extension│
│   (MCP Client)  │                │  (MCP Server)   │   port 9876  │ (Terminal Data) │
└─────────────────┘                └─────────────────┘              └─────────────────┘
  1. VSCode Extension captures terminal output via onDidWriteTerminalData API
  2. MCP Server (mcp-server.mjs) communicates with Cursor via stdio
  3. TCP Bridge connects the MCP server to the extension on port 9876

Features

  • Real-time Capture - Captures all terminal output as it happens
  • Clean Output - Automatically strips ANSI codes and shell noise
  • MCP Integration - Exposes terminal data to AI assistants like Claude

Installation

See INSTALL.md for setup instructions.

MCP Tools

`list_terminals`

List all active terminals with metadata.

{
  "success": true,
  "count": 2,
  "terminals": [
    {
      "id": "terminal-0-zsh",
      "name": "zsh",
      "processId": 1234,
      "bufferLines": 150,
      "lastActivity": "2024-12-18T10:30:00.000Z"
    }
  ]
}

`get_terminal_output`

Get output from a specific terminal.

Parameters:

  • terminal_name (required): Terminal name or ID
  • lines (optional): Number of lines to return (default: 100)
{
  "success": true,
  "terminal": "zsh",
  "output": "$ npm start\nServer running on port 3000\n...",
  "lines_returned": 50
}

Development

bun install
bun run compile
bun test

License

MIT

Tools (2)

list_terminalsList all active terminals with metadata.
get_terminal_outputGet output from a specific terminal.

Configuration

claude_desktop_config.json
{"mcpServers": {"terminal-hook": {"command": "node", "args": ["/path/to/mcp-server.mjs"]}}}

Try it

List all my active terminal sessions.
Get the last 100 lines of output from my zsh terminal.
Check the latest output in my build terminal for any errors.
Monitor the terminal output for the current running process.

Frequently Asked Questions

What are the key features of Terminal Hook?

Real-time capture of terminal output as it happens. Automatic stripping of ANSI codes and shell noise. MCP integration for AI assistant access. Support for listing active terminal sessions and metadata.

What can I use Terminal Hook for?

Debugging build errors without manually copying logs to the chat. Monitoring long-running server processes for unexpected crashes. Analyzing command execution history for troubleshooting. Automating log analysis by allowing AI to read terminal output directly.

How do I install Terminal Hook?

Install Terminal Hook by running: bun install && bun run compile

What MCP clients work with Terminal Hook?

Terminal Hook works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Terminal Hook docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare