Skip to main content
Glama
step-by-step-math

step-by-step-math

by gonzavh17

verify_antiderivative

Read-onlyIdempotent

Checks whether a provided antiderivative is correct by differentiating it symbolically; reports verified, inconclusive, or incorrect results, and accepts answers that differ by a constant.

Instructions

Check whether 'antiderivative' is a correct antiderivative of 'integrand' by differentiating it with a symbolic engine (SymPy). Use it whenever the user brings their own integration result: never compare or check by hand. Results that differ by a constant are correct. status: 'verified' (proven), 'inconclusive' (numerically correct but not proven symbolically) or 'incorrect' (with the simplified difference d/dx(antiderivative) - integrand). Expression syntax (SymPy): x**2 (or x^2), 3*x (explicit multiplication), sin(x), cos(x), tan(x), exp(x), log(x) (natural log), sqrt(x), asin(x), atan(x). Also accepts sen, tg and ln. Constants: pi, E, oo (infinity). A '+ C' in the antiderivative is fine.

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": {
      "integrand": "<integrand>",
      "antiderivative": "<antiderivative>"
    },
    "name": "verify_antiderivative"
  }
}

Input Schema

NameRequiredDescriptionDefault
variableNox
integrandYes
antiderivativeYes

Output Schema

NameRequiredDescriptionDefault
noteNo
statusYes
differenceNo
difference_latexNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, and the description adds real behavioral context beyond them: the correctness criterion (differing by a constant is still correct) and the meaning of each status value ('verified' proven, 'inconclusive' numerically correct but unproven, 'incorrect' with the simplified difference). It does not discuss failure modes such as unparseable input, but the substantive semantics are covered.

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

Conciseness4/5

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

Front-loaded with purpose, then the decision rule, then result semantics, then a compact syntax reference. The syntax block is dense but each entry is load-bearing given 0% schema coverage; nothing is filler, though it reads as a run-on paragraph rather than clearly separated sections.

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

Completeness4/5

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

For a 3-parameter symbolic-verification tool with an output schema, the description supplies everything needed to call it correctly except the role of 'variable'. Status meanings and the constant-difference rule remove the main ambiguity an agent would otherwise face.

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

Parameters4/5

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

Schema coverage is 0%, so the description carries the full burden, and it does so well for the two required expression parameters: it enumerates the accepted syntax (x**2/x^2, explicit multiplication, supported functions, aliases sen/tg/ln, constants pi/E/oo) and clarifies that '+ C' is tolerated. The optional 'variable' parameter is never mentioned, which is the only gap.

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

Purpose5/5

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

States a specific verb (check/verify) and resource (antiderivative vs integrand), and explicitly says how verification is performed (symbolic differentiation with SymPy). Clearly distinguishable from the sibling tools integrate (which computes) and differentiate (which differentiates), since this one validates a user-supplied result.

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

Usage Guidelines4/5

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

Gives a concrete trigger: 'Use it whenever the user brings their own integration result' and an explicit exclusion: 'never compare or check by hand.' However it does not explicitly route to or contrast with the sibling 'integrate' tool, leaving that inference to the agent.

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