Skip to main content
Glama
CHASE MCP Server

CHASE MCP Server

by chase-cps

repair

Read-onlyIdempotent

Finds named constant values within specified ranges that make a check pass using the least change, or minimizes/maximizes a term, returning adjusted values, cost, and status.

Instructions

The values of named constants, within their ranges, that make a check pass, at the least change from their present values (the sum of |new - present|), or at the least minimize / the greatest maximize (a term over the constants). parameters: the constants that may change, {name: {low, high, integer}}; they are among the constants of the contracts. The check: refines (refined, abstract), impl or env (contract and implementation / environment as a formula, or smv, machine, rtl), verify, compat, consist (contract). status: holds (the present values pass), repaired (values, cost, optimal), impossible (no values in the ranges pass), or unknown with a reason. check is the result of the check with the values; the method (projection, counterexamples, witnesses, enumeration) and its rounds are given. time_limit (seconds) stops the whole repair: unknown, with the least cost proved so far (bound).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "check": "<check>",
      "parameters": "<parameters>"
    },
    "name": "repair"
  }
}

Input Schema

NameRequiredDescriptionDefault
rtlNo
smvNo
checkYes
methodNoauto
roundsNo
backendNoauto
machineNo
refinedNo
timeoutNo
abstractNo
contractNo
maximizeNo
minimizeNo
parametersYes
time_limitNo
environmentNo
implementationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.7.0

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and closed-world behavior, and the description adds meaningful behavior beyond them: it returns holds/repaired/impossible/unknown, exposes cost/optimal/bound, and says time_limit can stop the whole repair. It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The information is front-loaded and dense with little filler, which is appropriate for a complex tool. But the run-on punctuation and embedded parentheticals make it hard to parse, so structure could be clearer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must describe returns; it does list statuses and result components such as values, cost, optimal, check, method, rounds, and bound. Still, for a 17-parameter nested tool with 0% schema coverage, several inputs remain unexplained, leaving the definition only adequate rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries much of the burden and does explain parameters ranges, check-dependent required specs, minimize/maximize, and time_limit. However, for a 17-parameter tool it omits meaningful semantics for timeout, backend, rounds, method selection, and machine details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Starts by defining the output as values of named constants within ranges that make a check pass, which is a specific repair/optimization purpose. It names check types and result statuses, so an agent can tell what it computes, though it does not explicitly contrast itself with synthesize or other siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use, when-not, or alternative routing guidance. Usage is only implied by the description of making a check pass; an agent must infer that this is for repairing constants rather than verifying, synthesizing, or checking consistency.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.