Skip to main content
Glama
mkpvishnu

terminal-mcp

by mkpvishnu

問題点

すべての AI コーディングツールが同じ壁にぶつかります。本物のターミナルにアクセスできないのです。

Claude Code の Bash ツール、GitHub Copilot、Codex はすべて、隔離されたサブプロセスでコマンドを実行します。コマンドごとに新しく起動され、状態は引き継がれません。つまり、次のようなことができません。

  • SSH セッション — リモートサーバーに接続して複数のコマンドを実行できない

  • REPL — Python、Node、Ruby のインタプリタを対話的に使えない

  • データベース CLI — psql、mysql、redis-cli の接続を維持できない

  • TUI アプリ — htop、vim、fzf を矢印キーで操作できない

  • 長時間実行プロセス — ビルドの監視、ログのウォッチ、開発サーバーの実行ができない

Related MCP server: Interactive Terminal MCP Server

解決策

terminal-mcp は AI エージェントに本物のターミナルを提供します。永続的な PTY セッションがツール呼び出しをまたいで維持されます。コマンド送信、出力読み取り、キー入力、TUI の操作 — まるで人間がターミナルを使っているかのように。

uvx terminal-mcp

1 つのコマンド。Claude Code、Claude Desktop、VS Code、Cursor、Windsurf で動作します。


クイックスタート

1. インストール(30秒)

# No install needed - run directly
uvx terminal-mcp

# Or install globally
pip install terminal-mcp

2. AI クライアントに接続

~/.claude.json またはプロジェクトの .mcp.json に追加:

{
  "mcpServers": {
    "terminal": {
      "command": "uvx",
      "args": ["terminal-mcp"]
    }
  }
}

claude_desktop_config.json に追加:

{
  "mcpServers": {
    "terminal": {
      "command": "uvx",
      "args": ["terminal-mcp"]
    }
  }
}

上のワンクリックインストールバッジをクリックするか、.vscode/mcp.json に追加:

{
  "servers": {
    "terminal-mcp": {
      "command": "uvx",
      "args": ["terminal-mcp"]
    }
  }
}

~/.codeium/windsurf/mcp_config.json に追加:

{
  "mcpServers": {
    "terminal": {
      "command": "uvx",
      "args": ["terminal-mcp"]
    }
  }
}

3. 確認

session_exec  exec="echo hello from terminal-mcp"

これで何ができるのか?

リモートサーバーに SSH 接続

session_create   command="ssh user@prod-server.com"   label="prod"
session_interact session_id="a1b2c3d4"  input="df -h"  wait_for="\$"
session_interact session_id="a1b2c3d4"  input="docker ps"  wait_for="\$"
session_close    session_id="a1b2c3d4"

対話型 REPL の実行

session_create   command="python3"  label="python"
session_interact session_id="e5f6g7h8"  input="import pandas as pd"  wait_for=">>>"
session_interact session_id="e5f6g7h8"  input="df = pd.read_csv('data.csv')"  wait_for=">>>"
session_interact session_id="e5f6g7h8"  input="df.describe()"  wait_for=">>>"
session_close    session_id="e5f6g7h8"

データベースのクエリ

session_create   command="psql -U admin mydb"  label="db"
session_interact session_id="x1y2z3w4"  input="SELECT count(*) FROM users;"  wait_for="row"
session_interact session_id="x1y2z3w4"  input="\dt"  wait_for="#"
session_close    session_id="x1y2z3w4"

TUI アプリの操作

session_create   command="htop"  label="monitor"
session_read     session_id="a1b2c3d4"
# Auto-detects TUI, returns screen snapshot

session_send     session_id="a1b2c3d4"  key="F6"
session_read     session_id="a1b2c3d4"  mode="diff"
# Returns only changed lines - saves tokens

session_send     session_id="a1b2c3d4"  key="F10"
session_close    session_id="a1b2c3d4"

長時間実行ビルドの監視

session_create   command="bash"  label="build"
session_send     session_id="a1b2c3d4"  input="npm run build"
session_wait_for session_id="a1b2c3d4"  pattern="Build complete|ERROR"  timeout=120

単発コマンドの実行

session_exec  exec="git log --oneline -10"
session_exec  exec="docker compose ps"  timeout=10

機能一覧

機能

説明

永続セッション

ツール呼び出しをまたいで維持される本物の PTY セッション

送信+読み取りを 1 回の呼び出しで

session_interact が LLM の往復回数を半減

パターンベースの読み取り

wait_for で正規表現がマッチするまでブロック — タイムアウト推測不要

自動 TUI 検出

