Skip to main content
Glama

Search Agent Readiness

search_readiness
Read-onlyIdempotent

Search published Agent Readiness report cards. Each card grades one named job on a vendor's service by where a person or the vendor has to step in on an agent's path to it, from its listing and from probes that send the job's request with no account (or, where its interface has no public endpoint, read the vendor's OpenAPI document for it): one letter, A+ to F, over Discover, Authority, Onboard, Pay, Confirm and Sustain, and how often a person is needed; whether the job itself is reachable, verified by a fresh run (proof only, which never changes a step or the letter), or has no machine interface; beside the letter, the failure the vendor's own runs reproduce, when they do; the evidence label; freshness; and the canonical report URL. Service readiness is separate from startup-credit eligibility.

Input Schema

NameRequiredDescriptionDefault
jobNoExact Agent Readiness job key from the job library.
labelNoWhat the job's outcome rests on: probed (the listing and the probes) or vendor_run_verified (a fresh run on an account holder's own runner did the job, and Sourcey replayed and verified it).
limitNoMaximum results to return; defaults to 10.
queryNoVendor, service, API, product, or job.
entityNoCurrent Sourcey Entity slug or immutable Entity ID.
letterNoExact published letter.
productNoExact Agent Readiness product key.

Output Schema

NameRequiredDescriptionDefault
dataYes
totalYes
truncatedYes
release_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / label / description
      Previous value: -"What the job's outcome rests on: probed (graded from the listing and the probes; the job has not been run) or vendor_run_verified (the account holder ran it and Sourcey verified the attestation)."New value: +"What the job's outcome rests on: probed (the listing and the probes) or vendor_run_verified (a fresh run on an account holder's own runner did the job, and Sourcey replayed and verified it)."
    • addedOutput schema / properties / data / items / properties / profile / properties / proof_field
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "failure": {
      +      "oneOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "assertion": {
      +              "pattern": "^[a-z][a-z0-9_]{0,63}$",
      +              "type": "string"
      +            },
      +            "kind": {
      +              "const": "assertion",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "kind",
      +            "assertion"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "call_id": {
      +              "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      +              "type": "string"
      +            },
      +            "kind": {
      +              "const": "refused",
      +              "type": "string"
      +            },
      +            "status": {
      +              "anyOf": [
      +                {
      +                  "const": 401,
      +                  "type": "number"
      +                },
      +                {
      +                  "const": 403,
      +                  "type": "number"
      +                }
      +              ]
      +            }
      +          },
      +          "required": [
      +            "kind",
      +            "call_id",
      +            "status"
      +          ],
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    "runs_at": {
      +      "items": {
      +        "format": "date-time",
      +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +        "type": "string"
      +      },
      +      "minItems": 2,
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "failure",
      +    "runs_at"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / properties / data / items / properties / profile / properties / lifecycle / enum
      Previous value: -[
      -  "active",
      -  "ended",
      -  "withdrawn"
      -]New value: +[
      +  "active",
      +  "paused",
      +  "ended",
      +  "withdrawn"
      +]
  3. Changed12 schema fields changed
    • changedInput schema / properties / label / description
      Previous value: -"Who ran the evidence: sourcey_run, vendor_run_verified, or probed."New value: +"What the job's outcome rests on: probed (graded from the listing and the probes; the job has not been run) or vendor_run_verified (the account holder ran it and Sourcey verified the attestation)."
    • changedInput schema / properties / label / enum
      Previous value: -[
      -  "sourcey_run",
      -  "vendor_run_verified",
      -  "probed"
      -]New value: +[
      +  "vendor_run_verified",
      +  "probed"
      +]
    • addedInput schema / properties / letter
      Added value: +{
      +  "description": "Exact published letter.",
      +  "enum": [
      +    "A+",
      +    "A",
      +    "B+",
      +    "B",
      +    "C",
      +    "D",
      +    "F"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / onboard_level
      Removed value: -{
      -  "description": "Exact Onboard level, 1 (no account needed) to 6 (sales-gated).",
      -  "maximum": 6,
      -  "minimum": 1,
      -  "type": "integer"
      -}
    • removedInput schema / properties / operate_letter
      Removed value: -{
      -  "description": "Exact published Operate letter.",
      -  "enum": [
      -    "A+",
      -    "A",
      -    "B+",
      -    "B",
      -    "C+",
      -    "C",
      -    "D",
      -    "F"
      -  ],
      -  "type": "string"
      -}
    • addedOutput schema / properties / data / items / properties / profile / properties / grade
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "job": {
      +      "enum": [
      +        "reachable",
      +        "verified",
      +        "unavailable"
      +      ],
      +      "type": "string"
      +    },
      +    "letter": {
      +      "enum": [
      +        "A+",
      +        "A",
      +        "B+",
      +        "B",
      +        "C",
      +        "D",
      +        "F"
      +      ],
      +      "type": "string"
      +    },
      +    "steps": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "outcome": {
      +            "enum": [
      +              "machine",
      +              "not_applicable",
      +              "approval",
      +              "workaround",
      +              "gated",
      +              "not_assessed"
      +            ],
      +            "type": "string"
      +          },
      +          "step": {
      +            "enum": [
      +              "discover",
      +              "authority",
      +              "onboard",
      +              "pay",
      +              "confirm",
      +              "sustain"
      +            ],
      +            "type": "string"
      +          },
      +          "timing": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "setup",
      +                  "recurring"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "step",
      +          "outcome",
      +          "timing"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 6,
      +      "minItems": 6,
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "letter",
      +    "steps",
      +    "job"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / data / items / properties / profile / properties / interface_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / data / items / properties / profile / properties / label / enum
      Previous value: -[
      -  "sourcey_run",
      -  "vendor_run_verified",
      -  "probed"
      -]New value: +[
      +  "vendor_run_verified",
      +  "probed"
      +]
    • addedOutput schema / properties / data / items / properties / profile / properties / label_run_at
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "date-time",
      +      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • removedOutput schema / properties / data / items / properties / profile / properties / onboard
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "level": {
      -      "anyOf": [
      -        {
      -          "maximum": 6,
      -          "minimum": 1,
      -          "type": "integer"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    }
      -  },
      -  "required": [
      -    "level"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / data / items / properties / profile / properties / operate
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "letter": {
      -      "anyOf": [
      -        {
      -          "enum": [
      -            "A+",
      -            "A",
      -            "B+",
      -            "B",
      -            "C+",
      -            "C",
      -            "D",
      -            "F"
      -          ],
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    },
      -    "steps": {
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "outcome": {
      -            "enum": [
      -              "machine",
      -              "approval",
      -              "workaround",
      -              "blocked",
      -              "not_applicable",
      -              "not_assessed"
      -            ],
      -            "type": "string"
      -          },
      -          "step": {
      -            "enum": [
      -              "discover",
      -              "delegation",
      -              "pay",
      -              "job",
      -              "confirm",
      -              "sustain"
      -            ],
      -            "type": "string"
      -          },
      -          "timing": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "setup",
      -                  "recurring"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          }
      -        },
      -        "required": [
      -          "step",
      -          "outcome",
      -          "timing"
      -        ],
      -        "type": "object"
      -      },
      -      "maxItems": 6,
      -      "minItems": 6,
      -      "type": "array"
      -    }
      -  },
      -  "required": [
      -    "letter",
      -    "steps"
      -  ],
      -  "type": "object"
      -}
    • changedOutput schema / properties / data / items / properties / profile / required
      Previous value: -[
      -  "agent_readiness_profile_id",
      -  "entity_id",
      -  "scope",
      -  "declaration_revision_digest",
      -  "lifecycle",
      -  "effective_from",
      -  "revision_digest",
      -  "policy_digest",
      -  "policy_version",
      -  "policy_as_of",
      -  "label",
      -  "last_run_at",
      -  "publication",
      -  "provenance",
      -  "canonical_url",
      -  "projection_digest",
      -  "operate",
      -  "onboard"
      -]New value: +[
      +  "agent_readiness_profile_id",
      +  "entity_id",
      +  "scope",
      +  "declaration_revision_digest",
      +  "lifecycle",
      +  "effective_from",
      +  "revision_digest",
      +  "policy_digest",
      +  "policy_version",
      +  "policy_as_of",
      +  "interface_id",
      +  "label",
      +  "label_run_at",
      +  "last_run_at",
      +  "publication",
      +  "provenance",
      +  "canonical_url",
      +  "projection_digest",
      +  "grade"
      +]
  4. Changed31 schema fields changed
    • removedInput schema / properties / funnel
      Removed value: -{
      -  "description": "Exact Agent Readiness service-use funnel key.",
      -  "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      -  "type": "string"
      -}
    • removedInput schema / properties / grade
      Removed value: -{
      -  "description": "Exact published report-card grade.",
      -  "enum": [
      -    "A+",
      -    "A",
      -    "B+",
      -    "B",
      -    "C+",
      -    "C",
      -    "D",
      -    "F",
      -    "unrated"
      -  ],
      -  "type": "string"
      -}
    • addedInput schema / properties / job
      Added value: +{
      +  "description": "Exact Agent Readiness job key from the job library.",
      +  "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      +  "type": "string"
      +}
    • addedInput schema / properties / label
      Added value: +{
      +  "description": "Who ran the evidence: sourcey_run, vendor_run_verified, or probed.",
      +  "enum": [
      +    "sourcey_run",
      +    "vendor_run_verified",
      +    "probed"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / onboard_level
      Added value: +{
      +  "description": "Exact Onboard level, 1 (no account needed) to 6 (sales-gated).",
      +  "maximum": 6,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / operate_letter
      Added value: +{
      +  "description": "Exact published Operate letter.",
      +  "enum": [
      +    "A+",
      +    "A",
      +    "B+",
      +    "B",
      +    "C+",
      +    "C",
      +    "D",
      +    "F"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / query / description
      Previous value: -"Vendor, service, API, product, capability, blocker, or readiness need."New value: +"Vendor, service, API, product, or job."
    • addedOutput schema / properties / data / items / properties / freshness
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "checked_at": {
      +          "format": "date-time",
      +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +          "type": "string"
      +        },
      +        "next_due_at": {
      +          "anyOf": [
      +            {
      +              "format": "date-time",
      +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "state": {
      +          "enum": [
      +            "fresh",
      +            "stale"
      +          ],
      +          "type": "string"
      +        },
      +        "succeeded_at": {
      +          "anyOf": [
      +            {
      +              "format": "date-time",
      +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "checked_at",
      +        "succeeded_at",
      +        "next_due_at",
      +        "state"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • removedOutput schema / properties / data / items / properties / profile / properties / coverage
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "barrier_ratio": {
      -      "maximum": 1,
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "barrier_signals": {
      -      "maximum": 9007199254740991,
      -      "minimum": 0,
      -      "type": "integer"
      -    },
      -    "covered_signals": {
      -      "maximum": 9007199254740991,
      -      "minimum": 0,
      -      "type": "integer"
      -    },
      -    "ratio": {
      -      "maximum": 1,
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "required_signals": {
      -      "maximum": 9007199254740991,
      -      "minimum": 0,
      -      "type": "integer"
      -    },
      -    "status": {
      -      "enum": [
      -        "complete",
      -        "incomplete"
      -      ],
      -      "type": "string"
      -    },
      -    "verified_barrier_signals": {
      -      "maximum": 9007199254740991,
      -      "minimum": 0,
      -      "type": "integer"
      -    }
      -  },
      -  "required": [
      -    "status",
      -    "required_signals",
      -    "covered_signals",
      -    "ratio",
      -    "barrier_signals",
      -    "verified_barrier_signals",
      -    "barrier_ratio"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / data / items / properties / profile / properties / freshness
      Removed value: -{
      -  "enum": [
      -    "fresh",
      -    "stale",
      -    "unknown"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / data / items / properties / profile / properties / grade
      Removed value: -{
      -  "enum": [
      -    "A+",
      -    "A",
      -    "B+",
      -    "B",
      -    "C+",
      -    "C",
      -    "D",
      -    "F",
      -    "unrated"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / data / items / properties / profile / properties / grade_derivation
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "coverage_rule": {
      -      "maxLength": 280,
      -      "minLength": 1,
      -      "type": "string"
      -    },
      -    "explanation": {
      -      "maxLength": 500,
      -      "minLength": 1,
      -      "type": "string"
      -    },
      -    "label": {
      -      "maxLength": 80,
      -      "minLength": 1,
      -      "type": "string"
      -    },
      -    "outcome_rule": {
      -      "maxLength": 280,
      -      "minLength": 1,
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "label",
      -    "explanation",
      -    "coverage_rule",
      -    "outcome_rule"
      -  ],
      -  "type": "object"
      -}
    • addedOutput schema / properties / data / items / properties / profile / properties / label
      Added value: +{
      +  "enum": [
      +    "sourcey_run",
      +    "vendor_run_verified",
      +    "probed"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / items / properties / profile / properties / last_run_at
      Added value: +{
      +  "format": "date-time",
      +  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +  "type": "string"
      +}
    • removedOutput schema / properties / data / items / properties / profile / properties / last_tested_at
      Removed value: -{
      -  "format": "date-time",
      -  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      -  "type": "string"
      -}
    • addedOutput schema / properties / data / items / properties / profile / properties / onboard
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "level": {
      +      "anyOf": [
      +        {
      +          "maximum": 6,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "level"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / data / items / properties / profile / properties / operate
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "letter": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "A+",
      +            "A",
      +            "B+",
      +            "B",
      +            "C+",
      +            "C",
      +            "D",
      +            "F"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "steps": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "outcome": {
      +            "enum": [
      +              "machine",
      +              "approval",
      +              "workaround",
      +              "blocked",
      +              "not_applicable",
      +              "not_assessed"
      +            ],
      +            "type": "string"
      +          },
      +          "step": {
      +            "enum": [
      +              "discover",
      +              "delegation",
      +              "pay",
      +              "job",
      +              "confirm",
      +              "sustain"
      +            ],
      +            "type": "string"
      +          },
      +          "timing": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "setup",
      +                  "recurring"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "step",
      +          "outcome",
      +          "timing"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 6,
      +      "minItems": 6,
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "letter",
      +    "steps"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / data / items / properties / profile / properties / overall_outcome
      Removed value: -{
      -  "enum": [
      -    "pass",
      -    "constrained",
      -    "fail",
      -    "unknown",
      -    "not_applicable"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / data / items / properties / profile / properties / primary_finding
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "blocker": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "code": {
      -          "maxLength": 160,
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        "explanation": {
      -          "maxLength": 500,
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        "signal_code": {
      -          "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "signal_code",
      -        "code",
      -        "explanation"
      -      ],
      -      "type": "object"
      -    },
      -    "finding": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "condition": {
      -          "maxLength": 160,
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        "context": {
      -          "maxLength": 500,
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        "finding": {
      -          "maxLength": 280,
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        "signal_code": {
      -          "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "signal_code",
      -        "condition",
      -        "finding"
      -      ],
      -      "type": "object"
      -    },
      -    "public_state": {
      -      "enum": [
      -        "limited",
      -        "blocked"
      -      ],
      -      "type": "string"
      -    },
      -    "stage": {
      -      "enum": [
      -        "evaluate",
      -        "sign_up",
      -        "pay",
      -        "provision",
      -        "operate"
      -      ],
      -      "type": "string"
      -    },
      -    "stage_label": {
      -      "maxLength": 40,
      -      "minLength": 1,
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "stage",
      -    "stage_label",
      -    "public_state",
      -    "finding"
      -  ],
      -  "type": "object"
      -}
    • addedOutput schema / properties / data / items / properties / profile / properties / provenance / properties / basis_event_ids
      Added value: +{
      +  "items": {
      +    "pattern": "^sha256:[a-f0-9]{64}$",
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / data / items / properties / profile / properties / provenance / properties / freshness
      Removed value: -{
      -  "enum": [
      -    "fresh",
      -    "stale",
      -    "unknown"
      -  ],
      -  "type": "string"
      -}
    • changedOutput schema / properties / data / items / properties / profile / properties / provenance / required
      Previous value: -[
      -  "freshness",
      -  "dispute",
      -  "vendor_attestation"
      -]New value: +[
      +  "dispute",
      +  "vendor_attestation",
      +  "basis_event_ids"
      +]
    • removedOutput schema / properties / data / items / properties / profile / properties / public_state
      Removed value: -{
      -  "enum": [
      -    "ready",
      -    "limited",
      -    "blocked",
      -    "unknown",
      -    "not_applicable"
      -  ],
      -  "type": "string"
      -}
    • changedOutput schema / properties / data / items / properties / profile / properties / publication / properties / reasons / items / enum
      Previous value: -[
      -  "lifecycle_not_active",
      -  "coverage_incomplete",
      -  "required_evidence_not_supported",
      -  "freshness_not_fresh",
      -  "unrated",
      -  "no_useful_finding",
      -  "open_dispute"
      -]New value: +[
      +  "lifecycle_not_active",
      +  "open_dispute"
      +]
    • removedOutput schema / properties / data / items / properties / profile / properties / scope / properties / funnel
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "key": {
      -      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      -      "type": "string"
      -    },
      -    "name": {
      -      "maxLength": 160,
      -      "minLength": 1,
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "key",
      -    "name"
      -  ],
      -  "type": "object"
      -}
    • addedOutput schema / properties / data / items / properties / profile / properties / scope / properties / job
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "key": {
      +      "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
      +      "type": "string"
      +    },
      +    "name": {
      +      "maxLength": 160,
      +      "minLength": 1,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "key",
      +    "name"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / data / items / properties / profile / properties / scope / required
      Previous value: -[
      -  "product",
      -  "funnel"
      -]New value: +[
      +  "product",
      +  "job"
      +]
    • removedOutput schema / properties / data / items / properties / profile / properties / stages
      Removed value: -{
      -  "items": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "outcome": {
      -        "enum": [
      -          "pass",
      -          "constrained",
      -          "fail",
      -          "unknown",
      -          "not_applicable"
      -        ],
      -        "type": "string"
      -      },
      -      "primary_finding": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "condition": {
      -            "maxLength": 160,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "context": {
      -            "maxLength": 500,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "finding": {
      -            "maxLength": 280,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "signal_code": {
      -            "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "signal_code",
      -          "condition",
      -          "finding"
      -        ],
      -        "type": "object"
      -      },
      -      "public_state": {
      -        "enum": [
      -          "ready",
      -          "limited",
      -          "blocked",
      -          "unknown",
      -          "not_applicable"
      -        ],
      -        "type": "string"
      -      },
      -      "stage": {
      -        "enum": [
      -          "evaluate",
      -          "sign_up",
      -          "pay",
      -          "provision",
      -          "operate"
      -        ],
      -        "type": "string"
      -      },
      -      "stage_label": {
      -        "maxLength": 40,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "state_label": {
      -        "maxLength": 40,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "stage",
      -      "stage_label",
      -      "outcome",
      -      "public_state",
      -      "state_label",
      -      "primary_finding"
      -    ],
      -    "type": "object"
      -  },
      -  "maxItems": 5,
      -  "minItems": 5,
      -  "type": "array"
      -}
    • removedOutput schema / properties / data / items / properties / profile / properties / state_label
      Removed value: -{
      -  "maxLength": 40,
      -  "minLength": 1,
      -  "type": "string"
      -}
    • changedOutput schema / properties / data / items / properties / profile / required
      Previous value: -[
      -  "agent_readiness_profile_id",
      -  "entity_id",
      -  "scope",
      -  "declaration_revision_digest",
      -  "lifecycle",
      -  "effective_from",
      -  "revision_digest",
      -  "policy_digest",
      -  "policy_version",
      -  "policy_as_of",
      -  "overall_outcome",
      -  "public_state",
      -  "state_label",
      -  "grade",
      -  "grade_derivation",
      -  "publication",
      -  "coverage",
      -  "last_tested_at",
      -  "freshness",
      -  "canonical_url",
      -  "projection_digest",
      -  "stages",
      -  "provenance"
      -]New value: +[
      +  "agent_readiness_profile_id",
      +  "entity_id",
      +  "scope",
      +  "declaration_revision_digest",
      +  "lifecycle",
      +  "effective_from",
      +  "revision_digest",
      +  "policy_digest",
      +  "policy_version",
      +  "policy_as_of",
      +  "label",
      +  "last_run_at",
      +  "publication",
      +  "provenance",
      +  "canonical_url",
      +  "projection_digest",
      +  "operate",
      +  "onboard"
      +]
    • changedOutput schema / properties / data / items / required
      Previous value: -[
      -  "entity",
      -  "profile"
      -]New value: +[
      +  "entity",
      +  "profile",
      +  "freshness"
      +]
  5. Changed5 schema fields changed
    • changedOutput schema / properties / data / items / properties / entity / properties / identity_assurance / properties / verified_at / pattern
      Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    • changedOutput schema / properties / data / items / properties / profile / properties / effective_from / pattern
      Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    • changedOutput schema / properties / data / items / properties / profile / properties / last_tested_at / pattern
      Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    • changedOutput schema / properties / data / items / properties / profile / properties / policy_as_of / pattern
      Previous value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"New value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    • changedOutput schema / properties / data / items / properties / profile / properties / provenance / properties / vendor_attestation / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "status": {
      -        "const": "none",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "attested_at": {
      -        "format": "date-time",
      -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      -        "type": "string"
      -      },
      -      "event_id": {
      -        "pattern": "^sha256:[a-f0-9]{64}$",
      -        "type": "string"
      -      },
      -      "status": {
      -        "const": "current",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "event_id",
      -      "attested_at"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "status": {
      +        "const": "none",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "attested_at": {
      +        "format": "date-time",
      +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +        "type": "string"
      +      },
      +      "event_id": {
      +        "pattern": "^sha256:[a-f0-9]{64}$",
      +        "type": "string"
      +      },
      +      "status": {
      +        "const": "current",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "event_id",
      +      "attested_at"
      +    ],
      +    "type": "object"
      +  }
      +]
  6. Added

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety bar is low; the description still adds real behavioral meaning — what a card contains (letter, six stages, human-step frequency, reachability, reproduced vendor failure, evidence label, freshness, canonical URL) and the non-obvious rule that a fresh-run proof never changes a step or the letter. The only missing behavior is result volume/pagination, which the schema's limit partially covers.

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?

Purpose is correctly front-loaded, but the remainder is a single semicolon-chained sentence enumerating stages, labels, and output fields, which is hard to parse and partly duplicates the schema's label and letter enums. Every element is on-topic, yet the structure obscures it.

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 read-only search with full schema coverage, an output schema, and complete annotations, the description covers the domain model an agent needs to interpret results. What remains unstated — the relationship to get_readiness and result ordering — is minor but not trivial for a 7-parameter search tool.

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 100%, so the schema already defines job, label, limit, query, entity, letter, and product in detail. The description reinforces the probed vs vendor_run_verified distinction but adds no syntax or format guidance beyond the schema for the other five parameters, so baseline 3 applies.

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?

Opens with a specific verb+resource: 'Search published Agent Readiness report cards.' The description makes clear these are graded per-job per-vendor artifacts, but it never distinguishes this search from the sibling get_readiness, so an agent must infer that one finds and the other fetches.

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 — filters like job, product, entity, letter, and label suggest a filtered lookup, and the closing note 'Service readiness is separate from startup-credit eligibility' usefully steers away from credit/offer queries. But there is no explicit when-to-use, when-not, or named alternative (e.g., get_readiness) anywhere in the text.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.