MCP (Model Context Protocol) server for Joblet job orchestration system
Project description
Joblet MCP Server
MCP server for Joblet job orchestration - enables AI assistants to manage distributed computing jobs through the Joblet platform.
Quick Start
# Install
pip install joblet-mcp-server
# Configure (~/.rnx/rnx-config.yml)
mkdir -p ~/.rnx
cp sample_config.yaml ~/.rnx/rnx-config.yml
# Edit with your Joblet server credentials
# Run
joblet-mcp-server
Features
- Jobs - Run, monitor, and manage compute jobs (logs, metrics, telematics)
- Runtimes - List, inspect, test, build, and validate runtime environments
- Storage - Create and manage persistent volumes
- Networks - Configure isolated networks
- Monitoring - Real-time metrics and GPU status
Workflow orchestration is not provided — it was extracted to a separate project and is not part of the Joblet gRPC API / SDK this server uses.
Architecture
The MCP server is one of three client paths to a Joblet server. It lets an AI
assistant drive Joblet, while the rnx CLI serves human operators and
joblet-sdk-python serves other Python programs. All paths converge on the same
gRPC/mTLS API (:50051) and share the same ~/.rnx/rnx-config.yml credentials.
flowchart TB
AI["AI Assistant<br/>(Claude, OpenAI, etc.)"]
USER["Human operator"]
APP["Other Python apps"]
MCP["joblet-mcp-server<br/>(this project)"]
SDKLIB["joblet-sdk-python<br/>(gRPC client library)"]
RNX["rnx CLI"]
JOBLET["Joblet Server<br/>:50051"]
AI -->|" MCP protocol (stdio) "| MCP
MCP -->|" imports "| SDKLIB
USER -->|" shell "| RNX
APP -->|" imports "| SDKLIB
SDKLIB -->|" gRPC / mTLS "| JOBLET
RNX -->|" gRPC / mTLS "| JOBLET
The MCP server reaches Joblet through joblet-sdk-python — a single gRPC hop
over mTLS, the same API the rnx CLI uses for human operators.
Usage
# Run with the default config (~/.rnx/rnx-config.yml)
joblet-mcp-server
# Use a specific config file or node, or enable debug logging
joblet-mcp-server --config /path/to/config.yml --node viewer --debug
The server communicates with the Joblet server over direct gRPC via joblet-sdk-python, which is installed automatically as a dependency.
Configuration
Create ~/.rnx/rnx-config.yml:
version: "3.0"
nodes:
default:
address: "joblet-server.com:50051"
cert: |
-----BEGIN CERTIFICATE-----
# Your client certificate
-----END CERTIFICATE-----
key: |
-----BEGIN PRIVATE KEY-----
# Your private key
-----END PRIVATE KEY-----
ca: |
-----BEGIN CERTIFICATE-----
# Your CA certificate
-----END CERTIFICATE-----
Compatibility
The MCP server reaches Joblet through joblet-sdk-python, so its proto major
is determined by the SDK it pulls — proto v1.x and v2.x do not interoperate.
| MCP Server | via SDK | joblet-proto | Joblet server (= RNX) |
|---|---|---|---|
| v1.1.3+ (current) | SDK ≥ 2.1.1 (2.x) | v2.x | v5.0.2 – v5.6.11 |
| v1.1.0 – v1.1.2 | SDK ≥ 1.1.4 (1.x) | v1.x | v4.5.0 – v5.0.1 |
Latest stack: MCP v1.1.3 ↔ SDK v2.5.1 ↔ Joblet/RNX v5.6.11 (all proto v2). See COMPATIBILITY.md for the full matrix and feature floors.
Requirements
- Python 3.10+
- Joblet server with TLS certificates
- Configuration file at
~/.rnx/rnx-config.yml - joblet-sdk-python >= 2.0.0 (installed automatically as a dependency)
- gRPC/mTLS access to the Joblet server (port 50051)
Documentation
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file joblet_mcp_server-1.1.4.tar.gz.
File metadata
- Download URL: joblet_mcp_server-1.1.4.tar.gz
- Upload date:
- Size: 15.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3f14051199d0ec6c8552351d675f943be1c4334bb6fb59921195c8f126b4f3e
|
|
| MD5 |
4e2e83f540975108065da56181970c95
|
|
| BLAKE2b-256 |
c033ccc8d2f07b3fd8d120ec9f97fc9b829ff62f07e2bde248ccba157926503d
|
Provenance
The following attestation bundles were made for joblet_mcp_server-1.1.4.tar.gz:
Publisher:
release.yml on ehsaniara/joblet-mcp-server
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
joblet_mcp_server-1.1.4.tar.gz -
Subject digest:
b3f14051199d0ec6c8552351d675f943be1c4334bb6fb59921195c8f126b4f3e - Sigstore transparency entry: 2047750406
- Sigstore integration time:
-
Permalink:
ehsaniara/joblet-mcp-server@a200a6842908e6b5aee63249acccb2e50840cacb -
Branch / Tag:
refs/tags/v1.1.4 - Owner: https://github.com/ehsaniara
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a200a6842908e6b5aee63249acccb2e50840cacb -
Trigger Event:
push
-
Statement type:
File details
Details for the file joblet_mcp_server-1.1.4-py3-none-any.whl.
File metadata
- Download URL: joblet_mcp_server-1.1.4-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49c94a725042ec96a44e18ada344ca745cdf3159e56886fbc3b253b5cfe8598a
|
|
| MD5 |
aeae3d79f466a7e80c6ee9d07a253745
|
|
| BLAKE2b-256 |
13c1bf7ca585e9ccef451958fc789a06dda61f00cffafb52212098696c6347cc
|
Provenance
The following attestation bundles were made for joblet_mcp_server-1.1.4-py3-none-any.whl:
Publisher:
release.yml on ehsaniara/joblet-mcp-server
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
joblet_mcp_server-1.1.4-py3-none-any.whl -
Subject digest:
49c94a725042ec96a44e18ada344ca745cdf3159e56886fbc3b253b5cfe8598a - Sigstore transparency entry: 2047750422
- Sigstore integration time:
-
Permalink:
ehsaniara/joblet-mcp-server@a200a6842908e6b5aee63249acccb2e50840cacb -
Branch / Tag:
refs/tags/v1.1.4 - Owner: https://github.com/ehsaniara
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a200a6842908e6b5aee63249acccb2e50840cacb -
Trigger Event:
push
-
Statement type: