jlab-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JLAB_MCP_DIR | No | Base working directory | ~/.jlab-mcp |
| JLAB_MCP_LOG_DIR | No | SLURM job logs | ~/.jlab-mcp/logs |
| JLAB_MCP_PORT_MAX | No | Port range upper bound | 19000 |
| JLAB_MCP_PORT_MIN | No | Port range lower bound | 18000 |
| JLAB_MCP_SLURM_MEM | No | Memory in MB | 32000 |
| JLAB_MCP_SLURM_CPUS | No | CPUs per task | 4 |
| JLAB_MCP_SLURM_GRES | No | SLURM generic resource | gpu:1 |
| JLAB_MCP_SLURM_TIME | No | Wall clock time limit | 4:00:00 |
| JLAB_MCP_NOTEBOOK_DIR | No | Notebook storage | ~/.jlab-mcp/notebooks |
| JLAB_MCP_SLURM_MODULES | No | Space-separated modules to load (e.g. cuda/12.6) | |
| JLAB_MCP_CONNECTION_DIR | No | Connection info files | ~/.jlab-mcp/connections |
| JLAB_MCP_SLURM_PARTITION | No | SLURM partition | gpu |
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
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| start_new_sessionA | Start a new session: submit SLURM job, start kernel, create notebook. Args: experiment_name: Name for the experiment/notebook. Returns: Dict with session_id, notebook_path, job_id, hostname. |
| start_session_resume_notebookA | Resume a notebook: re-execute all cells to restore kernel state. Args: experiment_name: Name for this session. notebook_path: Path to existing notebook to resume. Returns: Dict with session_id, notebook_path, job_id, hostname, errors. |
| start_session_continue_notebookA | Continue a notebook: fork it with fresh kernel (no re-execution). Args: experiment_name: Name for this session. notebook_path: Path to existing notebook to fork. Returns: Dict with session_id, notebook_path (forked), job_id, hostname. |
| execute_codeB | Execute code in the kernel and add cell to notebook. Args: session_id: Session identifier. code: Python code to execute. Returns: Formatted output string. |
| edit_cellC | Edit an existing cell, re-execute it, and update outputs. Args: session_id: Session identifier. cell_index: Cell index (supports negative indexing). code: New code for the cell. Returns: Formatted output string. |
| add_markdownB | Add a markdown cell to the notebook. Args: session_id: Session identifier. markdown: Markdown content. Returns: Confirmation with cell index. |
| shutdown_sessionA | Shutdown session: stop kernel and cancel SLURM job. Args: session_id: Session identifier. Returns: Confirmation message. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| server_status | Get server status: active sessions, job states. |
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose: adding markdown, editing cells, executing code, and managing sessions (shutdown, start new, continue, resume). There is no overlap in functionality that would cause confusion.
All tools follow a consistent verb_noun pattern with snake_case (e.g., add_markdown, edit_cell, execute_code). The naming is predictable and readable throughout the set.
With 7 tools, this server is well-scoped for Jupyter notebook management. It covers core operations (session lifecycle, code execution, cell editing) without being overly sparse or bloated.
The toolset provides comprehensive coverage for notebook operations, including session management and cell manipulation. A minor gap is the lack of a tool to delete cells or manage notebook files beyond forking/resuming, but agents can work around this.