acp-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@acp-mcprun 'df -h' on the remote server"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ACP MCP
MCP server for remote machine operations via SSH. Provides a single, powerful tool for executing any shell command on remote machines with real-time progress streaming.
Installation
npm install @prmichaelsen/acp-mcpRelated MCP server: MCP SSH Manager
Development
npm install
npm run devBuild
npm run buildUsage
With Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"acp-mcp": {
"command": "node",
"args": ["/absolute/path/to/acp-mcp/dist/server.js"]
}
}
}With mcp-auth
import { createServer } from '@prmichaelsen/acp-mcp/factory';
import { readFileSync } from 'fs';
const server = await createServer({
userId: 'user-123',
ssh: {
host: 'remote.example.com',
port: 22,
username: 'remote-user',
privateKey: readFileSync('/path/to/private/key', 'utf-8'),
},
});Available Tools
acp-mcp v1.0.0 provides a single, powerful tool for all remote operations:
acp_remote_execute_command
Execute any shell command on the remote machine with optional progress streaming.
Parameters:
command(required): Shell command to executecwd(optional): Working directory for command executiontimeout(optional): Timeout in seconds (default: 30, ignored if progress streaming)
Returns: { stdout, stderr, exitCode, timedOut, streamed? }
Features:
Shell Environment (v0.7.1+): Automatically sources shell configuration files
Sources
~/.zshrc,~/.bashrc, or~/.profilebefore executing commandsEnsures
$PATHand environment variables are properly loadedEnables user-installed tools (nvm, homebrew, etc.) to work correctly
Gracefully handles missing config files
Progress Streaming (v0.7.0+): Real-time output for long-running commands
Requires MCP SDK v1.26.0+ (server and client)
Client must provide
progressTokenin request_metaClient must handle progress notifications via
onprogresscallbackGraceful fallback to timeout mode if no
progressTokenprovidedRate limited to max 10 notifications/second
Ideal for:
npm run build,npm test,npm run dev
Common Operations
List Files
# Basic listing
acp_remote_execute_command({ command: "ls -la ~/project" })
# Recursive listing
acp_remote_execute_command({ command: "find ~/project -type f" })
# With tree (if installed)
acp_remote_execute_command({ command: "tree ~/project" })
# Only directories
acp_remote_execute_command({ command: "ls -d */ ~/project" })Read Files
# Read entire file
acp_remote_execute_command({ command: "cat ~/project/package.json" })
# Read first 100 lines
acp_remote_execute_command({ command: "head -n 100 ~/project/large-file.txt" })
# Read last 50 lines
acp_remote_execute_command({ command: "tail -n 50 ~/project/log.txt" })
# Search in file
acp_remote_execute_command({ command: "grep 'pattern' ~/project/file.txt" })Write Files
# Write simple content
acp_remote_execute_command({ command: "echo 'hello world' > ~/project/file.txt" })
# Write multi-line content
acp_remote_execute_command({
command: "cat > ~/project/file.txt << 'EOF'\nline 1\nline 2\nline 3\nEOF"
})
# Append to file
acp_remote_execute_command({ command: "echo 'new line' >> ~/project/file.txt" })
# Create directories
acp_remote_execute_command({ command: "mkdir -p ~/project/new/nested/dir" })File Operations
# Copy files
acp_remote_execute_command({ command: "cp ~/source.txt ~/dest.txt" })
# Move files
acp_remote_execute_command({ command: "mv ~/old.txt ~/new.txt" })
# Delete files
acp_remote_execute_command({ command: "rm ~/file.txt" })
# Change permissions
acp_remote_execute_command({ command: "chmod 755 ~/script.sh" })Development Operations
# Git operations
acp_remote_execute_command({ command: "git status", cwd: "~/project" })
acp_remote_execute_command({ command: "git commit -m 'message'", cwd: "~/project" })
# Package management
acp_remote_execute_command({ command: "npm install", cwd: "~/project" })
acp_remote_execute_command({ command: "npm run build", cwd: "~/project" })
# Process management
acp_remote_execute_command({ command: "ps aux | grep node" })
acp_remote_execute_command({ command: "kill -9 12345" })Why Single Tool?
v1.0.0 removed specialized tools (list_files, read_file, write_file) in favor of execute_command:
✅ Properly expands ~ and environment variables - SFTP-based tools didn't
✅ Maximum flexibility - Use any shell command or tool
✅ Simpler codebase - One tool instead of four
✅ More reliable - No SFTP edge cases or limitations
✅ Consistent behavior - Works exactly like interactive SSH
✅ Easier to maintain - Single code path to test and debug
Configuration
Standalone Server Configuration
Copy .env.example to .env and configure SSH credentials:
cp .env.example .envEdit .env with your SSH connection details:
# SSH Configuration (required)
SSH_HOST=your-remote-server.com
SSH_PORT=22
SSH_USERNAME=your-username
SSH_PRIVATE_KEY_PATH=/path/to/your/ssh/private/keymcp-auth Configuration
When using with mcp-auth, SSH credentials are provided programmatically:
import { createServer } from '@prmichaelsen/acp-mcp/factory';
import { readFileSync } from 'fs';
// SSH credentials provided by mcp-auth wrapper
const server = await createServer({
userId: 'user-123',
ssh: {
host: process.env.REMOTE_HOST,
port: parseInt(process.env.REMOTE_PORT || '22'),
username: process.env.REMOTE_USERNAME,
privateKey: readFileSync(process.env.REMOTE_KEY_PATH, 'utf-8'),
},
});Scripts
npm run dev- Start development server with hot reloadnpm run build- Build for productionnpm run build:watch- Build and watch for changesnpm start- Run production buildnpm test- Run testsnpm run typecheck- Type check without emittingnpm run clean- Remove build output
License
MIT
Author
Patrick Michaelsen
This server cannot be deployed
Maintenance
Related MCP Connectors
Termalin's hosted MCP server. Claude, ChatGPT or any MCP client runs commands, moves files over SFTP, queries databases and reads server metrics and monitoring alerts on your servers, keylessly through Termalin Connectors: no SSH key is handed over and no inbound port is opened. Per-host command policy and an audit log. Needs a termal.in Pro or Team account (new accounts start with a 14-day Pro trial).
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
1- MoneMeeOAuthcom.monemee
Remote MCP server for creating and selling digital products via MoneMee. It lets AI agents create, publish, and sell digital products such as e-books, AI prompt packs, software, courses without a human touching a dashboard. Docs: https://monemee.com/mcp Sign up on Monemee to get a token.
Your agents' cloud. MCP server with search, execute, packages, jobs, secrets, and integrations.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for remote Linux/Unix server management via SSH, enabling command execution, system monitoring, file operations, and diagnostics through natural language.341MIT
- AlicenseAqualityDmaintenanceMCP server for managing remote servers via SSH, enabling command execution, file transfer, rsync, tunnels, health checks, backups, and database operations.172,150 npm1MIT
- FlicenseNot gradedqualityFmaintenanceMCP server for infrastructure discovery and remote management, enabling SSH command execution, file transfer, log tailing, and machine/service inventory with a companion web dashboard.2-
- AlicenseNot gradedqualityDmaintenanceSSH-based MCP server that enables remote execution of SSH commands, file transfers, and secure server management via the MCP protocol.ISC