Skip to main content
Glama
CHASE MCP Server

CHASE MCP Server

by chase-cps

is_environment

Read-onlyIdempotent

Checks whether an LTL formula or state machine is an environment of a contract, ensuring every behavior satisfies the contract's assumptions under optional context formulas.

Instructions

Is the environment an environment of the contract (E |=_E C)? The environment is an LTL formula over the variables of the contract (environment): environment -> A must be valid; or a state machine (smv, machine, or rtl, as for is_implementation) every behavior of which must satisfy A. context: formulas that every behavior satisfies (e.g. an axiom of an encoding, a physical law); the behaviors that violate them are left out.

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": {
      "contract": "<contract>"
    },
    "name": "is_environment"
  }
}

Input Schema

NameRequiredDescriptionDefault
rtlNo
smvNo
backendNoauto
contextNo
machineNo
timeoutNo
contractYes
environmentNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.7.0
    • addedInput schema / $defs / ContractSpec / properties / constants
      Added value: +{
      +  "additionalProperties": {
      +    "anyOf": [
      +      {
      +        "type": "integer"
      +      },
      +      {
      +        "type": "number"
      +      }
      +    ]
      +  },
      +  "description": "Named constants: name -> value; the formulas use the names (repair changes them)",
      +  "title": "Constants",
      +  "type": "object"
      +}
  2. Addedv0.4.2

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint/idempotentHint/openWorldHint=false, so safety is covered. The description adds genuine semantics beyond that — what `context` does (behaviours violating it are discarded) and the two evaluation modes — but says nothing about the result shape, whether a counterexample environment/behaviour is returned, timeout behaviour, or backend selection effects.

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?

The core question is front-loaded, followed by the two environment forms and then the context clarification; every sentence carries technical content. It is dense and notation-heavy but not padded.

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?

For an 8-parameter verification tool with zero schema description coverage and no output schema, the description covers the essential semantics but omits how the mutually exclusive environment/smv/machine/rtl inputs interact and what the tool actually returns (a verdict, a witness, a diagnostic?). Those omissions matter to calling it correctly.

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?

Schema description coverage is 0%, so the description must carry the load. It does explain the two central parameters (environment as an LTL formula, context as global axioms) and names the three machine-source parameters (smv, machine, rtl), but leaves `backend` (9 enum modes), `timeout` and the mode-selection rules between mutually exclusive inputs unexplained, and defers `machine`/`rtl` details to a sibling tool.

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?

The description states a specific question (is this environment an environment of the contract, i.e. does it satisfy the assumptions) and unpacks both alternative forms the environment can take (LTL formula vs. state machine). It distinguishes itself from the neighbouring check tools only by reference ('as for is_implementation') rather than by an explicit contrast, but the verb+resource+semantics are clear.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: an agent can infer this is the 'does the environment meet the assumptions' check, but nothing says when to pick it over is_implementation, is_realizable, is_compatible or is_consistent. The only routing hint is the parenthetical that the machine formats are the same as is_implementation.

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