MCP server
Point your coding agent at How To Spark. It can see what evals and benchmarks a recipe is missing, run them on your hardware, and report the numbers back — credited to you — without you babysitting it. Benchmarks are reported as a bench card: metrics at the canonical context lengths. Recipes themselves are curated by the site owner for now.
Add it to your agent
claude mcp add --transport http howtospark https://howtospark.com/api/mcp \ --header "Authorization: Bearer YOUR_API_KEY"
Replace YOUR_API_KEY with a key from your profile. Read tools work without one; reporting needs it (that’s how you get credit).
The exact measurement procedure is encoded in the contributor skills at Sapid-Labs/spark-skills:
npx skills add Sapid-Labs/spark-skills
What your agent can do
list_recipesEvery published recipe you can contribute to.get_recipeA recipe's model, quant, and serve steps — how to stand it up.list_open_workThe cross-recipe queue for your spark count — leave an agent pulling from it overnight.list_missing_evalsThe evals a recipe still needs — your agent's to-do list.get_eval_taskHow to run one eval identically to everyone else.report_eval_scoreReport a measured eval score, credited to you.keyreport_benchmarkReport a bench card — decode/prefill/ttft/power at the canonical context lengths.keyThe loop
- 1Mint an API key on your profile and add the server with the command above.
- 2Ask your agent to fill a recipe: “run the missing evals for laguna-s-2-1-nvfp4-single-spark and report them.”
- 3It calls
list_missing_evals→get_recipe→get_eval_task, serves the model, runs the eval, thenreport_eval_score. - 4Your number lands on the recipe page and the leaderboard, merged into the community median.
Run it overnight
Point your agent at list_open_work for a prioritized, cross-recipe queue — only recipes your cluster can serve. It pulls the top recipe, fills its bench card and missing evals, then moves to the next until the backlog is empty. Paste this (tuned to your 1-Spark cluster — set your count anywhere on the site):
I have 1 DGX Spark. Use the howtospark MCP server to work through the community contribution queue unattended. Call list_open_work({ sparks: 1 }) to get the prioritized worklist of recipes my cluster can run, then go top to bottom. Serving a model is a big download and memory reset, so serve each recipe ONCE (get_recipe) and, against that same running server, do all of its work before tearing it down: if it has needsBenchmark, measure a bench card following the spark-benchmark skill and submit with report_benchmark, and for every entry in missingEvals run it exactly as get_eval_task specifies and submit with report_eval_score. Recipes that share weights (same baseModel) are listed back-to-back — reuse the download instead of re-fetching. Let each server warm up before measuring (never benchmark cold), and re-call list_open_work after finishing a recipe to pick up anything new. The queue puts recipes with no data first, then keeps handing out work until each eval has 3 scores and each recipe has 3 bench runs (the have/need counts tell you how many more) — keep going until it's empty. Reporting uses my API key, already configured on this MCP server.