Koskamo

FitLLM MCP

An auditable cross-platform calculator that determines if a local LLM fits on a specific NVIDIA GPU or Apple Silicon Mac by computing exact VRAM and KV-cache requirements based on model architecture, quantization, and context length.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

FitLLM MCP logo, by FitLLMVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by FitLLM
MCP endpoint (Streamable HTTP)
https://fitllm.run/api/mcp
Vendor documentation

What its tools do

3 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

3 of 3 have a description · 3 of 3 declare behavior hints · 2 of 2 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to fitllm.run ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Calculate VRAM requirements for a specific LLM model
  • Determine if a model fits on a given GPU or Mac
  • Get auditable memory breakdowns for model deployment

Source and maintenance

Vendor evidenceRegistry 1.1.0
Maintenance checked

Protocol and capabilities

Server
fitllm 1.1.0
MCP protocol negotiated in check
2025-11-25
Tools
3 advertised
Resources
4 advertised
Resource templates
0 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Tools

3 advertised

check_llm_fit — Check if an LLM fits on hardware
Advertised by the server during the last successful anonymous check.
Advertised read-only

Check whether a specific local LLM fits in the memory of a specific GPU or Apple Silicon Mac. Returns fits/tight/won't-fit verdict with the memory breakdown (weights, KV cache, linear-attention state when present, runtime overhead, reserve), max context, and a concrete fix if it doesn't fit. Use this whenever a user asks anything like "can I run <model> on my <GPU/Mac>?", "will <model> fit in <N>GB?", or "what do I need to run <model>?". Estimates using curated, config-derived architecture fields (MLA, sliding-window, hybrid attention, MoE modeled).

check_llm_fit input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "model"
  ],
  "properties": {
    "ctx": {
      "type": "integer",
      "minimum": 1024,
      "description": "Alias of context_tokens — accepted because the REST API uses this name. Do not pass both with different values."
    },
    "env": {
      "enum": [
        "linux-headless",
        "linux-display",
        "windows-display"
      ],
      "type": "string",
      "description": "Discrete-GPU OS reserve: windows-display (default, 2 GB/card) · linux-display (1.2 GB) · linux-headless (0.6 GB, a second card with no display). Not for Macs or DGX Spark-class systems."
    },
    "gpu": {
      "type": "string",
      "description": "GPU name, fuzzy — e.g. \"RTX 4090\", \"RX 7900 XTX\", \"A100 80GB\". Multi-GPU rigs: join with + — e.g. \"RTX 5090 + RTX 3090\" (VRAM pools across cards). Provide gpu OR mac_ram_gb."
    },
    "model": {
      "type": "string",
      "description": "LLM name, fuzzy — e.g. \"GLM-4.7-Flash\", \"gpt-oss-20b\", \"gemma 31b\""
    },
    "quant": {
      "type": "string",
      "description": "Weight quantization. GPU: Q4_K_M(default)/Q5_K_M/Q6_K/Q8_0/FP16. Mac: 4/8(default)/16 (bits)."
    },
    "kv_bits": {
      "enum": [
        16,
        8,
        4
      ],
      "type": "number",
      "description": "KV-cache quantization bits (default 16 = F16)"
    },
    "gpu_count": {
      "type": "integer",
      "maximum": 8,
      "minimum": 1,
      "description": "Number of identical copies of the gpu (e.g. gpu=\"RTX 3090\", gpu_count=2 for a 2×3090 rig; gpu=\"DGX Spark 128GB\", gpu_count=2 or 4 for linked units under vLLM+Ray or TensorRT-LLM). Default 1."
    },
    "mac_ram_gb": {
      "type": "integer",
      "maximum": 2048,
      "minimum": 8,
      "description": "Apple Silicon unified memory in GB — e.g. 16, 64, 512. Provide gpu OR mac_ram_gb."
    },
    "context_tokens": {
      "type": "integer",
      "minimum": 1024,
      "description": "Context length in tokens (default 8192). Alias: ctx (same field as the REST API)."
    }
  },
  "additionalProperties": false
}
check_llm_fit annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
what_fits_on_hardware — What LLMs fit on this hardware
Advertised by the server during the last successful anonymous check.
Advertised read-only

Rank which popular local LLMs fit on a given GPU or Apple Silicon Mac (at ~4-bit quantization, 8K context) — models that fit come first, biggest first, with max context each. Use when a user asks "what can I run on my <GPU/Mac/N GB>?", "best local model for my machine?", or gives hardware without naming a model.

what_fits_on_hardware input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "gpu": {
      "type": "string",
      "description": "GPU name, fuzzy. Multi-GPU rigs: join with + (e.g. \"RTX 5090 + RTX 3090\"). Provide gpu OR mac_ram_gb."
    },
    "gpu_count": {
      "type": "integer",
      "maximum": 8,
      "minimum": 1,
      "description": "Number of identical copies of the gpu. Default 1."
    },
    "mac_ram_gb": {
      "type": "integer",
      "maximum": 2048,
      "minimum": 8,
      "description": "Apple Silicon unified memory GB. Provide gpu OR mac_ram_gb."
    }
  },
  "additionalProperties": false
}
what_fits_on_hardware annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_supported — List supported models & hardware
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the built-in model names and hardware names this fit-checker knows (for mapping user wording to exact names). Standard text-only HuggingFace transformer configs can also be checked via fitllm.run; unsupported architectures are rejected.

list_supported input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
list_supported annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

4 advertised

models — FitLLM model catalog

Advertised by the server during the last successful anonymous check.

Built-in local LLM catalog with the architecture fields the fit engine uses (layers, KV heads/dims, sliding window, MLA, hybrid attention, MoE). JSON.

models URI
fitllm://models

MIME type: application/json

hardware — FitLLM hardware catalog

Advertised by the server during the last successful anonymous check.

GPUs (VRAM, bandwidth, source-cited) and Apple Silicon chips (unified memory tiers) known to the engine. JSON.

hardware URI
fitllm://hardware

MIME type: application/json

census — FitLLM Fit Census (14,210 verdicts)

Advertised by the server during the last successful anonymous check.

Model × device × quant verdicts computed by the engine — starter matrix inline; full CSV/JSON at fitllm.run/data. CC0 data.

census URI
fitllm://census

MIME type: text/markdown

engine — FitLLM engine — direct access

Advertised by the server during the last successful anonymous check.

The open MIT calculation engine behind every verdict: source, npm package, conformance vectors, versions. Agents may fetch and run it directly.

engine URI
fitllm://engine

MIME type: application/json

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
799 ms
95th percentile latency
799 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 799 ms · metadata changed · 3 tool(s), 4 resource(s), 0 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http fitllm-mcp https://fitllm.run/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add fitllm-mcp --url https://fitllm.run/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable fitllm-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "fitllm-mcp": {
      "url": "https://fitllm.run/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "fitllm-mcp": {
      "type": "streamableHttp",
      "url": "https://fitllm.run/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start fitllm-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "fitllm-mcp": {
      "type": "http",
      "url": "https://fitllm.run/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http fitllm-mcp https://fitllm.run/api/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://fitllm.run/api/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "fitllm-mcp": {
      "serverUrl": "https://fitllm.run/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like FitLLM MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run FitLLM MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing