Labsco
weidwonder logo

Terminal MCP Server

27

from weidwonder

Execute commands on local or remote hosts via SSH. Supports session persistence and environment variables.

🔥🔥🔥✓ VerifiedFreeAdvanced setup

Terminal MCP Server

smithery badge

Notice 注意事项

Current Project not in maintance anymore. I recommend you guys to use more advanced command tool —— Desktop Commander
当前项目已经不在维护。我建议大家用更先进的终端MCP工具 Desktop Commander

中文文档

Terminal MCP Server is a Model Context Protocol (MCP) server that allows executing commands on local or remote hosts. It provides a simple yet powerful interface for AI models and other applications to execute system commands, either on the local machine or on remote hosts via SSH.

Features

  • Local Command Execution: Execute commands directly on the local machine
  • Remote Command Execution: Execute commands on remote hosts via SSH
  • Session Persistence: Support for persistent sessions that reuse the same terminal environment for a specified time (default 20 minutes)
  • Environment Variables: Set custom environment variables for commands
  • Multiple Connection Methods: Connect via stdio or SSE (Server-Sent Events)

The execute_command Tool

The execute_command tool is the core functionality provided by Terminal MCP Server, used to execute commands on local or remote hosts.

Parameters

ParameterTypeRequiredDescription
commandstringYesThe command to execute
hoststringNoThe remote host to connect to. If not provided, the command will be executed locally
usernamestringRequired when host is specifiedThe username for SSH connection
sessionstringNoSession name, defaults to "default". The same session name will reuse the same terminal environment for 20 minutes
envobjectNoEnvironment variables, defaults to an empty object

Examples

Executing a Command Locally

{
  "command": "ls -la",
  "session": "my-local-session",
  "env": {
    "NODE_ENV": "development"
  }
}

Executing a Command on a Remote Host

{
  "host": "example.com",
  "username": "user",
  "command": "ls -la",
  "session": "my-remote-session",
  "env": {
    "NODE_ENV": "production"
  }
}

Best Practices

Command Execution

  • Before running commands, it's best to determine the system type (Mac, Linux, etc.)
  • Use full paths to avoid path-related issues
  • For command sequences that need to maintain environment, use && to connect multiple commands
  • For long-running commands, consider using nohup or screen/tmux

SSH Connection

  • Ensure SSH key-based authentication is set up
  • If connection fails, check if the key file exists (default path: ~/.ssh/id_rsa)
  • Make sure the SSH service is running on the remote host

Session Management

  • Use the session parameter to maintain environment between related commands
  • For operations requiring specific environments, use the same session name
  • Note that sessions will automatically close after 20 minutes of inactivity

Error Handling

  • Command execution results include both stdout and stderr
  • Check stderr to determine if the command executed successfully
  • For complex operations, add verification steps to ensure success

Important Notes

  • For remote command execution, SSH key-based authentication must be set up in advance
  • For local command execution, commands will run in the context of the user who started the server
  • Session timeout is 20 minutes, after which the connection will be automatically closed