MCP server for managing asynchronous AI workloads on Jungle Grid with job submission, monitoring, logs, and artifacts.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag โ we're steadily working through the catalog.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by MCP Server.
estimate_jobEstimate routing, capacity source, and expected cost without creating work.
submit_jobSubmit a workload. This may start compute and incur usage charges.
upload_job_inputCreate a signed upload slot for an input file or script.
list_job_inputsList uploaded inputs and scripts for the authenticated account.
list_jobsList recent jobs.
get_jobRead job status, phase, scheduling, billing, and artifact readiness.
Jungle Grid MCP lets MCP-aware agents estimate, submit, monitor, cancel, and retrieve artifacts from Jungle Grid workloads. It supports local stdio clients and hosted Streamable HTTP deployments that forward tool calls to the Jungle Grid API.
Use it for asynchronous AI workload execution, batch processing, training, fine-tuning, uploaded file or script backed jobs, lifecycle diagnostics, workload logs, and managed output artifacts.
Requirements:
Run the local stdio server with npx:
Install globally if you prefer a stable executable:
Local stdio uses environment variables:
| Variable | Required | Purpose |
|---|---|---|
JUNGLE_GRID_API_KEY | Yes for local stdio | Bearer token forwarded to the Jungle Grid API. |
JUNGLEGRID_API_BASE | No | API base URL. Defaults to https://api.junglegrid.dev. |
JUNGLE_GRID_API_URL | No | Legacy API base URL alias, also accepted. |
Hosted HTTP gateway deployments also support:
| Variable | Required | Purpose |
|---|---|---|
MCP_TRANSPORT=http | No | Starts Streamable HTTP instead of stdio. |
PORT | No | HTTP port. Defaults to 3000. |
JUNGLEGRID_INTERNAL_SERVICE_TOKEN | No | Service token used for OAuth introspection or fallback API calls. |
OAUTH_ISSUER | No | OAuth issuer. Defaults to https://api.junglegrid.dev. |
MCP_RESOURCE | No | Protected resource URL. Defaults to https://mcp.junglegrid.dev. |
MCP_RESOURCE_METADATA_URL | No | OAuth protected-resource metadata URL. |
OPENAI_APPS_CHALLENGE_TOKEN | No | Enables /.well-known/openai-apps-challenge when configured. |
Never commit API keys, OAuth tokens, signed upload URLs, signed artifact URLs, or callback secrets.
Local clients launch the package and communicate over stdio.
Add the same mcpServers block to claude_desktop_config.json, then fully quit and reopen Claude Desktop.
macOS:
Windows:
For project config, avoid checked-in secrets. Put the key in the environment used to launch Cursor:
For a local uncommitted Cursor config:
The HTTP server exposes:
GET /healthzGET /.well-known/oauth-protected-resourcePOST /mcpStart it locally:
Hosted MCP clients must send Authorization: Bearer <oauth_access_token> to POST /mcp. The server introspects tokens at /oauth/introspect on the configured API base and requires tool-specific scopes.
Ask your MCP client to call the tools in this order:
If the estimate is acceptable, submit the job:
Use the returned job_id with get_job, get_job_events, get_job_logs, list_artifacts, and get_artifact.
The current tool registry exposes these exact tool names:
| Tool | Purpose | Required parameters | Optional parameters |
|---|---|---|---|
estimate_job | Estimate routing, capacity source, and expected cost without creating work. | workload_type | model_size, image, command, args, routing_mode, template, notes |
submit_job | Submit a workload. This may start compute and incur usage charges. | name, workload_type, image | model_size, command, args, env, input_files, script_files, script_file, expected_artifacts, routing_mode, template, metadata |
upload_job_input | Create a signed upload slot for an input file or script. | filename | content_type, kind |
list_job_inputs | List uploaded inputs and scripts for the authenticated account. | none | none |
list_jobs | List recent jobs. | none | limit, cursor, status |
get_job | Read job status, phase, scheduling, billing, and artifact readiness. | job_id | none |
get_job_events | Read lifecycle events for scheduling, provisioning, startup, failures, and cancellation. | job_id | none |
get_job_logs | Read persisted runtime and workload logs. | job_id | limit, cursor |
cancel_job | Request cancellation of a non-terminal job. | job_id | reason |
list_artifacts | List managed output artifacts for a job. | job_id | none |
get_artifact | Create temporary artifact download information. | job_id, artifact_id | none |
Accepted workload_type values are inference, training, fine_tuning, and batch. The MCP server forwards fine_tuning to the REST API as fine-tuning. Accepted routing_mode values are cost, speed, and balanced.
estimate_jobReturns classification, route status, capacity source, estimated cost range, availability, and screening details when returned by the API. An estimate is not a reservation and does not guarantee immediate startup.
Common errors: missing workload_type, invalid enum value, authentication failure, forbidden scope, invalid request, upstream API error.
submit_jobCreates an asynchronous job. model_size is an optional size in GB used to select suitable GPU capacity and is forwarded as REST model_size_gb. command is preferably an array of strings. env must be an object with string values and is forwarded as REST environment. input_files and script_files accept arrays of { "input_id": "..." }; string IDs are normalized for compatibility. The current REST implementation supports one uploaded script reference.
Expected response includes job_id, status, queued_at or submitted_at, routing fields, input/script details, and artifact contract fields when returned by the API.
Common errors: missing name, image, or workload_type; invalid workload type; command or args too long; invalid environment values; missing or incomplete input IDs; insufficient funds; unavailable capacity; maintenance; authentication or scope failures.
upload_job_inputCreates a signed upload slot. It does not upload file bytes by itself. Upload the bytes to upload.upload_url using upload.method, then complete the upload with upload.complete_url and the returned upload.token.
kind is an arbitrary string accepted by the API. Use input for normal input files and script for scripts by convention. Script uploads mount under /workspace/scripts/<filename>; input uploads mount under /workspace/inputs/<filename>.
Expected response:
Common errors: missing filename, invalid filename, file too large, upload storage unavailable, authentication or scope failure.
list_job_inputsReturns uploaded inputs with input_id, filename, content_type, size_bytes, kind, status, ready, mount_path, and timestamps when available.
list_jobsReturns jobs, limit, next_cursor, and has_more. limit is capped by the API. status is a free-form filter string passed to the API; do not assume the MCP schema restricts it to a fixed enum.
get_jobReturns the current job status and details. Status, execution phase, lifecycle events, runtime details, and workload logs are separate surfaces.
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/jungle-grid-mcp-server)<a href="https://allmcps.com/mcp/jungle-grid-mcp-server"><img src="https://allmcps.com/api/badge/jungle-grid-mcp-server?style=directory" alt="MCP Server on AllMCPs" /></a>