mcpField
N
Nodegrove VRAM: can I run it?

Nodegrove VRAM: can I run it?

Remote
nodegrove.ioAI & Agents0Updated 1w ago

About Nodegrove VRAM: can I run it?

Nodegrove VRAM is an MCP server that estimates whether open-weight LLMs fit a given GPU and what alternatives may fit. It uses stated model and hardware specifications to calculate memory needs and speed ceilings rather than relying on benchmarks.

Key features

  1. 01Check model fit for a named GPU
  2. 02Compare models that fit one GPU
  3. 03Estimate VRAM by quantisation and context
  4. 04Read model configuration from Hugging Face repos
  5. 05Return memory breakdowns and speed ceilings

Use cases

  1. 01Check whether a model fits a GPU before setup
  2. 02Compare quantisation and context options
  3. 03Find alternatives when a model exceeds GPU memory

MCP support

The server exposes six read-only tools for GPU compatibility, model discovery, and VRAM estimates. It is available as a remote endpoint or a local stdio server.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://mcp.nodegrove.io/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Packages
npm@nodegrove/vram-mcp1.1.4

Tools

6
ParameterTypeRequiredDescription
gpustringNoA GPU from list_gpus (id or name, e.g. "rtx-4090", "4090" or "M4 Max").
modelstringNoA model from list_models (id or name, e.g. "llama-3.3-70b" or "Llama 3.3 70B"), or any Hugging Face repo id (e.g. "Qwen/Qwen3-8B"), read live from its config.json.
quantenumNoWeight quantisation: fp16 (FP16 / BF16), q8 (Q8_0), q6 (Q6_K), q5 (Q5_K_M), q4 (Q4_K_M), q3 (Q3_K_M). q4 is the common default.fp16 | q8 | q6 | q5 | q4 | q3
contextintegerNoTokens held in context: prompt plus conversation.
vram_gbnumberNoMemory of a card not in list_gpus, GB. For a Mac, its unified memory with apple_silicon: true.
kv_cacheenumNoKV cache precision. fp16 is what most runtimes use; q8 halves the cache.fp16 | q8
architectureobjectNoA model described by its config.json values instead of a name.
architecture.layersintegerYesnum_hidden_layers
architecture.head_dimintegerYeshead_dim, or hidden_size ÷ num_attention_heads
architecture.kv_headsintegerYesnum_key_value_heads
architecture.params_bnumberYesTotal parameters, billions; all experts for a mixture-of-experts model.
architecture.kv_groupsarrayNoOnly for non-standard attention: one entry per group of layers that cache the same way. Replaces layers × kv_heads × head_dim.
architecture.fixed_state_gbnumberNoFixed recurrent state of linear-attention or Mamba layers, GB.
architecture.native_contextintegerNoThe context window the model supports, tokens.
architecture.active_params_bnumberNoParameters read per token, billions (mixture-of-experts only).
apple_siliconbooleanNovram_gb is Apple unified memory; the GPU can use about 75% of it by default.
bandwidth_gb_snumberNoMemory bandwidth from the maker's spec, GB/s, for a speed ceiling.
active_params_bnumberNoParameters read per token, billions, for a mixture-of-experts model read from Hugging Face (from its model card). Sets the speed ceiling.

Details

From the project README

nodegrove

Can I run it?

An MCP server that tells your AI assistant whether an open-weight LLM fits your GPU, and what would fit instead.
The arithmetic behind nodegrove.io, for any model on Hugging Face and any card.

npm CI


Can my RTX 4090 run Llama 3.3 70B?

No: Llama 3.3 70B at Q4_K_M with 8,192 tokens of context needs 45.8 GB, and the RTX 4090 holds 22.8 GB after headroom. Short by 23 GB. What would work instead:

  • No context length helps: the weights alone are 43.1 GB before a single token of conversation.
  • RTX 6000 Ada (48 GB) is within a whisker: 45.8 GB against 45.6 GB after headroom. With the KV cache at Q8 it needs 44.4 GB and fits.
  • The smallest card here that runs it exactly as asked: A100, 80 GB usable.
  • The biggest model your card does run at these settings, counting mixture-of-experts models at their dense equivalent: Gemma 4 31B, 20.9 GB at ~39 tokens/s.

That is the server's own answer, word for word, from the same code as the GPU compatibility checker on nodegrove.io. Every figure is a stated formula over the model's config.json and the card's published specs: no benchmarks, no guesses. It is free, read-only, and needs no account or key.

Connect

Remote: nothing to install
https://mcp.nodegrove.io/mcp

Install in Cursor Install in VS Code Add to LM Studio

# Claude Code (add --scope user to have it in every project)
claude mcp add --transport http nodegrove-vram https://mcp.nodegrove.io/mcp

# Codex CLI
codex mcp add nodegrove-vram --url https://mcp.nodegrove.io/mcp

