Skip to main content
Glama
CodeMonk6

RISBridge MCP

by CodeMonk6

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
ris_auth_statusB

Snapshot of local SSH-auth state (key, managed config, mux master) and whether the agent can run RIS commands hands-free. deep=true also runs the decisive key-only login test.

ris_setup_ssh_keyA

Create the dedicated ed25519 key (chmod 600) if absent and show the public key + install command. The private key is never returned. Pass overwrite=true to replace an existing key.

ris_show_public_keyB

Print the dedicated public key and its fingerprint. The private key is never read.

ris_generate_ssh_configA

Render the managed ~/.ssh/config block (with multiplexing) and a diff. Does NOT write anything.

ris_write_ssh_configA

Write the managed config block to ~/.ssh/config (atomic, backed up). Requires confirm=true.

ris_test_key_only_authB

Run the decisive key-only SSH test (BatchMode, no password/keyboard-interactive). Classifies whether the agent can automate without you, or whether Duo/MFA requires the multiplexing fallback.

ris_open_ssh_masterB

Best-effort open of the ControlMaster session; on a Duo host it returns the exact interactive command to run in a real terminal (approve Duo once, then the agent reuses the socket).

ris_check_ssh_masterA

Check the ControlMaster via ssh -O check AND a functional ssh true probe.

ris_repair_stale_socketA

Remove ONLY the exact, verified stale ControlPath socket (five safety guards). Use when the master is gone but a dead socket blocks reconnection.

ris_setup_wizardB

Personalized, plain-English setup checklist. It inspects your current state (WashU username, SSH key, SSH config, Duo/hands-free auth, account & workspace) and tells you the single next step. Read-only — it never changes anything; it points you at the exact tool or command to run next.

ris_discover_profileA

Read-only probe of your RIS identity: username, Slurm accounts/QOS, and WRITABLE storage workspaces (derived from your groups and live-tested). Presents candidates and asks you to confirm — it never picks for you.

ris_set_profileA

Save your confirmed username + Slurm account + storage workspace to ~/.risbridge-mcp/config.json. Validates the account is yours and the workspace is writable (unless force). Requires confirm=true.

ris_show_configB

Show the active resolved profile (username, account, workspace, partitions) and the profiles saved in config.json.

ris_validate_configA

Check the current profile against RIS facts: username set, account/workspace configured, partitions valid.

ris_list_partitionsB

Show RIS Compute2 partitions with availability and plain-English notes (MIG vs full H100, preempt, no plain general).

ris_gpu_statusB

Per-node H100 free/used on the GPU partition (full H100s only; MIG slices excluded).

ris_create_projectB

Create the standard project directory tree (src/ data/{raw,interim,processed}/ models/ outputs/ logs/ sbatch/ envs/ configs/ checkpoints/ manifests/ tmp/) under your /storage workspace.

ris_upload_fileA

Write a text file into a safe project subdirectory (src/ data/ configs/ sbatch/ envs/ manifests/). Refuses overwrite unless overwrite=true. Binary content is not supported.

ris_list_project_filesB

List files in a project (or a subdir) with depth and entry caps.

ris_get_result_manifestC

Read a run's manifest JSON from project/manifests, or list available manifests. Cross-references local run history.

ris_plan_runB

Turn an intent into a safe, validated resource plan (CPU vs GPU, partition, cpus/mem/gpus/walltime, smoke-test recommendation) in plain English. Does NOT submit.

ris_researcher_wizardA

For non-HPC users: from a plain-English goal and a few optional hints, infer a safe plan and the exact next ris_submit_* call. Does NOT submit.

ris_runA

One call: ensures your project + environment exist (auto-builds a PyTorch/TF env if missing) and submits your script — GPU or CPU. No manual conda steps. dryRun preview by default; re-call with dryRun=false, confirm=true to run.

ris_submit_python_jobC

Run a project .py file as a batch job (CPU, or GPU if gpuCount>0). dryRun preview by default.

ris_submit_r_jobC

Run a project .R file via Rscript as a CPU batch job.

ris_submit_notebook_jobC

Execute a project .ipynb headlessly (nbconvert) as a batch job.

ris_submit_gpu_smoke_testA

Submit a tiny GPU validation job (nvidia-smi + torch CUDA check). Uses a MIG slice on general-short by default, or a full H100 on general-gpu if fullH100=true.

ris_submit_array_jobC

Run a project script across a bounded Slurm array (the script reads $SLURM_ARRAY_TASK_ID). Total tasks capped at 10000.

ris_submit_multigpu_torch_jobC

Single-node multi-GPU PyTorch training via torchrun (typed H100 by default).

