Benchmark local LLM models β speed, quality & hardware fitness verdict from any MCP client
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
Benchmark your local LLM models in one command. Speed, quality, hardware fitness β with a shareable score and public leaderboard.
Think Geekbench, but for local LLMs on your actual hardware.
--share uploads your result and gives you a public URL + leaderboard rankFrom the public leaderboard β all results below were submitted with
metrillm bench --share.
| Model | Machine | CPU | RAM | tok/s | TTFT | Global | Verdict |
|---|---|---|---|---|---|---|---|
| llama3.2:latest | Mac Mini | Apple M4 Pro | 64 GB | 98.9 | 125 ms | 77 | GOOD |
| mistral:latest | Mac Mini | Apple M4 Pro | 64 GB | 54.3 | 124 ms | 76 | GOOD |
| gemma3:4b | MacBook Air | Apple M4 | 32 GB | 35.9 | 303 ms | 72 | GOOD |
| gemma3:1b | MacBook Air | Apple M4 | 32 GB | 39.4 | 362 ms | 72 | GOOD |
| qwen3:1.7b | MacBook Air | Apple M4 | 32 GB | 37.9 | 3.1 s | 70 | GOOD |
| llama3.2:3b | MacBook Air | Apple M4 | 32 GB | 27.8 | 285 ms | 69 | GOOD |
| gemma3:12b | MacBook Air | Apple M4 | 32 GB | 12.3 | 656 ms | 67 | GOOD |
| phi4:14b | MacBook Air | Apple M4 | 32 GB | 11.1 | 515 ms | 65 | GOOD |
| mistral:7b | MacBook Air | Apple M4 | 32 GB | 13.6 | 517 ms | 61 | GOOD |
| deepseek-r1:14b | MacBook Air | Apple M4 | 32 GB | 10.8 | 30.0 s | 25 | NOT RECOMMENDED |
Key takeaway: Small models (1-4B) fly on Apple Silicon. Larger models (14B+) with thinking chains can choke even on capable hardware. See full leaderboard β
By default, production builds upload shared results to the official MetriLLM leaderboard (https://metrillm.dev).
METRILLM_SUPABASE_URLMETRILLM_SUPABASE_ANON_KEYMETRILLM_PUBLIC_RESULT_BASE_URLIf these variables are set to placeholder values (from templates), MetriLLM falls back to official defaults.
PowerShell's default execution policy blocks npm global scripts. If you see PSSecurityException or UnauthorizedAccess when running metrillm, run this once:
Alternatively, use npx metrillm@latest which bypasses the issue entirely.
| Backend | Flag | Default URL | Required env |
|---|---|---|---|
| Ollama | --backend ollama | http://127.0.0.1:11434 | OLLAMA_HOST (optional) |
| LM Studio | --backend lm-studio | http://127.0.0.1:1234 | LM_STUDIO_BASE_URL (optional), LM_STUDIO_API_KEY (optional) |
Shared runtime env:
METRILLM_STREAM_STALL_TIMEOUT_MS (optional): stream watchdog for all backends, default 30000, 0 disables itLM Studio benchmark runs now use the native REST inference endpoint (/api/v1/chat) for both streaming and non-streaming generation.
The previous OpenAI-compatible inference path (/v1/chat/completions) has been retired from MetriLLM so tok/s and TTFT can rely on native LM Studio stats when available.
If a LM Studio response omits native token stats, MetriLLM still computes a score and shows the throughput as estimated.
For very large models, tune timeout flags:
--perf-warmup-timeout-ms (default 300000)--perf-prompt-timeout-ms (default 120000)--quality-timeout-ms (default 120000)--coding-timeout-ms (default 240000)--stream-stall-timeout-ms (default 30000, 0 disables stall timeout for any backend)Benchmark Profile v1 (applied to all benchmark prompts):
temperature=0top_p=1seed=42thinking follows your benchmark mode (--thinking / --no-thinking)context=runtime-default) and is recorded as such in metadata.LM Studio non-thinking guard:
--no-thinking or default), MetriLLM now aborts if the model still emits reasoning traces (for result comparability).{%- set enable_thinking = false %} then eject/reload the model.Hardware Fit Score (0-100) β how well the model runs on your machine:
Quality Score (0-100) β how well the model answers:
Global Score = 30% Hardware Fit + 70% Quality
Hardware is auto-detected and scoring adapts to your tier (Entry/Balanced/High-End). A model hitting 10 tok/s on a 8GB machine scores differently than on a 64GB rig.
Every benchmark you share enriches the public leaderboard. No account needed β pick the method that fits your workflow:
| Method | Command / Action | Best for |
|---|---|---|
| CLI | metrillm bench --share | Terminal users |
| MCP | Call share_result tool | AI coding assistants |
| Plugin | /benchmark skill with share option | Claude Code / Cursor |
All methods produce the same result:
Compare your results on the leaderboard β
Use MetriLLM from Claude Code, Cursor, Windsurf, or any MCP client β no CLI needed.
| Tool | Description |
|---|---|
list_models | List locally available LLM models |
run_benchmark | Run full benchmark (performance + quality) on a model |
get_results | Retrieve previous benchmark results |
share_result | Upload a result to the public leaderboard |
Slash commands that work inside AI coding assistants β no server needed, just a Markdown file.
| Skill | Trigger | Description |
|---|---|---|
/benchmark | User-invoked | Run a full benchmark interactively |
metrillm-guide | Auto-invoked | Contextual guidance on model selection and results |
Skills are included in the plugins below, or can be installed standalone:
Pre-built bundles (MCP + skills + agents) for deeper IDE integration.
| Component | Description |
|---|---|
| MCP config | Auto-connects to metrillm-mcp server |
| Skills | /benchmark + metrillm-guide |
| Agent | benchmark-advisor β analyzes your hardware and recommends models |
Install:
See Claude Code plugin and Cursor plugin for details.
| Integration | Package | Status | Docs |
|---|---|---|---|
| CLI | metrillm | Stable | Usage |
| MCP Server | metrillm-mcp | Stable | MCP docs |
| Skills | β | Stable | Skills |
| Claude Code plugin | β | Stable | Plugin docs |
| Cursor plugin | β | Stable | Plugin docs |
The tap formula lives in Formula/metrillm.rb.
After updating the formula, commit and push so users can install/update with:
Contributions are welcome! Please read the Contributing Guide before submitting a pull request. All commits must include a DCO sign-off.
Apache License 2.0 β see NOTICE for trademark information.
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/metrillm)<a href="https://allmcps.com/mcp/metrillm"><img src="https://allmcps.com/api/badge/metrillm?style=directory" alt="Metrillm on AllMCPs" /></a>