# Gemini CLI
gemini mcp add -s user --transport http nodegrove-vram https://mcp.nodegrove.io/mcp
  • Claude (claude.ai and the desktop app): Customize → Connectors → Add → Add custom connector. Name it Nodegrove VRAM, paste the URL, choose No sign-in, then turn it on in a chat from + → Connectors.
  • ChatGPT: Settings → Security and login → turn on Developer mode. At chatgpt.com/plugins, add the URL with No Authentication, then pick it in a chat from + → Developer mode.

Most other clients take this in their mcp.json. Cline, Zed, Open WebUI, Devin Desktop and the rest are covered step by step at nodegrove.io/mcp.

{ "mcpServers": { "nodegrove-vram": { "url": "https://mcp.nodegrove.io/mcp" } } }
Local: over stdio

Needs Node.js 20 or newer:

{
  "mcpServers": {
    "nodegrove-vram": {
      "command": "npx",
      "args": ["-y", "@nodegrove/vram-mcp"]
    }
  }
}

Tools

ToolAsk itIt answers with
can_i_runCan my RTX 4090 run Llama 3.3 70B with 32k of context?Fits, tight or no; the memory split; a speed ceiling; the longest context that fits; and on a no, every change that would make it fit
what_fitsWhat is the best model for my 16 GB card?Every model checked on one card, with a recommended everyday pick, the largest that fits, the best at Q8 and the first out of reach
estimate_vramHow much VRAM does Qwen3 32B need at 64k?Weights, KV cache and overhead at each quantisation, and the smallest common card that holds each
estimate_from_hf_repoHow much memory does Qwen/Qwen3-Next-80B-A3B-Instruct need?Any Hugging Face repo, read from its config.json: the attention layout, the cost of each 1,000 tokens of context, and memory at every quantisation
list_models, list_gpusWhich GPUs do you know?The models and cards with their specs, ids and pages

Models can be named the way people type them ("llama 3.3 70b", Llama-3.3-70B-Instruct) or given as any Hugging Face repo id. Cards can be named ("4090", "M4 Max") or described by their memory and bandwidth. Every answer carries the numbers as fields, links to the model and card pages on nodegrove.io, and the assumptions behind each figure. All six tools are read-only.

How the numbers are made

  • Memory is weights + KV cache + overhead. Weights are parameters × bytes per parameter at the quantisation: FP16 2.00, Q8_0 1.06, Q6_K 0.82, Q5_K_M 0.71, Q4_K_M 0.58, Q3_K_M 0.47. Overhead is 0.5 GB plus 4% of the weights.
  • The KV cache is counted the way each model caches. Sliding-window layers stop at their window, hybrid models (linear attention or Mamba) grow a cache only on their few full-attention layers, and latent attention stores one compressed vector per layer. A standard-transformer formula would overstate these models several times over at long context.
  • Fit means at most 95% of the memory a runtime can address; above 85% it is tight. Apple silicon gives the GPU about 75% of unified memory.
  • Speed is 0.7 × memory bandwidth ÷ bytes of active weights read per token. It is a single-stream ceiling, not a measurement, and the faster the figure, the further real runtimes fall below it.
  • The model table was read from each model's config.json and checked against Hugging Face. Any other repo is read live by the same rules, which reproduce every row of the table; anything the reader cannot model is named in the answer, never guessed.

The full method, with every constant, is at nodegrove.io/data. The same figures are an open dataset under CC BY 4.0, DOI 10.5281/zenodo.22966137.

The math as a library

The server is a thin layer over @nodegrove/llm-math, the package nodegrove.io's pages and calculators are built on:

npm install @nodegrove/llm-math
import { modelById, estimate } from '@nodegrove/llm-math';

estimate({ ...modelById('llama-3.3-70b')!, quant: 'q4', context: 8192 }).totalGb; // 45.77

Privacy

The remote server runs on Cloudflare Workers. Nodegrove keeps no request logs and no record of what you ask: each request is answered by a fresh, stateless instance and forgotten. Cloudflare keeps standard edge logs for a short period, as for any website. Requests are rate-limited to 120 a minute per address. When you ask about a Hugging Face repo, the server fetches that repo's public config.json and metadata; only the repo name is sent. The local version contacts nothing but huggingface.co, and only when you ask about a repo there. Details: nodegrove.io/privacy.

Run your own

The remote endpoint is mcp/src/worker.ts. To deploy a copy to your Cloudflare account, change the route in mcp/wrangler.jsonc, then:

cd mcp && npm install && npx wrangler deploy

Development

cd llm-math && npm install && npm test
cd mcp && npm install && npm test && npm run build

llm-math/ is the package of formulas and data; mcp/ is the server, with the stdio entry (src/stdio.ts), the Worker (src/worker.ts) and the tools (src/tools.ts). This repository is published from Nodegrove's main repository, where the site uses the same package. Issues and pull requests are welcome here; accepted changes are applied upstream and credited.

Found a figure that disagrees with its source? Open an issue with the model or card and the link. To report a security problem, see SECURITY.md.

Licence

The code is MIT. The model and GPU data, llm-math/src/models.ts and llm-math/src/gpus.ts, is CC BY 4.0: use it for anything, and credit Nodegrove (nodegrove.io).

Model and GPU names are trademarks of their owners.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.