klone-mcp
This MCP server provides a minimal interface to run commands and manage files on the UW Hyak (klone) supercomputing cluster via SSH.
Tools:
klone_run: Execute any shell command on klone (pipes, redirects,&&chains supported). Supports a configurable timeout (default 60s) and returns stdout/stderr (1 MB cap). Use for SLURM commands (sbatch,squeue,sacct,scancel,sinfo,scontrol), filesystem utilities (du,df), and cluster-specific tools (hyakalloc,hyakstorage,apptainer).klone_put_file: Create or overwrite a file on klone with exact content via SSH stdin — no shell metacharacter interpretation, no ARG_MAX limits. Ideal for writing SLURM job scripts, config files, or small data files.
Documentation resources:
klone://docs/commands: Curated list of klone-specific utilities.klone://docs/quickstart: Orientation on storage/quota layout, SSD-staging patterns, and indexes to help topics (SLURM, GPUs, containers, MATLAB, R, Jupyter, etc.).klone://help/jobsand other URIs for cluster usage guidance.
Other notes:
The server reuses a persistent SSH connection (configured via
KLONE_SSH_HOSTenv var or a defaultklonealias) to avoid repeated Duo/MFA prompts.A typical workflow: write a SLURM script with
klone_put_file, then submit and monitor it usingklone_runwithsbatch/squeue.
Click on "Install 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., "@klone-mcprun squeue to see my SLURM jobs"
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.
klone-mcp
A minimal MCP server for UW Hyak (klone). Exposes two tools —
klone_run (any shell command) and klone_compute (run commands on a
named, reusable compute allocation) — plus documentation resources
covering klone's filesystem layout, SLURM conventions, and curated shell
commands.
Agents already know how to use squeue, sacct, sbatch, du, etc.,
and they know bash (heredocs to write files, pipes, etc). This MCP
doesn't wrap any of it. It just gives the agent a convenient way to run
commands on klone and find out what klone-specific utilities exist.
The SSH host can be overridden via the KLONE_SSH_HOST env var
(default: klone). Useful for alternate aliases, a test cluster, or
parallel configs.
If you want pre-typed wrappers around SLURM (klone_squeue, klone_log,
klone_submit, …) checkout the structured-tools branch.
Prerequisites
Python 3.10+
A working SSH alias
kloneon your machine. Add this block to~/.ssh/configif you don't have it (replaceYOUR_UWNETID):Host klone HostName klone.hyak.uw.edu User YOUR_UWNETID ControlMaster auto ControlPath ~/.ssh/cm-%r@%h:%p ControlPersist 10h ServerAliveInterval 60Then run
ssh kloneonce, complete the Duo push, and leave the terminal open. The persistent connection meansssh klone <cmd>from any other terminal won't re-prompt for the next 10 hours. The MCP reuses this same connection.
Related MCP server: mcp-impresario
Install
cd ~/klone/klone-mcp
pip install -e .Or with uv:
cd ~/klone/klone-mcp
uv venv && source .venv/bin/activate && uv pip install -e .Verify it runs
ssh klone whoami # must return your NetID — seed the SSH session firstRegister with Claude Code
claude mcp add klone -- python -m klone_mcp.serverThe -- is required because claude mcp add would otherwise try to
parse -m as its own flag.
If you installed into a venv, point at that venv's Python:
claude mcp add klone -- /path/to/.venv/bin/python -m klone_mcp.serverOr edit ~/.claude/settings.json directly:
{
"mcpServers": {
"klone": {
"command": "python",
"args": ["-m", "klone_mcp.server"]
}
}
}Use it
claudeInside the session:
"Run
klone_runwithwhoami."
Should return your NetID. If Duo expired, you'll get a structured re-auth
prompt — open a terminal, do ssh klone, complete Duo, leave that
terminal open, and ask the agent to retry.
Tools
Tool | Purpose |
| Run any shell command on klone. Returns stdout + (on success) stderr, capped at 1 MB per stream. Pipe large content via |
| Run |
Things like df, du, sinfo, hyakalloc, scontrol, squeue, sacct, sbatch are not separate tools — invoke them via klone_run. See the klone://docs/commands resource for a curated list. To write a file, use a heredoc or stdin=: klone_run("cat > /tmp/x", stdin=body).
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- Alicense-qualityDmaintenanceA simple MCP Server with Shell Execution capabilities that can be connected to locally via Ngrok or hosted in an Ubuntu24 Docker container.Last updated4MIT
- Flicense-qualityDmaintenanceMCP server for Claude Code to execute commands on any remote server over SSH. Provides tools for remote execution, file operations, and connection info.Last updated
- Flicense-qualityCmaintenanceA production-ready MCP server providing file, system, math, and text utilities through a simple CLI client.Last updated
- FlicenseAqualityCmaintenanceA simple MCP server that exposes a terminal tool, allowing AI agents to execute shell commands.Last updated1
Related MCP Connectors
A very simple remote MCP server that greets you, with a custom icon.
A basic MCP server to operate on the Postman API.
An MCP server for deep research or task groups
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/aurasoph/hyak-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server