Skip to main content
Glama
Jambozx

OnlineCyberTools MCP (280+ filterable tools)

by Jambozx

osint_isbn_validator

Read-only

Validate ISBN-10 and ISBN-13 numbers by recomputing check digits, converting between formats, and checking prefix groups. Accepts batch input with per-ISBN results and aggregate statistics.

Instructions

ISBN Validator (ISBN-10 / ISBN-13). Validate one or more book ISBNs by recomputing the check digit for ISBN-10 (mod-11, X allowed) and ISBN-13 (EAN-13 mod-10, 978/979 prefix), and report format, the registration group/language, ISBN-10<->13 conversion, and optional step-by-step check-digit math. Accepts a batch and returns per-ISBN results plus aggregate statistics. Use this for book ISBNs; use osint_ean_upc_validator for general EAN/UPC retail barcodes, osint_barcode_scanner to decode a barcode from an image, and osint_barcode_generator to render one. Pure local arithmetic: read-only, non-destructive, no remote book-metadata lookup or network call, offline-capable, rate-limited (CAPTCHA may be required). Each result embeds the validation timestamp, so responses are not byte-identical across calls. Returns each ISBN's validity, type, analysis, conversion, calculation, and warnings.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
isbnsYesISBN strings to validate. Hyphens and spaces are stripped; each must clean to 10 or 13 digits. Non-string entries are ignored.
optionsNoOptional flags toggling extra output (camelCase or snake_case keys accepted).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
successNoWhether the request was processed.
resultsNoOne entry per validatable input ISBN.
statisticsNoBatch totals across all results.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.5.1
    • changedInput schema / additionalProperties
      Previous value: -trueNew value: +false
    • addedInput schema / properties
      Added value: +{
      +  "isbns": {
      +    "description": "ISBN strings to validate. Hyphens and spaces are stripped; each must clean to 10 or 13 digits. Non-string entries are ignored.",
      +    "examples": [
      +      [
      +        "9780306406157",
      +        "0306406152"
      +      ]
      +    ],
      +    "items": {
      +      "type": "string"
      +    },
      +    "minItems": 1,
      +    "type": "array"
      +  },
      +  "options": {
      +    "additionalProperties": false,
      +    "description": "Optional flags toggling extra output (camelCase or snake_case keys accepted).",
      +    "properties": {
      +      "addHyphenation": {
      +        "default": false,
      +        "description": "Add a hyphenated ISBN-13 to the conversion block.",
      +        "type": "boolean"
      +      },
      +      "includeFormatConversion": {
      +        "default": true,
      +        "description": "Include ISBN-10<->ISBN-13 conversion and barcode in each result.",
      +        "type": "boolean"
      +      },
      +      "showCheckDigitCalculation": {
      +        "default": false,
      +        "description": "Include the weighted-sum formula, expected, and actual check digit.",
      +        "type": "boolean"
      +      }
      +    },
      +    "type": "object"
      +  }
      +}
    • addedInput schema / required
      Added value: +[
      +  "isbns"
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "results": {
      +      "description": "One entry per validatable input ISBN.",
      +      "items": {
      +        "properties": {
      +          "analysis": {
      +            "description": "Present when valid; check digit, EAN prefix, and registration group.",
      +            "properties": {
      +              "check_digit": {
      +                "description": "The check digit character.",
      +                "type": "string"
      +              },
      +              "check_digit_valid": {
      +                "description": "Whether the check digit recomputes correctly.",
      +                "type": "boolean"
      +              },
      +              "clean_isbn": {
      +                "description": "ISBN with separators removed.",
      +                "type": "string"
      +              },
      +              "ean_prefix": {
      +                "description": "ISBN-13 only: 978 or 979.",
      +                "type": "string"
      +              },
      +              "group_identifier": {
      +                "description": "Registration group digits.",
      +                "type": "string"
      +              },
      +              "group_name": {
      +                "description": "Language/region for the group.",
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "calculation": {
      +            "additionalProperties": {
      +              "type": "string"
      +            },
      +            "description": "Check-digit steps when showCheckDigitCalculation is set.",
      +            "type": "object"
      +          },
      +          "conversion": {
      +            "additionalProperties": {
      +              "type": "string"
      +            },
      +            "description": "ISBN-10/ISBN-13/barcode forms (and hyphenated if requested).",
      +            "type": "object"
      +          },
      +          "input": {
      +            "description": "The original ISBN string as received.",
      +            "type": "string"
      +          },
      +          "timestamp": {
      +            "description": "Unix epoch seconds when validated.",
      +            "type": "integer"
      +          },
      +          "type": {
      +            "description": "Detected type: isbn-10, isbn-13, or isbn-unknown.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "valid": {
      +            "description": "Whether the check digit and format are valid.",
      +            "type": "boolean"
      +          },
      +          "warnings": {
      +            "description": "Format errors or deprecation notices.",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "statistics": {
      +      "description": "Batch totals across all results.",
      +      "properties": {
      +        "invalid": {
      +          "description": "Count of invalid ISBNs.",
      +          "type": "integer"
      +        },
      +        "success_rate": {
      +          "description": "Percent valid (0-100, two decimals).",
      +          "type": "number"
      +        },
      +        "total": {
      +          "description": "Number of results.",
      +          "type": "integer"
      +        },
      +        "valid": {
      +          "description": "Count of valid ISBNs.",
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "success": {
      +      "description": "Whether the request was processed.",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Goes beyond readOnlyHint=true and destructiveHint=false annotations by detailing pure local arithmetic, no network call, offline-capable, rate-limited, CAPTCHA possibility, and timestamp embedding for non-identical responses. No contradiction with annotations.

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?

Well-structured, front-loaded with core function, and each sentence adds value. Slightly long but not wasteful; could be trimmed slightly for conciseness.

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

Completeness5/5

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

Covers purpose, usage guidelines, behavioral traits, output description (per-ISBN results with aggregate statistics), and optional features. Given complexity and existing schema/annotations, description is fully complete for agent invocation.

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 coverage is 100%, so baseline is 3. Description adds context (e.g., step-by-step math for showCheckDigitCalculation) but mostly reiterates schema info. Adequate but not exceptional.

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 clearly states it validates ISBN-10 and ISBN-13 by recomputing check digits, reporting format, registration group/language, and conversion. It explicitly distinguishes from sibling tools (osint_ean_upc_validator, osint_barcode_scanner, osint_barcode_generator) with clear when-to-use guidance.

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

Usage Guidelines5/5

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

Explicitly states 'Use this for book ISBNs' and provides alternatives for general EAN/UPC barcodes. Also clarifies batch acceptance, offline capability, and rate-limiting, giving clear context for appropriate use.

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

Deploy Server

Other Tools