terminal-mcp
問題点
すべての 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-mcp1 つのコマンド。Claude Code、Claude Desktop、VS Code、Cursor、Windsurf で動作します。
クイックスタート
1. インストール(30秒)
# No install needed - run directly
uvx terminal-mcp
# Or install globally
pip install terminal-mcp2. 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 回の呼び出しで |
|
パターンベースの読み取り |
|
自動 TUI 検出 | htop、vim などを検出し、自動で画面スナップショットモードに切り替え |
出力差分モード | 変更された画面行のみを返し、トークンを最小化 |
特殊キー | 矢印キー、Tab、F1-F12、Home/End、Page Up/Down |
制御文字 | Ctrl-C、Ctrl-D、Ctrl-Z、Ctrl-L、telnet エスケープ |
危険コマンドゲート |
|
OSC 133 シェル統合 | コマンド境界と終了コードを自動検出 |
スマート切り詰め | 4 つの戦略でコンテキストオーバーフローを防止 |
秘密入力 | パスワードをログに残さず送信 |
動的リサイズ | SIGWINCH でターミナルをその場でリサイズ |
アイドルクリーンアップ | アイドルセッションを自動で閉じる |
クロスプラットフォーム | Linux、macOS、Windows をサポート |
ツールリファレンス
terminal-mcp は 9 個の MCP ツール を公開しています。詳細は docs/tools.md を参照。
ツール | 目的 |
永続ターミナルセッションを起動 | |
テキスト、キー、制御文字を送信 | |
出力を読み取り(ストリーム、スナップショット、自動、差分モード) | |
送信+読み取りを 1 回の呼び出しで | |
出力に正規表現パターンが現れるのを待つ | |
単発コマンドの実行 | |
セッションを正常に閉じる | |
ターミナルの大きさを変更 | |
アクティブなセッションを一覧表示 |
アーキテクチャ
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 を参照。
設定 | 環境変数 | デフォルト |
最大セッション数 |
|
|
アイドルタイムアウト |
|
|
セーフティゲート |
|
|
バッファ上限 |
|
|
切り詰め方法 |
|
|
カスタム設定の例:
{
"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 Desktop | 対応済み | |
VS Code (Copilot Chat) | 対応済み | ワンクリックインストール または |
Cursor | 対応済み | ワンクリックインストール または設定 |
Windsurf | 対応済み |
|
テストの実行
pip install -e ".[dev]"
pytest tests/ -vコントリビュート
コントリビューション歓迎!ガイドラインは docs/contributing.md を参照。
ライセンス
Maintenance
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
- Flicense-qualityDmaintenanceProvides stateful, interactive terminal access for LLMs to spawn and maintain persistent processes like SSH sessions, debuggers, and REPLs with continuous input/output interaction across commands.7
- Alicense-qualityCmaintenanceProvides AI agents with fully interactive terminal sessions, including TUI support, keyboard control, and screen capture across Windows, Linux, and Mac.MIT
- Alicense-qualityCmaintenanceEnables AI agents to have persistent, fully interactive SSH sessions into remote hosts, behaving like a local terminal.231MIT
- Alicense-qualityDmaintenanceEnables AI agents to spawn and interact with real terminal sessions, capturing screenshots of rendered TUI output and sharing live sessions for debugging.01MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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