Skip to main content
Glama
ShieldLabs-ai

@shieldlabs-ai/mcp

Official

Get identification

shieldlabs_get_identification
Read-onlyIdempotent

Retrieve an identification card by UUID within a public domain, optionally polling for up to 10 seconds when results are not yet available.

Instructions

Read one identification card by identification_id in a public domain UUID. wait polls missing results for at most 10 seconds; unavailable risk remains unavailable.

Input Schema

NameRequiredDescriptionDefault
toNo
fromNo
waitNo
domainYesPublic domain UUID from shieldlabs_list_domains, not the hostname.
response_formatNomarkdown
identification_idYes

Output Schema

NameRequiredDescriptionDefault
foundYes
identificationYes
untrusted_data_noteYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed59 schema fields changedv1.1.0
    • addedInput schema / properties / domain
      Added value: +{
      +  "description": "Public domain UUID from shieldlabs_list_domains, not the hostname.",
      +  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      +  "type": "string"
      +}
    • addedInput schema / properties / from
      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"
      +}
    • addedInput schema / properties / identification_id
      Added value: +{
      +  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      +  "type": "string"
      +}
    • removedInput schema / properties / request_id
      Removed value: -{
      -  "description": "Request ID of one identification: the UUID the browser agent returned for the protected action, for example \"02f1d973-84db-4156-a7f7-e799e6bf389b\"",
      -  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      -  "type": "string"
      -}
    • removedInput schema / properties / response_format / description
      Removed value: -"Output format: 'markdown' (default) for readable text, 'json' for structured data"
    • addedInput schema / properties / to
      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"
      +}
    • removedInput schema / properties / wait / description
      Removed value: -"Wait for the verdict when the identification is not stored yet, polling for up to about 10 seconds in total (default true). Use false to read once, for example to read a refined verdict again."
    • changedInput schema / required
      Previous value: -[
      -  "request_id"
      -]New value: +[
      +  "domain",
      +  "identification_id"
      +]
    • addedOutput schema / properties / identification / properties / attributes
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "browser": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "connection_type": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "countries": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "type": "string"
      +              },
      +              "maxItems": 100,
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "device_type": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "local_countries": {
      +          "anyOf": [
      +            {
      +              "items": {
      +                "type": "string"
      +              },
      +              "maxItems": 100,
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "os": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "countries",
      +        "local_countries",
      +        "browser",
      +        "os",
      +        "device_type",
      +        "connection_type"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / identification / properties / band_split
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "dangerous": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "suspicious": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "trusted": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "trusted",
      +        "suspicious",
      +        "dangerous"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / identification / properties / browser / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / identification / properties / connection_type / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / identification / properties / cookie_id / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / identification / properties / country
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / identification / properties / created_at
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / identification / properties / detection_flags
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "abuser": {
      -      "type": "boolean"
      -    },
      -    "anti_detect_browser": {
      -      "type": "boolean"
      -    },
      -    "browser_automation": {
      -      "type": "boolean"
      -    },
      -    "browser_vpn_proxy": {
      -      "type": "boolean"
      -    },
      -    "check_incomplete": {
      -      "type": "boolean"
      -    },
      -    "datacenter_ip": {
      -      "type": "boolean"
      -    },
      -    "incognito": {
      -      "type": "boolean"
      -    },
      -    "ip_mismatch": {
      -      "type": "boolean"
      -    },
      -    "javascript_disabled": {
      -      "type": "boolean"
      -    },
      -    "os_mismatch": {
      -      "type": "boolean"
      -    },
      -    "os_not_detected": {
      -      "type": "boolean"
      -    },
      -    "privacy_relay": {
      -      "type": "boolean"
      -    },
      -    "proxy": {
      -      "type": "boolean"
      -    },
      -    "search_bot": {
      -      "type": "boolean"
      -    },
      -    "stun_not_checked": {
      -      "type": "boolean"
      -    },
      -    "suspicious_paid_click": {
      -      "type": "boolean"
      -    },
      -    "timezone_mismatch": {
      -      "type": "boolean"
      -    },
      -    "tor": {
      -      "type": "boolean"
      -    },
      -    "vpn": {
      -      "type": "boolean"
      -    }
      -  },
      -  "required": [
      -    "vpn",
      -    "privacy_relay",
      -    "browser_vpn_proxy",
      -    "tor",
      -    "proxy",
      -    "datacenter_ip",
      -    "abuser",
      -    "os_mismatch",
      -    "os_not_detected",
      -    "timezone_mismatch",
      -    "anti_detect_browser",
      -    "browser_automation",
      -    "ip_mismatch",
      -    "incognito",
      -    "search_bot",
      -    "suspicious_paid_click",
      -    "javascript_disabled",
      -    "stun_not_checked",
      -    "check_incomplete"
      -  ],
      -  "type": "object"
      -}
    • changedOutput schema / properties / identification / properties / device_id / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / identification / properties / device_id_source
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / identification / properties / device_identity
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "hardware_id": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "hardware_ids": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "maxItems": 100,
      +          "type": "array"
      +        },
      +        "legacy_device_id": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "legacy_device_ids": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "maxItems": 100,
      +          "type": "array"
      +        },
      +        "record_ids": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "maxItems": 100,
      +          "type": "array"
      +        },
      +        "state": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / identification / properties / device_type / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / identification / properties / domain_id
      Added value: +{
      +  "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      +  "type": "string"
      +}
    • removedOutput schema / properties / identification / properties / escaped_fields
      Removed value: -{
      -  "description": "Only present when a value contained invisible or control characters: paths of the fields where this server replaced them with visible \\uXXXX or \\u{XXXXX} escapes. Such a value differs from the stored one: do not search by it.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / identification / properties / first_seen
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / identification / properties / high_risk_events
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "as_of": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "items": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "code": {
      +                "type": "string"
      +              },
      +              "confidence": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "code",
      +              "confidence"
      +            ],
      +            "type": "object"
      +          },
      +          "maxItems": 100,
      +          "type": "array"
      +        },
      +        "state": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "state",
      +        "as_of",
      +        "items"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / identification / properties / id
      Added value: +{
      +  "maxLength": 512,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedOutput schema / properties / identification / properties / identifications
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / identification / properties / identity_risk
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "device": {
      +          "anyOf": [
      +            {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "as_of": {
      +                      "type": "string"
      +                    },
      +                    "band": {
      +                      "enum": [
      +                        "trusted",
      +                        "suspicious",
      +                        "dangerous"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "score": {
      +                      "maximum": 100,
      +                      "minimum": 0,
      +                      "type": "integer"
      +                    },
      +                    "state": {
      +                      "const": "ok",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "state",
      +                    "band",
      +                    "as_of"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "as_of": {
      +                      "type": "null"
      +                    },
      +                    "band": {
      +                      "type": "null"
      +                    },
      +                    "state": {
      +                      "const": "unavailable",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "state",
      +                    "band",
      +                    "as_of"
      +                  ],
      +                  "type": "object"
      +                }
      +              ]
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "ip": {
      +          "anyOf": [
      +            {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "as_of": {
      +                      "type": "string"
      +                    },
      +                    "band": {
      +                      "enum": [
      +                        "trusted",
      +                        "suspicious",
      +                        "dangerous"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "score": {
      +                      "maximum": 100,
      +                      "minimum": 0,
      +                      "type": "integer"
      +                    },
      +                    "state": {
      +                      "const": "ok",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "state",
      +                    "band",
      +                    "as_of"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "as_of": {
      +                      "type": "null"
      +                    },
      +                    "band": {
      +                      "type": "null"
      +                    },
      +                    "state": {
      +                      "const": "unavailable",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "state",
      +                    "band",
      +                    "as_of"
      +                  ],
      +                  "type": "object"
      +                }
      +              ]
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "user": {
      +          "anyOf": [
      +            {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "as_of": {
      +                      "type": "string"
      +                    },
      +                    "band": {
      +                      "enum": [
      +                        "trusted",
      +                        "suspicious",
      +                        "dangerous"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "score": {
      +                      "maximum": 100,
      +                      "minimum": 0,
      +                      "type": "integer"
      +                    },
      +                    "state": {
      +                      "const": "ok",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "state",
      +                    "band",
      +                    "as_of"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "as_of": {
      +                      "type": "null"
      +                    },
      +                    "band": {
      +                      "type": "null"
      +                    },
      +                    "state": {
      +                      "const": "unavailable",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "state",
      +                    "band",
      +                    "as_of"
      +                  ],
      +                  "type": "object"
      +                }
      +              ]
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "visitor": {
      +          "anyOf": [
      +            {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "as_of": {
      +                      "type": "string"
      +                    },
      +                    "band": {
      +                      "enum": [
      +                        "trusted",
      +                        "suspicious",
      +                        "dangerous"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "score": {
      +                      "maximum": 100,
      +                      "minimum": 0,
      +                      "type": "integer"
      +                    },
      +                    "state": {
      +                      "const": "ok",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "state",
      +                    "band",
      +                    "as_of"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "as_of": {
      +                      "type": "null"
      +                    },
      +                    "band": {
      +                      "type": "null"
      +                    },
      +                    "state": {
      +                      "const": "unavailable",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "state",
      +                    "band",
      +                    "as_of"
      +                  ],
      +                  "type": "object"
      +                }
      +              ]
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "visitor",
      +        "device",
      +        "user",
      +        "ip"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • addedOutput schema / properties / identification / properties / last_seen
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / identification / properties / local_country
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • removedOutput schema / properties / identification / properties / local_ip / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / identification / properties / local_ip / properties
      Removed value: -{
      -  "country": {
      -    "description": "English country name (for example \"Germany\"), or \"\" when unknown",
      -    "type": "string"
      -  },
      -  "ip": {
      -    "description": "Dotted IPv4 address, or \"\" when none is known",
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / identification / properties / local_ip / required
      Removed value: -[
      -  "ip",
      -  "country"
      -]
    • changedOutput schema / properties / identification / properties / local_ip / type
      Previous value: -"object"New value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / identification / properties / observed_at
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "description": "When the identification was observed, RFC 3339 UTC with milliseconds",
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • changedOutput schema / properties / identification / properties / os / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / identification / properties / public_ip / additionalProperties
      Removed value: -false
    • removedOutput schema / properties / identification / properties / public_ip / properties
      Removed value: -{
      -  "country": {
      -    "description": "English country name (for example \"Germany\"), or \"\" when unknown",
      -    "type": "string"
      -  },
      -  "ip": {
      -    "description": "Dotted IPv4 address, or \"\" when none is known",
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / properties / identification / properties / public_ip / required
      Removed value: -[
      -  "ip",
      -  "country"
      -]
    • changedOutput schema / properties / identification / properties / public_ip / type
      Previous value: -"object"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / identification / properties / related_counts
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "cookies": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "devices": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "public_ips": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "sessions": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "users": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "visitors": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "cookies",
      +        "sessions"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • removedOutput schema / properties / identification / properties / request_id
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / identification / properties / risk
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "as_of": {
      +          "type": "string"
      +        },
      +        "band": {
      +          "enum": [
      +            "trusted",
      +            "suspicious",
      +            "dangerous"
      +          ],
      +          "type": "string"
      +        },
      +        "score": {
      +          "maximum": 100,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "state": {
      +          "const": "ok",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "state",
      +        "band",
      +        "as_of"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "as_of": {
      +          "type": "null"
      +        },
      +        "band": {
      +          "type": "null"
      +        },
      +        "state": {
      +          "const": "unavailable",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "state",
      +        "band",
      +        "as_of"
      +      ],
      +      "type": "object"
      +    }
      +  ]
      +}
    • removedOutput schema / properties / identification / properties / risk_band
      Removed value: -{
      -  "enum": [
      -    "trusted",
      -    "suspicious",
      -    "dangerous",
      -    "rate_limited"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / identification / properties / risk_score
      Removed value: -{
      -  "maximum": 9007199254740991,
      -  "minimum": -9007199254740991,
      -  "type": "integer"
      -}
    • changedOutput schema / properties / identification / properties / session_id / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / identification / properties / signals / additionalProperties
      Added value: +false
    • removedOutput schema / properties / identification / properties / signals / items
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "description": {
      -      "anyOf": [
      -        {
      -          "description": "Always null: internal score-detail text is not returned",
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    },
      -    "name": {
      -      "type": "string"
      -    },
      -    "weight": {
      -      "maximum": 9007199254740991,
      -      "minimum": -9007199254740991,
      -      "type": "integer"
      -    }
      -  },
      -  "required": [
      -    "name",
      -    "weight",
      -    "description"
      -  ],
      -  "type": "object"
      -}
    • addedOutput schema / properties / identification / properties / signals / properties
      Added value: +{
      +  "items": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "maxItems": 100,
      +    "type": "array"
      +  },
      +  "state": {
      +    "enum": [
      +      "ok",
      +      "unavailable"
      +    ],
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / properties / identification / properties / signals / required
      Added value: +[
      +  "state",
      +  "items"
      +]
    • changedOutput schema / properties / identification / properties / signals / type
      Previous value: -"array"New value: +"object"
    • removedOutput schema / properties / identification / properties / source
      Removed value: -{
      -  "enum": [
      -    "webhook",
      -    "history"
      -  ],
      -  "type": "string"
      -}
    • addedOutput schema / properties / identification / properties / traffic
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "channel": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "click_id_type": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "entry_url": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "referrer_domain": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "utm_campaign": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "utm_content": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "utm_medium": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "utm_source": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "utm_term": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        }
      +      },
      +      "required": [
      +        "channel",
      +        "referrer_domain",
      +        "entry_url",
      +        "click_id_type",
      +        "utm_source",
      +        "utm_medium",
      +        "utm_campaign",
      +        "utm_content",
      +        "utm_term"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • removedOutput schema / properties / identification / properties / traffic_source
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "channel": {
      -      "type": "string"
      -    },
      -    "click_id_type": {
      -      "type": "string"
      -    },
      -    "landing_url": {
      -      "type": "string"
      -    },
      -    "referrer_domain": {
      -      "type": "string"
      -    },
      -    "utm_campaign": {
      -      "type": "string"
      -    },
      -    "utm_content": {
      -      "type": "string"
      -    },
      -    "utm_medium": {
      -      "type": "string"
      -    },
      -    "utm_source": {
      -      "type": "string"
      -    },
      -    "utm_term": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "channel",
      -    "referrer_domain",
      -    "landing_url",
      -    "click_id_type",
      -    "utm_source",
      -    "utm_medium",
      -    "utm_campaign",
      -    "utm_content",
      -    "utm_term"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / identification / properties / truncated_fields
      Removed value: -{
      -  "description": "Only present when this server shortened values: paths of the fields cut to 1000 characters as serialized in JSON (100 for risk signal names), and \"signals\" when only the first 50 risk signals are listed. A shortened value is a prefix of the stored one: do not search by it.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / identification / properties / type
      Added value: +{
      +  "enum": [
      +    "identification",
      +    "user",
      +    "visitor",
      +    "device",
      +    "ip"
      +  ],
      +  "type": "string"
      +}
    • removedOutput schema / properties / identification / properties / user_hid / anyOf
      Removed value: -[
      -  {
      -    "description": "User HID as sent by the browser: \"anonymous\" for anonymous checks, null when it was empty",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / identification / properties / user_hid / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / identification / properties / visitor_id / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / identification / required
      Previous value: -[
      -  "request_id",
      -  "visitor_id",
      -  "device_id",
      -  "session_id",
      -  "cookie_id",
      -  "user_hid",
      -  "domain",
      -  "public_ip",
      -  "local_ip",
      -  "connection_type",
      -  "os",
      -  "browser",
      -  "device_type",
      -  "traffic_source",
      -  "risk_score",
      -  "risk_band",
      -  "signals",
      -  "detection_flags",
      -  "observed_at",
      -  "source"
      -]New value: +[
      +  "type",
      +  "id",
      +  "domain_id",
      +  "domain",
      +  "risk",
      +  "signals"
      +]
  2. First observedv1.0.0

TDQS

A3.7/5.0
Behavior4/5

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

The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds useful behavioral context beyond annotations by explaining that wait polls missing results for at most 10 seconds and that unavailable risk remains unavailable. It does not cover auth or rate limits, but it meaningfully supplements the annotation profile.

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 description is short and front-loads the core purpose. Its second sentence is compact but somewhat cryptic, especially "unavailable risk remains unavailable," which could be clearer without adding much length.

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?

The description covers the essential read-by-ID behavior and the wait polling semantics, and an output schema exists so return values need not be described. However, with low schema description coverage across six parameters, it does not fully explain the optional date filters or response format, leaving clear gaps for an agent invoking the tool.

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

Parameters2/5

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

Schema description coverage is only 17%, so the description must compensate for undocumented parameters. It mentions identification_id, domain, and wait semantics, but leaves to, from, and response_format unexplained, despite those being present in the schema.

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?

The description states a specific verb and resource: "Read one identification card by identification_id in a public domain UUID." It clearly identifies the key lookup inputs and is distinguishable from the listed sibling tools, which cover history, risk scores, webhook signatures, and time.

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 by "Read one identification card by identification_id," so an agent can infer this is for fetching a single record rather than listing or searching. However, there is no explicit guidance on when to use this versus alternatives or when not to use it.

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