ACGAgent Contract Guard
MCP / AI Tool Breaking Change Guard

Review input schema changes before you deploy.

Compare old and new MCP / AI tool input schemas and identify changes that may break existing agent calls before deployment.

One free comparison. No account or payment details required.

ACG / SCHEMA PREFLIGHT01 — REQUIRED FIELD

BREAKING CHANGE DETECTED

field    customer_id
old      optional
new      required

kind     required_added
path     $.required.customer_id
breaking true
Agent risk: calls that omit customer_id may fail validation.
BUILT FORMCP server & AI tool operatorsAI automation agenciesFunction / tool calling product teams

A schema update can leave yesterday’s calls behind.

A new required field. A removed enum value. A different type. Existing agents may continue sending the old arguments after your tool contract changes.

Schema diff tools can show what changed. ACG applies structural rules to flag changes that can affect existing AI tool calls. The pilot report adds a human-readable risk explanation and suggested pre-deploy action.

Old + new schemas→ACG analysis→Risk + action report

Three changes. Three reasons to check.

These results come from the current ACG engine. Expand any example to inspect its original output.

01

Required field added

BREAKING
OLD SCHEMA
{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string"
    }
  }
}
NEW SCHEMA
{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string"
    }
  },
  "required": [
    "customer_id"
  ]
}

$.required.customer_id

Agent risk Existing agent calls that do not send customer_id may fail validation against the new schema.

Before deployment Update the calling agent/tool contract to supply customer_id before deployment; review calls that omit it.

View raw ACG result · 1 breaking change
{
  "breaking": true,
  "changes": [
    {
      "path": "$.required.customer_id",
      "kind": "required_added",
      "breaking": true,
      "message": "Required field 'customer_id' was added",
      "after": "customer_id"
    }
  ],
  "breaking_count": 1,
  "change_count": 1
}

Risk and action are human-written guidance based on the raw result. No live agent was tested.

02

Enum value removed

BREAKING
OLD SCHEMA
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "draft",
        "active",
        "archived"
      ]
    }
  }
}
NEW SCHEMA
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "active",
        "archived"
      ]
    }
  }
}

$.properties.status.enum

Agent risk An existing agent that sends status = draft may fail validation because the new schema accepts only active or archived.

Before deployment Review agents and stored workflows that send draft. Agree on a supported replacement or retain draft before deployment.

View raw ACG result · 1 breaking change
{
  "breaking": true,
  "changes": [
    {
      "path": "$.properties.status.enum",
      "kind": "enum_narrowed",
      "breaking": true,
      "message": "Enum no longer accepts one or more previous values",
      "before": [
        "draft",
        "active",
        "archived"
      ],
      "after": [
        "active",
        "archived"
      ]
    }
  ],
  "breaking_count": 1,
  "change_count": 1
}

Risk and action are human-written guidance based on the raw result. No live agent was tested.

03

Type changed

BREAKING
OLD SCHEMA
{
  "type": "object",
  "properties": {
    "quantity": {
      "type": "string"
    }
  }
}
NEW SCHEMA
{
  "type": "object",
  "properties": {
    "quantity": {
      "type": "integer"
    }
  }
}

$.properties.quantity.type

Agent risk An existing agent that sends a string quantity, such as "2", may be incompatible with the new integer contract.

Before deployment Update the tool contract and calling agent to send an integer quantity; check representative calls before deployment.

View raw ACG result · 1 breaking change
{
  "breaking": true,
  "changes": [
    {
      "path": "$.properties.quantity.type",
      "kind": "type_changed",
      "breaking": true,
      "message": "type changed",
      "before": "string",
      "after": "integer"
    }
  ],
  "breaking_count": 1,
  "change_count": 1
}

Risk and action are human-written guidance based on the raw result. No live agent was tested.

A focused input-contract check.

Current structural rules

  • Added or removed required designations
  • Added or removed object properties, including nested properties
  • Changes between explicitly declared types
  • Removed or added enum values when both schemas declare an enum
  • Restrictions on additional properties
  • Supported numeric and string bounds; added or changed patterns

Optional property additions and removed required designations are classified as non-breaking by current rules.

Support scope & limits

  • JSON Schema objects for tool inputs. Extract the input schema from your MCP/tool definition.
  • Bounded structural analysis; a non-breaking result does not prove complete compatibility.
  • No reference resolution, full OpenAPI document comparison, or complete JSON Schema dialect coverage.
  • No diff analysis of array items, composition branches (allOf/anyOf/oneOf), or const changes.
  • Both schemas must explicitly declare type for a type-change check; enums must be declared on both sides.
  • No runtime integration testing or guarantee that an agent will succeed.

Each comparison: up to 49,152 UTF-8 request bytes, depth 32, and 3,000 nodes per schema. Complex or unsafe input may be rejected.

Check your next changes. See if you come back.

A 14-day pilot for one project, with reports and a short setup guide. Request it first; agree on the start date and payment method directly.

Includes concise setup guidance. No unlimited consulting, custom integrations, video call, dashboard, team account, or subscription. No $19 monthly plan is available.

$29 / 14-day pilot
  • 1 project
  • Up to 10 distinct tool input schemas
  • Up to 100 old/new comparisons
  • Raw ACG results + readable reports
  • A short setup guide and reusable submission format
Request a $29 pilot

One-time pilot. No recurring billing.

One schema pair. One free report.

Send a sanitized old/new input schema pair. See what ACG finds and what the change could mean for your existing calls.

Try one schema pair free

One pair per team/project. Further comparisons are part of the paid pilot.

  1. Request the free check with your team, email, tool type, and comparison purpose.
  2. Send one sanitized old/new JSON Schema pair through the agreed contact channel.
  3. Receive the raw result and a readable risk/action report.
  4. If it helps, request the $29 pilot. Reuse the same submission format for your next check.

Bring the change you’re about to deploy.

Share only your name or team, email, MCP / AI tool type, comparison purpose, and free trial or $29 pilot interest. Include sanitized schemas after the contact channel is agreed. Do not send credentials or customer data.

Email ouum17@gmail.com. Your email app opens a prefilled request; nothing is submitted by this page.

The free result does not enroll you automatically. Payment arrangements follow confirmed pilot interest. No checkout or account system is provided.