Show HN: Maverik – Benchmark, compare and cost-predict your MCP agents Maverik, an open-source tool for benchmarking and cost-predicting MCP agents, was released on Hacker News. It applies JMeter-style load testing to agent configurations, measuring correctness, speed, and cost across tunable parameters like system prompts and models. The tool aims to help developers answer questions such as whether a new prompt improves answers or just increases cost, and what 10,000 questions will cost at a given customer. Benchmark, compare, and cost-predict your MCP agents. Think JMeter — but for agents built on the Model Context Protocol. Quick start -quick-start · Frontend -frontend · Define a suite -defining-a-test-suite · Run a benchmark -running-a-benchmark · Metrics -metrics · API -api-reference · https://camo.githubusercontent.com/8320bd405869f93aeb889bb1453d3ede02c97c9519062cc25192e5b90b955cb1/68747470733a2f2f6465762e746f2f6c616e67656e736a6f6e617468616e2f646f2d756e757365642d6d63702d746f6f6c732d636f73742d796f752d6d6f6e65792d32676e62 Roadmap -roadmap JMeter exists because "is my system fast enough?" is a question you answer by measuring, not guessing — you define a test plan, throw load at your system, and read off the numbers that tell you whether a change made things better or worse. MAVERIK applies the same idea to MCP agents: instead of a system's throughput and latency under load, you're measuring an agent configuration's correctness, speed, and cost as you tweak it. An agent configuration has a set of tunable parameters — the system prompt, the LLM model, which MCP servers/tools it can reach, the tool-loop strategy, the iteration cap, and down the road context-reduction strategies — and a set of outcome parameters you judge it on: whether it reaches an acceptable answer, how long that takes, how many input/output tokens it burns, and which tools it reaches for some are far more expensive to call than others . The MAVERIK workflow is to model the outcome parameters first — what counts as a correct answer, what latency and token budget is acceptable, which tools are "free" and which should be used sparingly — and only then sweep the tunable parameters and compare. Concretely: you define Agent Configurations system prompt, model, MCP servers, loop strategy, iteration cap and Test Suites of questions with pass criteria. MAVERIK fires every question at every agent configuration and records: ⏱️ Time | wall-clock duration of the full agent turn, tools included | 🔢 Tokens | input & output tokens, summed across every LLM round-trip in the loop | ✅ Correctness | deterministic checks or LLM-as-judge judge cost tracked separately | 💰 Cost | estimated per-question and total cost from per-model pricing | So instead of guessing, you can measure questions like: - Does the new version of my system prompt answer better — or just cost more? - Is Claude Haiku good enough for this scenario, or do I need Sonnet? - Does running tool calls in parallel actually make my agent faster? - What will 10,000 of these questions cost at customer X? If you're new to the term: an LLM agent is a language model wired up to a loop and a set of tools. On its own, an LLM just turns text into text — it can't look anything up or take action. Give it a set of tools functions it can call — read a file, hit an API, query a database and a loop that feeds each tool's result back to it, and it can work multi-step problems: decide it needs information, call a tool, read what came back, decide whether that's enough or it needs another tool, and eventually answer. That loop — call a tool or answer, repeat until done — is what makes something an agent rather than a one-shot completion. MAVERIK's MCP host implements exactly that loop see maverik/src/chat/ChatWorker.cs / maverik/src/loop/LoopStrategy.cs , and the tools it hands the model come from one or more MCP servers — servers exposing typed, discoverable functions over the Model Context Protocol https://modelcontextprotocol.io . MAVERIK's specific definition of "agent" is an Agent Configuration — the AgentConfig object maverik/src/agents/AgentConfig.cs defined in config/agents.json . It's a named bundle of everything that determines how the loop behaves for a given use case: | Field | Meaning | |---|---| systemPrompt | how the agent is primed/instructed inline or config/prompts/agent/