MCP Server for solving systems of linear inequalities over integer domains using quantifier-free Presburger arithmetic. Finds satisfying integer assignments or proves infeasibility for constraint satisfaction problems.
Single tool with critical definition gaps. Tool name 'solve_integer_constraints' lacks action verb prefix (should be 'solve_' or similar, which it has, but is overly generic). Description is present (71 chars) but minimal and lacks WHEN/WHY context. Input schema visible but severely incomplete: parameters lack individual descriptions, no type constraints on nested objects, no output schema documented. No error handling guidance. No parameter validation rules stated. Violates multiple baseline requirements: 100% of A+ tools have param descriptions (this has 0); 100% of A+ tools document return types (this has none).
Solve a system of linear integer inequalities and find a satisfying assignment or prove infeasibility
Missing parameter descriptions. 'variables' and 'constraints' parameters have descriptions, but nested object properties ('coeffs', 'bound') lack descriptions. LLMs cannot infer what 'coeffs' represents (variable-to-coefficient mapping) or 'bound' semantics (upper bound vs lower bound) without explicit text.
No output schema documented. Tool returns {'satisfiable': bool, 'model': dict|null} but LLMs have no visibility into this structure. Cannot plan downstream operations or extract satisfying assignments without guessing field names.
No error handling or recovery guidance. Tool silently returns None for unsolvable systems or >3 variables. LLM receives no indication of why a call failed, whether to retry, or what to do next. Violates recovery-guide pattern.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
Missing constraint documentation. Description does not explain: What is the search domain? (hardcoded -50 to 50). What happens if >3 variables? (returns null). What format are coefficients? (integer dict). These are critical for correct usage.
Generic tool name lacks specificity. 'solve_integer_constraints' is correct verb-noun form but does not distinguish this from other constraint solvers (SAT, SMT, LP). Consider 'solve_presburger_linear_inequalities' or 'find_integer_assignment' for clarity.