htop、vim などを検出し、自動で画面スナップショットモードに切り替え

出力差分モード

変更された画面行のみを返し、トークンを最小化

特殊キー

矢印キー、Tab、F1-F12、Home/End、Page Up/Down

制御文字

Ctrl-C、Ctrl-D、Ctrl-Z、Ctrl-L、telnet エスケープ

危険コマンドゲート

rm -rfDROP TABLEcurl|sh をブロック — 確認が必要

OSC 133 シェル統合

コマンド境界と終了コードを自動検出

スマート切り詰め

4 つの戦略でコンテキストオーバーフローを防止

秘密入力

パスワードをログに残さず送信

動的リサイズ

SIGWINCH でターミナルをその場でリサイズ

アイドルクリーンアップ

アイドルセッションを自動で閉じる

クロスプラットフォーム

Linux、macOS、Windows をサポート


ツールリファレンス

terminal-mcp は 9 個の MCP ツール を公開しています。詳細は docs/tools.md を参照。

ツール

目的

session_create

永続ターミナルセッションを起動

session_send

テキスト、キー、制御文字を送信

session_read

出力を読み取り(ストリーム、スナップショット、自動、差分モード)

session_interact

送信+読み取りを 1 回の呼び出しで

session_wait_for

出力に正規表現パターンが現れるのを待つ

session_exec

単発コマンドの実行

session_close

セッションを正常に閉じる

session_resize

ターミナルの大きさを変更

session_list

アクティブなセッションを一覧表示


アーキテクチャ

flowchart LR
    Client[AI Client] -->|MCP JSON-RPC| Server[terminal-mcp]
    Server --> SM[Session Manager]
    SM --> S1[PTY 1: bash]
    SM --> S2[PTY 2: python3]
    SM --> S3[PTY 3: ssh user@host]
    S1 & S2 & S3 -.->|PTY output| Reader[Reader Thread]
    Reader -.->|buffer| Server

各セッションは pexpect.spawn(Windows では PopenSpawn)を介した本物の PTY によってバックアップされています。アーキテクチャの詳細は docs/architecture.md を参照。


設定

すべての設定は TERMINAL_MCP_* 環境変数で設定可能。完全なリファレンスは docs/configuration.md を参照。

設定

環境変数

デフォルト

最大セッション数

TERMINAL_MCP_MAX_SESSIONS

10

アイドルタイムアウト

TERMINAL_MCP_IDLE_TIMEOUT

1800(30分)

セーフティゲート

TERMINAL_MCP_SAFETY_GATE

on

バッファ上限

TERMINAL_MCP_MAX_BUFFER_BYTES

1000000(1MB)

切り詰め方法

TERMINAL_MCP_TRUNCATION_MODE

tail

カスタム設定の例:

{
  "mcpServers": {
    "terminal": {
      "command": "uvx",
      "args": ["terminal-mcp"],
      "env": {
        "TERMINAL_MCP_MAX_SESSIONS": "20",
        "TERMINAL_MCP_IDLE_TIMEOUT": "3600",
        "TERMINAL_MCP_TRUNCATION_MODE": "head_tail"
      }
    }
  }
}

ドキュメント

ドキュメント

説明

ツールリファレンス

9 個の MCP ツールの完全な API

アーキテクチャ

terminal-mcp の内部動作

設定

すべての設定と環境変数

安全性とセキュリティ

危険コマンドの検出とセーフティゲート

ユースケースと例

実用的なレシピとパターン

変更履歴

バージョン履歴とリリースノート

コントリビュート

コントリビューション方法


サポート対象クライアント

クライアント

状態

インストール方法

Claude Code (CLI)

対応済み

~/.claude.json または .mcp.json

Claude Desktop

対応済み

ワンクリックインストール

VS Code (Copilot Chat)

対応済み

ワンクリックインストール または .vscode/mcp.json

Cursor

対応済み

ワンクリックインストール または設定

Windsurf

対応済み

~/.codeium/windsurf/mcp_config.json


テストの実行

pip install -e ".[dev]"
pytest tests/ -v

コントリビュート

コントリビューション歓迎!ガイドラインは docs/contributing.md を参照。

ライセンス

MIT

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
62dResponse time
6wRelease cycle
5Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    Provides AI agents with fully interactive terminal sessions, including TUI support, keyboard control, and screen capture across Windows, Linux, and Mac.
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Enables AI agents to have persistent, fully interactive SSH sessions into remote hosts, behaving like a local terminal.
    23
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

  • Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.

  • Run AI customer support from your terminal: conversations, knowledge base, and chat widget.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mkpvishnu/terminal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server