ris_submit_jupyter_jobB

Launch JupyterLab on a compute node and return the SSH tunnel instructions. Never opens a tunnel itself.

ris_submit_vllm_jobB

Serve a model with vLLM (OpenAI-compatible API) on a full-H100 node and return tunnel instructions.

ris_submit_conda_env_jobC

Build/update a conda environment under the project's envs/ as a CPU job (never uses /home or a GPU).

ris_cancel_jobA

Cancel one of YOUR jobs (ownership verified first). Requires confirm=true. jobId optional only when a project scope is given (cancels the latest in that project).

ris_hold_jobA

Hold one of YOUR pending jobs (ownership verified). Requires confirm=true. jobId optional only with a project scope.

ris_release_jobA

Release one of YOUR held jobs (ownership verified). Requires confirm=true. jobId optional only with a project scope.

ris_list_my_jobsA

Show your current Slurm queue (running/pending), optionally filtered by state or project.

ris_job_historyA

Recent finished jobs via sacct, merged with local run history.

ris_explain_jobA

Plain-English why-pending / why-failed for a job: state + reason + efficiency (seff) + a log tail, with a practical fix. jobId optional — defaults to your most recent job (or the latest in a given project).

ris_get_job_logsB

Fetch a job's stdout/stderr (byte-capped, restricted to its log files). jobId optional — defaults to your most recent job.

ris_tail_job_logsB

Last N lines of a job's logs plus its current state. jobId optional — defaults to your most recent job.

ris_ensure_envA

Make sure a conda environment exists for a project, building it automatically (PyTorch on the CUDA-12.4 wheels by default) if missing — zero manual steps. dryRun preview by default; confirm to build.

ris_list_modulesC

List available Lmod modules on RIS (optionally filtered).

ris_list_conda_envsA

List conda environments visible on RIS (base + project-local).

ris_inspect_conda_envB

List packages in a named or path-based conda env.

ris_generate_sbatch_templateA

Render a ready-to-edit sbatch script for any job type. Generate only — never submits.

ris_estimate_resourcesC

Suggest cpus/mem/gpus/walltime/partition from a description (heuristic, offline).

ris_analyze_efficiencyA

Use seff/sacct to recommend right-sizing for a job or your recent runs.

ris_compare_runsB

Side-by-side comparison of 2+ jobs (resources, exit state, elapsed, efficiency).

ris_create_pipelineA

Submit a chain of Python jobs with --dependency=afterok between stages. dryRun preview by default; confirm to submit the chain.

ris_bootstrap_workerB

Set up the per-user worker: create the control-plane dirs under /.risbridge and submit a low-resource general-cpu daemon that submits/polls jobs for you (minimizes repeat Duo logins). dryRun preview by default.

ris_worker_enqueueB

Queue a Python job for the per-user worker to submit (so the agent need not stay connected). Builds and validates the sbatch script, then appends a request to the worker queue.

ris_worker_statusC

Read the status of a worker-queued run by its id.

ris_worker_cancelB

Ask the worker to cancel a queued/submitted run (appends a cancel request).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.2/5.0

Scored across 53 tools

Disambiguation3/5

The set has many well-described but overlapping tool clusters: ris_run wraps ris_submit_python_job; planning is split across ris_plan_run, ris_researcher_wizard, ris_estimate_resources, and ris_generate_sbatch_template; environment building appears in both ris_ensure_env and ris_submit_conda_env_job; job diagnostics overlap among ris_explain_job, ris_analyze_efficiency, and ris_compare_runs. Detailed descriptions help, but an agent must still disambiguate among similar submission, planning, and worker tools.

Naming Consistency4/5

All tools use a consistent ris_ prefix and lower_snake_case, with a strong verb_noun pattern for most names such as ris_submit_python_job, ris_cancel_job, and ris_list_my_jobs. A few deviate into noun phrases or bare verbs (ris_run, ris_job_history, ris_gpu_status), but the overall convention is predictable.

Tool Count1/5

53 tools is an extreme mismatch for a single MCP server, exceeding the 50+ anchor and the 25+ 'too many' threshold. Even for a broad HPC workflow, the surface is bloated with wrapper, variant, setup, and worker-specific tools that could be consolidated.

Completeness5/5

The server covers a remarkably complete HPC lifecycle: SSH/auth setup, profile discovery, partition/GPU inspection, project and file management, job planning, many job submission types, job control, logs, environment management, efficiency analysis, pipelines, and worker-based execution. No obvious core operation is missing for the stated RIS/Slurm domain.

Maintenance

ActivityInactive
ResponsivenessNo issues