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: remote-mcp
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
Latest Blog Posts
- 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