addrbookFor publishers
← The evidence ledger

Evidence row 306367

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint ef15d20f-ac6d-4111-a97a-c183e461c542
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
ebad693afe725e9589f3317cadc6276a4899cde8a5f0ebbbc80e13dabf797e24
Leaf
0xe6357c891edb240d8885d0ef946c1c0914b792ea66334c31b3a7a6f6c261b255

What was observed

{
  "count": 193,
  "tools": [
    {
      "description": "Base64-decode to UTF-8.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "base64_decode"
    },
    {
      "description": "Base64-encode UTF-8.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "base64_encode"
    },
    {
      "description": "Base64url-decode to UTF-8.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "base64url_decode"
    },
    {
      "description": "Base64url-encode UTF-8 (no padding, URL-safe).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "base64url_encode"
    },
    {
      "description": "Bcrypt-hash a password for storage.",
      "inputSchema": {
        "properties": {
          "password": {
            "type": "string"
          },
          "rounds": {
            "default": 12,
            "maximum": 15,
            "minimum": 4,
            "type": "integer"
          }
        },
        "required": [
          "password"
        ],
        "type": "object"
      },
      "name": "bcrypt_hash"
    },
    {
      "description": "Verify password against bcrypt hash.",
      "inputSchema": {
        "properties": {
          "hash": {
            "type": "string"
          },
          "password": {
            "type": "string"
          }
        },
        "required": [
          "password",
          "hash"
        ],
        "type": "object"
      },
      "name": "bcrypt_verify"
    },
    {
      "description": "Parse Keep-a-Changelog style markdown into version sections.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "changelog_parse"
    },
    {
      "description": "Calculate IPv4/IPv6 network info from CIDR (hosts, broadcast, private).",
      "inputSchema": {
        "properties": {
          "cidr": {
            "description": "e.g. 192.168.1.0/24",
            "type": "string"
          }
        },
        "required": [
          "cidr"
        ],
        "type": "object"
      },
      "name": "cidr_calc"
    },
    {
      "description": "Check if IP address falls within a CIDR range.",
      "inputSchema": {
        "properties": {
          "cidr": {
            "type": "string"
          },
          "ip": {
            "type": "string"
          }
        },
        "required": [
          "cidr",
          "ip"
        ],
        "type": "object"
      },
      "name": "cidr_contains"
    },
    {
      "description": "Extract fenced code blocks from markdown (language + code).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "code_fence_extract"
    },
    {
      "description": "WCAG contrast ratio between two hex colors (AA/AAA). When: WCAG contrast ratio for UI color pairs.",
      "inputSchema": {
        "properties": {
          "bg": {
            "type": "string"
          },
          "fg": {
            "type": "string"
          }
        },
        "required": [
          "fg",
          "bg"
        ],
        "type": "object"
      },
      "name": "color_contrast"
    },
    {
      "description": "Convert color between hex, rgb(), and hsl().",
      "inputSchema": {
        "properties": {
          "color": {
            "description": "hex, rgb(), or hsl()",
            "type": "string"
          },
          "to_format": {
            "default": "all",
            "enum": [
              "all",
              "hex",
              "rgb",
              "hsl"
            ],
            "type": "string"
          }
        },
        "required": [
          "color"
        ],
        "type": "object"
      },
      "name": "color_convert"
    },
    {
      "description": "Validate docker-compose YAML and flag privileged/host-network/secret env issues.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "compose_validate"
    },
    {
      "description": "Parse Content-Type header into mime/charset/params.",
      "inputSchema": {
        "properties": {
          "header": {
            "type": "string"
          }
        },
        "required": [
          "header"
        ],
        "type": "object"
      },
      "name": "content_type_parse"
    },
    {
      "description": "Lint Conventional Commits message (feat/fix/chore…).",
      "inputSchema": {
        "properties": {
          "message": {
            "type": "string"
          }
        },
        "required": [
          "message"
        ],
        "type": "object"
      },
      "name": "conventional_commit_lint"
    },
    {
      "description": "Parse Cookie request header into name/value map. When: Parse Cookie request headers.",
      "inputSchema": {
        "properties": {
          "header": {
            "type": "string"
          }
        },
        "required": [
          "header"
        ],
        "type": "object"
      },
      "name": "cookie_header_parse"
    },
    {
      "description": "Check CORS Allow-Origin vs credentials for unsafe combinations.",
      "inputSchema": {
        "properties": {
          "allow_credentials": {
            "default": false,
            "type": "boolean"
          },
          "allow_origin": {
            "type": "string"
          },
          "origin": {
            "type": "string"
          }
        },
        "required": [
          "allow_origin"
        ],
        "type": "object"
      },
      "name": "cors_check"
    },
    {
      "description": "Human-readable natural language description of cron expression (EN + ZH).",
      "inputSchema": {
        "properties": {
          "expr": {
            "type": "string"
          }
        },
        "required": [
          "expr"
        ],
        "type": "object"
      },
      "name": "cron_describe"
    },
    {
      "description": "Check if a cron expression matches a specific datetime (ISO-8601).",
      "inputSchema": {
        "properties": {
          "at_time": {
            "description": "ISO-8601 datetime",
            "type": "string"
          },
          "expr": {
            "type": "string"
          },
          "timezone": {
            "default": "UTC",
            "type": "string"
          }
        },
        "required": [
          "expr",
          "at_time"
        ],
        "type": "object"
      },
      "name": "cron_matches"
    },
    {
      "description": "Preview next N execution times for a 5-field cron expression.",
      "inputSchema": {
        "properties": {
          "count": {
            "default": 5,
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "expr": {
            "type": "string"
          },
          "from_time": {
            "description": "Optional unix or ISO start time",
            "type": "string"
          },
          "timezone": {
            "default": "UTC",
            "type": "string"
          }
        },
        "required": [
          "expr"
        ],
        "type": "object"
      },
      "name": "cron_next_runs"
    },
    {
      "description": "Parse 5-field cron into named fields (minute hour dom month dow).",
      "inputSchema": {
        "properties": {
          "expr": {
            "type": "string"
          }
        },
        "required": [
          "expr"
        ],
        "type": "object"
      },
      "name": "cron_parse"
    },
    {
      "description": "Validate cron field syntax and value ranges (minute 0-59, hour 0-23, etc.).",
      "inputSchema": {
        "properties": {
          "expr": {
            "type": "string"
          }
        },
        "required": [
          "expr"
        ],
        "type": "object"
      },
      "name": "cron_semantic_validate"
    },
    {
      "description": "Check cron string has exactly five fields.",
      "inputSchema": {
        "properties": {
          "expr": {
            "type": "string"
          }
        },
        "required": [
          "expr"
        ],
        "type": "object"
      },
      "name": "cron_validate"
    },
    {
      "description": "Batch semantic validate of 5-field cron expressions.",
      "inputSchema": {
        "properties": {
          "expressions": {
            "items": {
              "type": "string"
            },
            "maxItems": 30,
            "type": "array"
          }
        },
        "required": [
          "expressions"
        ],
        "type": "object"
      },
      "name": "cron_validate_batch"
    },
    {
      "description": "Parse Content-Security-Policy header and flag unsafe directives.",
      "inputSchema": {
        "properties": {
          "header": {
            "type": "string"
          }
        },
        "required": [
          "header"
        ],
        "type": "object"
      },
      "name": "csp_parse"
    },
    {
      "description": "Convert CSV text to JSON array of row objects. When: Convert CSV rows → JSON array of objects.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "csv_to_json"
    },
    {
      "description": "Validate CSV structure — consistent column counts / header. When: Check CSV column consistency before import.",
      "inputSchema": {
        "properties": {
          "delimiter": {
            "default": ",",
            "type": "string"
          },
          "has_header": {
            "default": true,
            "type": "boolean"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "csv_validate"
    },
    {
      "description": "Convert amount between currencies using latest ECB rates.",
      "inputSchema": {
        "properties": {
          "amount": {
            "type": "number"
          },
          "from_currency": {
            "type": "string"
          },
          "to_currency": {
            "type": "string"
          }
        },
        "required": [
          "amount",
          "from_currency",
          "to_currency"
        ],
        "type": "object"
      },
      "name": "currency_convert"
    },
    {
      "description": "List supported fiat currencies (Frankfurter/ECB, no API key).",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "currency_list"
    },
    {
      "description": "Latest exchange rates (Frankfurter ECB data, no API key).",
      "inputSchema": {
        "properties": {
          "base": {
            "default": "USD",
            "type": "string"
          },
          "symbols": {
            "description": "Optional target currencies e.g. CNY, EUR",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "currency_rates"
    },
    {
      "description": "Parse unix timestamp or ISO-8601 into UTC ISO + unix.",
      "inputSchema": {
        "properties": {
          "value": {
            "type": "string"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "name": "datetime_parse"
    },
    {
      "description": "Extract name@version from requirements/lockfile/go.mod/Cargo snippets. When: Extract name@version from lock/requirements snippets (best-effort).",
      "inputSchema": {
        "properties": {
          "ecosystem": {
            "default": "auto",
            "enum": [
              "auto",
              "pip",
              "npm",
              "go",
              "cargo"
            ],
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "dependency_versions_extract"
    },
    {
      "description": "DNS lookup for domain (A, AAAA, MX, TXT, NS, CNAME, SOA).",
      "inputSchema": {
        "properties": {
          "domain": {
            "type": "string"
          },
          "record_type": {
            "default": "A",
            "enum": [
              "A",
              "AAAA",
              "MX",
              "TXT",
              "NS",
              "CNAME",
              "SOA",
              "ANY"
            ],
            "type": "string"
          }
        },
        "required": [
          "domain"
        ],
        "type": "object"
      },
      "name": "dns_lookup"
    },
    {
      "description": "Lint Dockerfile for common security/style issues (root user, curl|sh, secrets).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "dockerfile_lint"
    },
    {
      "description": "Parse domain into labels, TLD, registrable domain, subdomain. When: Split domain into subdomain/registrable/TLD (best-effort eTLD).",
      "inputSchema": {
        "properties": {
          "domain": {
            "type": "string"
          }
        },
        "required": [
          "domain"
        ],
        "type": "object"
      },
      "name": "domain_parse"
    },
    {
      "description": "Parse duration (ISO-8601 PnDTnHnMnS or human 1h30m / 90s) to seconds. When: Parse ISO-8601 / human durations to seconds.",
      "inputSchema": {
        "properties": {
          "value": {
            "type": "string"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "name": "duration_parse"
    },
    {
      "description": "Validate .editorconfig syntax and common keys.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "editorconfig_validate"
    },
    {
      "description": "Validate email address format. When: Syntax-check a single email address.",
      "inputSchema": {
        "properties": {
          "email": {
            "type": "string"
          }
        },
        "required": [
          "email"
        ],
        "type": "object"
      },
      "name": "email_validate"
    },
    {
      "description": "Diff two .env files — only_in_a / only_in_b / changed values. When: Diff two .env files for missing/changed keys.",
      "inputSchema": {
        "properties": {
          "a": {
            "type": "string"
          },
          "b": {
            "type": "string"
          }
        },
        "required": [
          "a",
          "b"
        ],
        "type": "object"
      },
      "name": "env_diff"
    },
    {
      "description": "Parse .env / dotenv text into key-value variables.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "env_parse"
    },
    {
      "description": "Check .env text contains required keys (and non-empty values).",
      "inputSchema": {
        "properties": {
          "required": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text",
          "required"
        ],
        "type": "object"
      },
      "name": "env_required_check"
    },
    {
      "description": "Extract email addresses from text. When: Pull email addresses from free text / logs.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "extract_emails"
    },
    {
      "description": "Extract HTTP/HTTPS URLs from arbitrary text.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "extract_urls"
    },
    {
      "description": "Parse YAML frontmatter from markdown (--- ... ---). When: Split YAML frontmatter from markdown body.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "frontmatter_parse"
    },
    {
      "description": "Parse git remote URL (ssh/https) into host/owner/repo. When: Parse git@ / https remotes into owner/repo.",
      "inputSchema": {
        "properties": {
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "name": "git_url_parse"
    },
    {
      "description": "Lint GitHub Actions workflow YAML (triggers, unpinned actions, curl|bash).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "github_actions_lint"
    },
    {
      "description": "Review .gitignore for common missing ignores (.env, node_modules, keys).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "gitignore_check"
    },
    {
      "description": "Match paths against .gitignore rules (ignore / negate). When: Test paths against .gitignore rules (best-effort).",
      "inputSchema": {
        "properties": {
          "gitignore": {
            "type": "string"
          },
          "paths": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "paths",
          "gitignore"
        ],
        "type": "object"
      },
      "name": "gitignore_match"
    },
    {
      "description": "Match paths against glob patterns (gitignore-style fnmatch).",
      "inputSchema": {
        "properties": {
          "paths": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "patterns": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "paths",
          "patterns"
        ],
        "type": "object"
      },
      "name": "glob_match_batch"
    },
    {
      "description": "List GraphQL query/mutation/subscription names and type defs. When: List GraphQL ops/types from a document (best-effort).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "graphql_operations_list"
    },
    {
      "description": "Diff two GraphQL schemas for removed types/fields (breaking changes).",
      "inputSchema": {
        "properties": {
          "new": {
            "type": "string"
          },
          "old": {
            "type": "string"
          }
        },
        "required": [
          "old",
          "new"
        ],
        "type": "object"
      },
      "name": "graphql_schema_diff"
    },
    {
      "description": "Validate GraphQL query or schema SDL syntax (parse only).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "graphql_validate"
    },
    {
      "description": "Compare two hash digests (case-insensitive).",
      "inputSchema": {
        "properties": {
          "a": {
            "type": "string"
          },
          "b": {
            "type": "string"
          }
        },
        "required": [
          "a",
          "b"
        ],
        "type": "object"
      },
      "name": "hash_compare"
    },
    {
      "description": "MD5 hex digest of UTF-8 text. When: MD5 digest (non-crypto integrity / legacy checksums).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "hash_md5"
    },
    {
      "description": "SHA256 hex digest.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "hash_sha256"
    },
    {
      "description": "SHA512 hex digest.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "hash_sha512"
    },
    {
      "description": "Hex string to UTF-8 text.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "hex_decode"
    },
    {
      "description": "UTF-8 text to hex string.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "hex_encode"
    },
    {
      "description": "HMAC sign message (sha1/sha256/sha512); hex or base64 output.",
      "inputSchema": {
        "properties": {
          "algorithm": {
            "default": "sha256",
            "type": "string"
          },
          "encoding": {
            "default": "hex",
            "enum": [
              "hex",
              "base64"
            ],
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "secret": {
            "type": "string"
          }
        },
        "required": [
          "message",
          "secret"
        ],
        "type": "object"
      },
      "name": "hmac_sign"
    },
    {
      "description": "Verify HMAC signature (hex or base64).",
      "inputSchema": {
        "properties": {
          "algorithm": {
            "default": "sha256",
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "secret": {
            "type": "string"
          },
          "signature": {
            "type": "string"
          }
        },
        "required": [
          "message",
          "secret",
          "signature"
        ],
        "type": "object"
      },
      "name": "hmac_verify"
    },
    {
      "description": "Parse /etc/hosts style file into IP → hostnames entries. When: Parse /etc/hosts style IP→hostname maps.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "hosts_file_parse"
    },
    {
      "description": "Unescape HTML entities.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "html_decode"
    },
    {
      "description": "Escape HTML entities.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "html_encode"
    },
    {
      "description": "Scan HTML for XSS-prone patterns (javascript: URLs, inline handlers, eval). Note: best-effort / heuristic — not a full language parser.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "html_security_scan"
    },
    {
      "description": "Convert HTML to Markdown text. When: Convert HTML → markdown for docs the agent edits.",
      "inputSchema": {
        "properties": {
          "html": {
            "type": "string"
          }
        },
        "required": [
          "html"
        ],
        "type": "object"
      },
      "name": "html_to_markdown"
    },
    {
      "description": "Fetch HTTP response headers (HEAD/GET) for URL.",
      "inputSchema": {
        "properties": {
          "follow_redirects": {
            "default": true,
            "type": "boolean"
          },
          "method": {
            "default": "HEAD",
            "enum": [
              "HEAD",
              "GET"
            ],
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "name": "http_headers_fetch"
    },
    {
      "description": "Parse raw HTTP request/response header block into map. When: Parse raw HTTP header blocks.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "http_headers_parse"
    },
    {
      "description": "Classify HTTP status codes into 2xx/3xx/4xx/5xx buckets.",
      "inputSchema": {
        "properties": {
          "codes": {
            "items": {
              "type": [
                "integer",
                "string"
              ]
            },
            "type": "array"
          }
        },
        "required": [
          "codes"
        ],
        "type": "object"
      },
      "name": "http_status_classify"
    },
    {
      "description": "Explain HTTP status code (e.g. 404, 429, 503).",
      "inputSchema": {
        "properties": {
          "code": {
            "type": "integer"
          }
        },
        "required": [
          "code"
        ],
        "type": "object"
      },
      "name": "http_status_lookup"
    },
    {
      "description": "Format bytes to human size, or parse '1.5 GB' to bytes. When: Format or parse human byte sizes (1.5 GB).",
      "inputSchema": {
        "properties": {
          "precision": {
            "default": 2,
            "type": "integer"
          },
          "text": {
            "type": "string"
          },
          "value": {
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "human_bytes"
    },
    {
      "description": "Validate identifier for python/javascript/typescript (keywords + syntax).",
      "inputSchema": {
        "properties": {
          "language": {
            "default": "python",
            "enum": [
              "python",
              "javascript",
              "typescript"
            ],
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "identifier_validate"
    },
    {
      "description": "List imports from python/js source and flag duplicates. Note: best-effort / heuristic — not a full language parser.",
      "inputSchema": {
        "properties": {
          "language": {
            "default": "python",
            "enum": [
              "python",
              "javascript"
            ],
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "import_list_analyze"
    },
    {
      "description": "Parse INI / simple key=value config into sections. When: Parse INI/section configs into structured maps.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "ini_parse"
    },
    {
      "description": "Geolocate public IP: country, city, lat/lon, timezone, ISP.",
      "inputSchema": {
        "properties": {
          "ip": {
            "type": "string"
          }
        },
        "required": [
          "ip"
        ],
        "type": "object"
      },
      "name": "ip_geolocation"
    },
    {
      "description": "Detect IPv4/IPv6 and classify private/loopback/global. When: Classify IPv4/IPv6 and private/global.",
      "inputSchema": {
        "properties": {
          "ip": {
            "type": "string"
          }
        },
        "required": [
          "ip"
        ],
        "type": "object"
      },
      "name": "ip_version_detect"
    },
    {
      "description": "Classify IP as private/loopback/link-local/global (SSRF helper).",
      "inputSchema": {
        "properties": {
          "ip": {
            "type": "string"
          }
        },
        "required": [
          "ip"
        ],
        "type": "object"
      },
      "name": "ipv4_private_check"
    },
    {
      "description": "Assert JSONPath expressions against JSON (exists/equals/type) — agent self-check.",
      "inputSchema": {
        "properties": {
          "assertions": {
            "items": {
              "properties": {
                "equals": {},
                "exists": {
                  "type": "boolean"
                },
                "path": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "path"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "data": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "assertions"
        ],
        "type": "object"
      },
      "name": "json_assert_paths"
    },
    {
      "description": "Deep-compare two JSON documents and list differing paths.",
      "inputSchema": {
        "properties": {
          "a": {
            "type": "string"
          },
          "b": {
            "type": "string"
          }
        },
        "required": [
          "a",
          "b"
        ],
        "type": "object"
      },
      "name": "json_equal"
    },
    {
      "description": "Flatten nested JSON to dot-key map. When: Flatten nested JSON keys before comparing or exporting.",
      "inputSchema": {
        "properties": {
          "separator": {
            "default": ".",
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "json_flatten"
    },
    {
      "description": "Pretty-print JSON with indent. When: Pretty-print JSON when the agent needs readable output.",
      "inputSchema": {
        "properties": {
          "indent": {
            "default": 2,
            "type": "integer"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "json_format"
    },
    {
      "description": "Deep-merge two JSON objects (second overlays first).",
      "inputSchema": {
        "properties": {
          "a": {
            "type": "string"
          },
          "b": {
            "type": "string"
          }
        },
        "required": [
          "a",
          "b"
        ],
        "type": "object"
      },
      "name": "json_merge"
    },
    {
      "description": "Apply RFC 7396 JSON Merge Patch (null deletes keys). When: RFC 7396 merge patch — use when patching JSON configs.",
      "inputSchema": {
        "properties": {
          "patch": {
            "type": "string"
          },
          "target": {
            "type": "string"
          }
        },
        "required": [
          "target",
          "patch"
        ],
        "type": "object"
      },
      "name": "json_merge_patch"
    },
    {
      "description": "Minify JSON (remove whitespace). When: Minify JSON for compact payloads or size checks.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "json_minify"
    },
    {
      "description": "Apply RFC 6902 JSON Patch ops (add/remove/replace/test/move/copy). When: Apply RFC 6902 ops (add/remove/replace/test/move/copy).",
      "inputSchema": {
        "properties": {
          "data": {
            "type": "string"
          },
          "patch": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "patch"
        ],
        "type": "object"
      },
      "name": "json_patch_apply"
    },
    {
      "description": "Get value by RFC 6901 JSON Pointer (e.g. /user/id). When: Read one field by RFC 6901 pointer without full walk in the agent.",
      "inputSchema": {
        "properties": {
          "data": {
            "type": "string"
          },
          "pointer": {
            "default": "",
            "type": "string"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "name": "json_pointer_get"
    },
    {
      "description": "Unified diff of two JSON documents (pretty-printed).",
      "inputSchema": {
        "properties": {
          "a": {
            "type": "string"
          },
          "b": {
            "type": "string"
          }
        },
        "required": [
          "a",
          "b"
        ],
        "type": "object"
      },
      "name": "json_pretty_diff"
    },
    {
      "description": "Infer a Draft-7 JSON Schema from a sample JSON document (agent favorite).",
      "inputSchema": {
        "properties": {
          "data": {
            "type": "string"
          },
          "title": {
            "default": "Inferred",
            "type": "string"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "name": "json_schema_infer"
    },
    {
      "description": "Validate JSON data against JSON Schema (Draft 7).",
      "inputSchema": {
        "properties": {
          "data": {
            "description": "JSON document text",
            "type": "string"
          },
          "max_errors": {
            "default": 20,
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "schema": {
            "description": "JSON Schema (Draft 7)",
            "type": "string"
          }
        },
        "required": [
          "data",
          "schema"
        ],
        "type": "object"
      },
      "name": "json_schema_validate"
    },
    {
      "description": "Batch JSON Schema (Draft 7) validation — up to 25 documents (agent favorite).",
      "inputSchema": {
        "properties": {
          "items": {
            "items": {
              "properties": {
                "data": {
                  "type": "string"
                },
                "id": {
                  "type": "string"
                },
                "schema": {
                  "type": "string"
                }
              },
              "required": [
                "data",
                "schema"
              ],
              "type": "object"
            },
            "maxItems": 25,
            "type": "array"
          },
          "max_errors": {
            "default": 10,
            "type": "integer"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "name": "json_schema_validate_batch"
    },
    {
      "description": "Recursively sort JSON object keys. When: Canonicalize JSON key order for stable diffs/hashes.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "json_sort_keys"
    },
    {
      "description": "Convert JSON array of objects to CSV text.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "json_to_csv"
    },
    {
      "description": "Convert JSON object text to TOML string.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "json_to_toml"
    },
    {
      "description": "Convert JSON text to YAML string. When: Convert JSON → YAML for config files agents write.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "json_to_yaml"
    },
    {
      "description": "Summarize JSON value types (counts per type in tree).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "json_type_summary"
    },
    {
      "description": "Validate JSON text; return parsed object or error.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "json_validate"
    },
    {
      "description": "Validate JSON Lines (NDJSON); optional per-line JSON Schema. When: Validate NDJSON / JSON Lines logs or datasets.",
      "inputSchema": {
        "properties": {
          "max_lines": {
            "default": 200,
            "type": "integer"
          },
          "schema": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "jsonl_validate"
    },
    {
      "description": "Query JSON with JSONPath expression; returns matching values.",
      "inputSchema": {
        "properties": {
          "path": {
            "description": "e.g. $.store.book[*].author",
            "type": "string"
          },
          "text": {
            "description": "JSON text",
            "type": "string"
          }
        },
        "required": [
          "text",
          "path"
        ],
        "type": "object"
      },
      "name": "jsonpath_query"
    },
    {
      "description": "Decode JWT header/claims (no verify) and flag alg=none, missing exp, privileged roles.",
      "inputSchema": {
        "properties": {
          "token": {
            "type": "string"
          }
        },
        "required": [
          "token"
        ],
        "type": "object"
      },
      "name": "jwt_claims_audit"
    },
    {
      "description": "Decode JWT payload and header (no signature verification).",
      "inputSchema": {
        "properties": {
          "token": {
            "type": "string"
          }
        },
        "required": [
          "token"
        ],
        "type": "object"
      },
      "name": "jwt_decode"
    },
    {
      "description": "Sign JWT payload (HS* with secret, RS* with private_key PEM).",
      "inputSchema": {
        "properties": {
          "algorithm": {
            "default": "HS256",
            "type": "string"
          },
          "header": {
            "description": "Optional extra JWT header fields",
            "type": "object"
          },
          "payload": {
            "description": "Claims object or JSON string",
            "type": "object"
          },
          "private_key": {
            "description": "PEM private key for RS algorithms",
            "type": "string"
          },
          "secret": {
            "type": "string"
          }
        },
        "required": [
          "payload"
        ],
        "type": "object"
      },
      "name": "jwt_sign"
    },
    {
      "description": "Verify JWT signature (HS* with secret, RS* with public_key PEM).",
      "inputSchema": {
        "properties": {
          "algorithms": {
            "description": "e.g. [\"HS256\"]",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "public_key": {
            "description": "PEM public key for RS algorithms",
            "type": "string"
          },
          "secret": {
            "description": "For HS256/384/512",
            "type": "string"
          },
          "token": {
            "type": "string"
          }
        },
        "required": [
          "token"
        ],
        "type": "object"
      },
      "name": "jwt_verify"
    },
    {
      "description": "Detect and normalize line endings to lf/crlf/cr. When: Detect/normalize CRLF vs LF.",
      "inputSchema": {
        "properties": {
          "style": {
            "default": "lf",
            "enum": [
              "lf",
              "crlf",
              "cr"
            ],
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "line_ending_normalize"
    },
    {
      "description": "Deduplicate list items preserving order.",
      "inputSchema": {
        "properties": {
          "items": {
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "name": "list_unique"
    },
    {
      "description": "Create disposable receive-only inbox @mail.toolapi.org (24h TTL). Returns address + secret token.",
      "inputSchema": {
        "properties": {
          "prefix": {
            "description": "Optional local-part prefix (alphanumeric)",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "mail_inbox_create"
    },
    {
      "description": "List messages in a temp inbox (requires token from mail_inbox_create).",
      "inputSchema": {
        "properties": {
          "address": {
            "type": "string"
          },
          "inbox_id": {
            "type": "string"
          },
          "token": {
            "type": "string"
          }
        },
        "required": [
          "token"
        ],
        "type": "object"
      },
      "name": "mail_inbox_list"
    },
    {
      "description": "Read full message body from temp inbox.",
      "inputSchema": {
        "properties": {
          "address": {
            "type": "string"
          },
          "inbox_id": {
            "type": "string"
          },
          "message_id": {
            "type": "string"
          },
          "token": {
            "type": "string"
          }
        },
        "required": [
          "message_id",
          "token"
        ],
        "type": "object"
      },
      "name": "mail_inbox_read"
    },
    {
      "description": "Extract markdown/bare links and flag javascript: URLs.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "markdown_link_extract"
    },
    {
      "description": "Convert Markdown text to HTML. When: Render markdown → HTML for previews or emails.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "markdown_to_html"
    },
    {
      "description": "Build a table of contents from markdown headings. When: Build heading TOC from markdown docs.",
      "inputSchema": {
        "properties": {
          "max_level": {
            "default": 3,
            "maximum": 6,
            "minimum": 1,
            "type": "integer"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "markdown_toc"
    },
    {
      "description": "Lookup MIME type by file extension/path, or extensions by MIME. When: Map file extension ↔ MIME type.",
      "inputSchema": {
        "properties": {
          "mime": {
            "type": "string"
          },
          "path_or_ext": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "mime_lookup"
    },
    {
      "description": "Generate URL-friendly nanoid (like npm nanoid).",
      "inputSchema": {
        "properties": {
          "size": {
            "default": 21,
            "maximum": 64,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "nanoid_generate"
    },
    {
      "description": "Lint nginx config snippets (braces, SSLv3, server_tokens, HSTS hints).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "nginx_config_lint"
    },
    {
      "description": "Compare two OpenAPI specs and flag breaking vs non-breaking API changes.",
      "inputSchema": {
        "properties": {
          "new": {
            "description": "New OpenAPI JSON/YAML",
            "type": "string"
          },
          "old": {
            "description": "Previous OpenAPI JSON/YAML",
            "type": "string"
          }
        },
        "required": [
          "old",
          "new"
        ],
        "type": "object"
      },
      "name": "openapi_diff"
    },
    {
      "description": "List OpenAPI path operations (method, path, operationId, tags). When: List OpenAPI operations before validate/diff.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "openapi_operations_list"
    },
    {
      "description": "Validate OpenAPI 3.x document (JSON or YAML snippet).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "openapi_validate"
    },
    {
      "description": "Audit package.json or pyproject.toml — license, risky scripts, loose ranges; emit semver_checks for batch. Note: best-effort / heuristic — not a full language parser.",
      "inputSchema": {
        "properties": {
          "kind": {
            "default": "auto",
            "enum": [
              "auto",
              "npm",
              "pyproject"
            ],
            "type": "string"
          },
          "text": {
            "description": "Manifest file contents",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "package_manifest_audit"
    },
    {
      "description": "List scripts from package.json or pyproject.toml (poetry/PEP 621). When: List npm/poetry/PEP 621 scripts from manifests.",
      "inputSchema": {
        "properties": {
          "kind": {
            "default": "auto",
            "enum": [
              "auto",
              "npm",
              "pyproject"
            ],
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "package_scripts_list"
    },
    {
      "description": "Cryptographically secure random password.",
      "inputSchema": {
        "properties": {
          "length": {
            "default": 16,
            "maximum": 64,
            "minimum": 8,
            "type": "integer"
          },
          "symbols": {
            "default": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "name": "password_generate"
    },
    {
      "description": "Offline password strength heuristic (length/classes/common). When: Offline password strength heuristic (not a cracker).",
      "inputSchema": {
        "properties": {
          "password": {
            "type": "string"
          }
        },
        "required": [
          "password"
        ],
        "type": "object"
      },
      "name": "password_strength"
    },
    {
      "description": "Normalize filesystem path (resolve . and ..) for posix or windows. When: Resolve . and .. in filesystem paths.",
      "inputSchema": {
        "properties": {
          "path": {
            "type": "string"
          },
          "style": {
            "default": "posix",
            "enum": [
              "posix",
              "windows"
            ],
            "type": "string"
          }
        },
        "required": [
          "path"
        ],
        "type": "object"
      },
      "name": "path_normalize"
    },
    {
      "description": "Check filesystem path for traversal / absolute / sensitive system paths.",
      "inputSchema": {
        "properties": {
          "allow_absolute": {
            "default": false,
            "type": "boolean"
          },
          "path": {
            "type": "string"
          }
        },
        "required": [
          "path"
        ],
        "type": "object"
      },
      "name": "path_safety_check"
    },
    {
      "description": "List PEM blocks in text (label, DER size, SHA256 fingerprint).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "pem_decode"
    },
    {
      "description": "Pick one item from a list (optional seed for reproducibility).",
      "inputSchema": {
        "properties": {
          "items": {
            "type": "array"
          },
          "seed": {
            "description": "Optional RNG seed",
            "type": "integer"
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "name": "pick_choice"
    },
    {
      "description": "TCP port open/closed check with latency ms.",
      "inputSchema": {
        "properties": {
          "host": {
            "type": "string"
          },
          "port": {
            "maximum": 65535,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "host",
          "port"
        ],
        "type": "object"
      },
      "name": "port_check"
    },
    {
      "description": "Parse Java .properties key=value file. When: Parse Java .properties key=value configs (best-effort).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "properties_parse"
    },
    {
      "description": "Generate QR code as SVG (base64 data URI included).",
      "inputSchema": {
        "properties": {
          "border": {
            "default": 4,
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "qr_generate"
    },
    {
      "description": "Build URL query string from params object. When: Build query strings from param objects.",
      "inputSchema": {
        "properties": {
          "doseq": {
            "default": true,
            "type": "boolean"
          },
          "params": {
            "type": "object"
          }
        },
        "required": [
          "params"
        ],
        "type": "object"
      },
      "name": "query_string_build"
    },
    {
      "description": "Parse URL query string into key/value map (supports multi-values). When: Parse URL query strings into maps.",
      "inputSchema": {
        "properties": {
          "query": {
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "query_string_parse"
    },
    {
      "description": "Convert number between bases 2-36 (binary, octal, decimal, hex).",
      "inputSchema": {
        "properties": {
          "from_base": {
            "description": "2-36 or binary/octal/decimal/hex",
            "type": "string"
          },
          "to_base": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "value",
          "from_base",
          "to_base"
        ],
        "type": "object"
      },
      "name": "radix_convert"
    },
    {
      "description": "Random integer in inclusive range (optional seed).",
      "inputSchema": {
        "properties": {
          "max_val": {
            "type": "integer"
          },
          "min_val": {
            "type": "integer"
          },
          "seed": {
            "type": "integer"
          }
        },
        "required": [
          "min_val",
          "max_val"
        ],
        "type": "object"
      },
      "name": "random_int"
    },
    {
      "description": "Random string (alphanumeric, hex, base64 charset or custom).",
      "inputSchema": {
        "properties": {
          "charset": {
            "default": "alphanumeric",
            "type": "string"
          },
          "length": {
            "default": 16,
            "type": "integer"
          },
          "seed": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "random_string"
    },
    {
      "description": "Replace regex matches in text (supports backreferences in replacement).",
      "inputSchema": {
        "properties": {
          "count": {
            "default": 0,
            "description": "Max replacements when global",
            "type": "integer"
          },
          "flags": {
            "description": "i, m, s",
            "type": "string"
          },
          "global_replace": {
            "default": true,
            "type": "boolean"
          },
          "pattern": {
            "type": "string"
          },
          "replacement": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "pattern",
          "replacement",
          "text"
        ],
        "type": "object"
      },
      "name": "regex_replace"
    },
    {
      "description": "Test regex pattern; returns match, groups, span.",
      "inputSchema": {
        "properties": {
          "flags": {
            "description": "i, m, s",
            "type": "string"
          },
          "pattern": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "pattern",
          "text"
        ],
        "type": "object"
      },
      "name": "regex_test"
    },
    {
      "description": "Remote desktop tools comparison JSON for AI citation.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "remote_matrix"
    },
    {
      "description": "Audit Python requirements.txt for unpinned/VCS/deprecated packages.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "requirements_audit"
    },
    {
      "description": "Reverse DNS (PTR) lookup for IP address.",
      "inputSchema": {
        "properties": {
          "ip": {
            "type": "string"
          }
        },
        "required": [
          "ip"
        ],
        "type": "object"
      },
      "name": "reverse_dns"
    },
    {
      "description": "Validate robots.txt syntax and User-agent rules.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "robots_txt_validate"
    },
    {
      "description": "Scan text for hardcoded secrets (API keys, tokens, private keys). Returns redacted findings.",
      "inputSchema": {
        "properties": {
          "min_entropy": {
            "default": 3.5,
            "description": "Entropy threshold for heuristic strings",
            "type": "number"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "secrets_scan"
    },
    {
      "description": "Compare two semver strings (less / equal / greater).",
      "inputSchema": {
        "properties": {
          "a": {
            "type": "string"
          },
          "b": {
            "type": "string"
          }
        },
        "required": [
          "a",
          "b"
        ],
        "type": "object"
      },
      "name": "semver_compare"
    },
    {
      "description": "Bump a semver version by major/minor/patch. When: Bump major/minor/patch when cutting a release.",
      "inputSchema": {
        "properties": {
          "release": {
            "default": "patch",
            "enum": [
              "major",
              "minor",
              "patch"
            ],
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "version"
        ],
        "type": "object"
      },
      "name": "semver_inc"
    },
    {
      "description": "Pick the highest version that satisfies a semver range (npm-style).",
      "inputSchema": {
        "properties": {
          "range": {
            "type": "string"
          },
          "versions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "versions",
          "range"
        ],
        "type": "object"
      },
      "name": "semver_max_satisfying"
    },
    {
      "description": "Parse semver string into major, minor, patch, prerelease.",
      "inputSchema": {
        "properties": {
          "version": {
            "type": "string"
          }
        },
        "required": [
          "version"
        ],
        "type": "object"
      },
      "name": "semver_parse"
    },
    {
      "description": "Heuristic check whether two semver ranges share any sample versions (conflict hint).",
      "inputSchema": {
        "properties": {
          "range_a": {
            "type": "string"
          },
          "range_b": {
            "type": "string"
          },
          "samples": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "range_a",
          "range_b"
        ],
        "type": "object"
      },
      "name": "semver_range_intersects"
    },
    {
      "description": "Check if version satisfies npm-style range (^ ~ >= <= > <).",
      "inputSchema": {
        "properties": {
          "range": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "version",
          "range"
        ],
        "type": "object"
      },
      "name": "semver_satisfies"
    },
    {
      "description": "Batch semver range checks for dependency audits (max 50).",
      "inputSchema": {
        "properties": {
          "checks": {
            "items": {
              "properties": {
                "id": {
                  "type": "string"
                },
                "range": {
                  "type": "string"
                },
                "version": {
                  "type": "string"
                }
              },
              "required": [
                "version",
                "range"
              ],
              "type": "object"
            },
            "maxItems": 50,
            "type": "array"
          }
        },
        "required": [
          "checks"
        ],
        "type": "object"
      },
      "name": "semver_satisfies_batch"
    },
    {
      "description": "Sort a list of semver versions ascending or descending. When: Sort semver lists before picking latest/oldest.",
      "inputSchema": {
        "properties": {
          "reverse": {
            "default": false,
            "type": "boolean"
          },
          "versions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "versions"
        ],
        "type": "object"
      },
      "name": "semver_sort"
    },
    {
      "description": "Parse #! shebang line — interpreter and args. When: Parse #! interpreter lines in scripts.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "shebang_parse"
    },
    {
      "description": "Shell-escape a string for posix/powershell/cmd (safe quoting). When: Safely quote strings for posix/powershell/cmd.",
      "inputSchema": {
        "properties": {
          "shell": {
            "default": "posix",
            "enum": [
              "posix",
              "powershell",
              "cmd"
            ],
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "shell_escape"
    },
    {
      "description": "Validate SPDX license expression against common license IDs.",
      "inputSchema": {
        "properties": {
          "expression": {
            "type": "string"
          }
        },
        "required": [
          "expression"
        ],
        "type": "object"
      },
      "name": "spdx_license_check"
    },
    {
      "description": "Scan SQL text for dangerous patterns (DROP/TRUNCATE/DELETE without WHERE). Note: best-effort / heuristic — not a full language parser.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "sql_danger_scan"
    },
    {
      "description": "Format SQL text (never executed; reindent + keyword case).",
      "inputSchema": {
        "properties": {
          "keyword_case": {
            "default": "upper",
            "enum": [
              "upper",
              "lower",
              "capitalize"
            ],
            "type": "string"
          },
          "reindent": {
            "default": true,
            "type": "boolean"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "sql_format"
    },
    {
      "description": "Extract table names from SQL (FROM/JOIN/INTO/UPDATE/TABLE). When: Heuristic extract of SQL table names (best-effort).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "sql_tables_extract"
    },
    {
      "description": "Fetch live TLS certificate from host:port (expiry, issuer, SAN).",
      "inputSchema": {
        "properties": {
          "host": {
            "type": "string"
          },
          "port": {
            "default": 443,
            "maximum": 65535,
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "host"
        ],
        "type": "object"
      },
      "name": "ssl_cert_fetch"
    },
    {
      "description": "Truncate text with ellipsis. When: Truncate long strings with ellipsis for UI/logs.",
      "inputSchema": {
        "properties": {
          "ellipsis": {
            "default": "...",
            "type": "string"
          },
          "max_length": {
            "default": 80,
            "type": "integer"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "string_truncate"
    },
    {
      "description": "Fill {{variable}} placeholders in a template string.",
      "inputSchema": {
        "properties": {
          "template": {
            "type": "string"
          },
          "variables": {
            "type": "object"
          }
        },
        "required": [
          "template",
          "variables"
        ],
        "type": "object"
      },
      "name": "template_fill"
    },
    {
      "description": "Convert case: lower, upper, title, snake, kebab, camel, pascal.",
      "inputSchema": {
        "properties": {
          "mode": {
            "enum": [
              "lower",
              "upper",
              "title",
              "snake",
              "kebab",
              "camel",
              "pascal"
            ],
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text",
          "mode"
        ],
        "type": "object"
      },
      "name": "text_case_convert"
    },
    {
      "description": "Unified line diff between two texts (like git diff).",
      "inputSchema": {
        "properties": {
          "left": {
            "type": "string"
          },
          "right": {
            "type": "string"
          }
        },
        "required": [
          "left",
          "right"
        ],
        "type": "object"
      },
      "name": "text_diff"
    },
    {
      "description": "Generate lorem ipsum placeholder paragraphs.",
      "inputSchema": {
        "properties": {
          "paragraphs": {
            "default": 1,
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "text_lorem"
    },
    {
      "description": "SequenceMatcher similarity ratio between two texts.",
      "inputSchema": {
        "properties": {
          "a": {
            "type": "string"
          },
          "b": {
            "type": "string"
          }
        },
        "required": [
          "a",
          "b"
        ],
        "type": "object"
      },
      "name": "text_similarity"
    },
    {
      "description": "URL-safe slug from title or heading. When: Make URL-safe slugs from titles/filenames.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "text_slugify"
    },
    {
      "description": "Count chars, words, lines, sentences; estimate reading time.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "text_stats"
    },
    {
      "description": "Wrap text to a maximum line width. When: Hard-wrap text to a column width.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          },
          "width": {
            "default": 80,
            "type": "integer"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "text_wrap"
    },
    {
      "description": "Convert unix seconds or ISO-8601 to both formats.",
      "inputSchema": {
        "properties": {
          "value": {
            "type": "string"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "name": "time_convert"
    },
    {
      "description": "Current UTC unix timestamp and ISO-8601.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "time_now"
    },
    {
      "description": "Convert datetime between IANA timezones (e.g. UTC to Asia/Shanghai).",
      "inputSchema": {
        "properties": {
          "from_timezone": {
            "default": "UTC",
            "type": "string"
          },
          "to_timezone": {
            "description": "e.g. Asia/Shanghai",
            "type": "string"
          },
          "value": {
            "description": "Unix seconds or ISO datetime",
            "type": "string"
          }
        },
        "required": [
          "value",
          "to_timezone"
        ],
        "type": "object"
      },
      "name": "timezone_convert"
    },
    {
      "description": "List common IANA timezone names for conversion.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "timezone_list"
    },
    {
      "description": "Extract TODO/FIXME/HACK/XXX comments with line numbers.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "todo_comment_extract"
    },
    {
      "description": "Validate TOML config against JSON Schema (Draft 7) in one step.",
      "inputSchema": {
        "properties": {
          "max_errors": {
            "default": 20,
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "schema": {
            "description": "JSON Schema (Draft 7)",
            "type": "string"
          },
          "toml": {
            "description": "TOML document text",
            "type": "string"
          }
        },
        "required": [
          "toml",
          "schema"
        ],
        "type": "object"
      },
      "name": "toml_schema_validate"
    },
    {
      "description": "Parse TOML and return JSON-compatible object.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "toml_to_json"
    },
    {
      "description": "Validate TOML text; return parsed object or error.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "toml_validate"
    },
    {
      "description": "Scan text for trailing whitespace and tab characters. Note: best-effort / heuristic — not a full language parser.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "trailing_whitespace_scan"
    },
    {
      "description": "Lint tsconfig.json structure (compilerOptions, strict hints).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "tsconfig_lint"
    },
    {
      "description": "Unicode normalization (NFC/NFD/NFKC/NFKD).",
      "inputSchema": {
        "properties": {
          "form": {
            "default": "NFC",
            "enum": [
              "NFC",
              "NFD",
              "NFKC",
              "NFKD"
            ],
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "unicode_normalize"
    },
    {
      "description": "Parse unified diff — files changed, lines added/removed.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "unified_diff_parse"
    },
    {
      "description": "Convert units: length, weight, temperature, data, speed, time.",
      "inputSchema": {
        "properties": {
          "category": {
            "description": "optional: length, weight, temperature, data, speed, time",
            "type": "string"
          },
          "from_unit": {
            "type": "string"
          },
          "to_unit": {
            "type": "string"
          },
          "value": {
            "type": "number"
          }
        },
        "required": [
          "value",
          "from_unit",
          "to_unit"
        ],
        "type": "object"
      },
      "name": "unit_convert"
    },
    {
      "description": "List supported units per category for unit_convert.",
      "inputSchema": {
        "properties": {},
        "type": "object"
      },
      "name": "unit_list"
    },
    {
      "description": "Decode percent-encoded string.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "url_decode"
    },
    {
      "description": "Percent-encode URL component.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "url_encode"
    },
    {
      "description": "Join base URL with relative path (urllib urljoin). When: Join base URL + relative path correctly.",
      "inputSchema": {
        "properties": {
          "base": {
            "type": "string"
          },
          "path": {
            "type": "string"
          }
        },
        "required": [
          "base",
          "path"
        ],
        "type": "object"
      },
      "name": "url_join"
    },
    {
      "description": "Normalize URL (lowercase host, sort query, drop fragment).",
      "inputSchema": {
        "properties": {
          "drop_fragment": {
            "default": true,
            "type": "boolean"
          },
          "sort_query": {
            "default": true,
            "type": "boolean"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "name": "url_normalize"
    },
    {
      "description": "Parse URL into scheme, host, path, query components.",
      "inputSchema": {
        "properties": {
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "name": "url_parse"
    },
    {
      "description": "Check URL for SSRF risk (localhost, private IP, metadata hosts).",
      "inputSchema": {
        "properties": {
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "name": "url_ssrf_check"
    },
    {
      "description": "Parse User-Agent string into browser, OS, and device hints.",
      "inputSchema": {
        "properties": {
          "user_agent": {
            "type": "string"
          }
        },
        "required": [
          "user_agent"
        ],
        "type": "object"
      },
      "name": "user_agent_parse"
    },
    {
      "description": "Generate UUID v1/v3/v4/v5 (batch supported). v3/v5 need name + namespace.",
      "inputSchema": {
        "properties": {
          "count": {
            "default": 1,
            "maximum": 20,
            "minimum": 1,
            "type": "integer"
          },
          "name": {
            "description": "Required for v3/v5",
            "type": "string"
          },
          "namespace": {
            "description": "UUID string for v3/v5 namespace",
            "type": "string"
          },
          "namespace_type": {
            "enum": [
              "dns",
              "url",
              "oid",
              "x500"
            ],
            "type": "string"
          },
          "version": {
            "default": 4,
            "enum": [
              1,
              3,
              4,
              5
            ],
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "uuid_generate"
    },
    {
      "description": "Parse UUID string: version, variant, hex bytes.",
      "inputSchema": {
        "properties": {
          "uuid": {
            "type": "string"
          }
        },
        "required": [
          "uuid"
        ],
        "type": "object"
      },
      "name": "uuid_parse"
    },
    {
      "description": "Domain registration lookup via RDAP (registrar, dates, nameservers).",
      "inputSchema": {
        "properties": {
          "domain": {
            "type": "string"
          }
        },
        "required": [
          "domain"
        ],
        "type": "object"
      },
      "name": "whois_lookup"
    },
    {
      "description": "Parse X.509 certificate PEM: subject, issuer, validity, SAN, fingerprint.",
      "inputSchema": {
        "properties": {
          "pem": {
            "type": "string"
          }
        },
        "required": [
          "pem"
        ],
        "type": "object"
      },
      "name": "x509_parse"
    },
    {
      "description": "Pretty-print XML with indentation. When: Pretty-print XML after the agent edits markup.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "xml_format"
    },
    {
      "description": "Convert XML document to JSON (attributes as @attr). When: Convert XML → JSON for agents that prefer JSON tools.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "xml_to_json"
    },
    {
      "description": "Validate XML markup (well-formed check).",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "xml_validate"
    },
    {
      "description": "Parse YAML then validate against JSON Schema (Draft 7).",
      "inputSchema": {
        "properties": {
          "max_errors": {
            "default": 20,
            "type": "integer"
          },
          "schema": {
            "type": "string"
          },
          "yaml": {
            "type": "string"
          }
        },
        "required": [
          "yaml",
          "schema"
        ],
        "type": "object"
      },
      "name": "yaml_schema_validate"
    },
    {
      "description": "Parse YAML and return JSON-compatible object.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "yaml_to_json"
    },
    {
      "description": "Validate YAML text; return parsed object or error.",
      "inputSchema": {
        "properties": {
          "text": {
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "type": "object"
      },
      "name": "yaml_validate"
    }
  ]
}

What the leaf hashes

{"body":"ebad693afe725e9589f3317cadc6276a4899cde8a5f0ebbbc80e13dabf797e24","id":306367,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793056948724241,"prev":null,"subject":"ef15d20f-ac6d-4111-a97a-c183e461c542","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0xe6351e9a5d2b92d377cb788fba5faedf0ebc69aada39eeec56c046d9eb5dffc0
  2. 0xaef869c14fdc3714aa493a7c592feb0b87297b3417c31b66099bed15978c1cf0
  3. 0x818b306f7ccd636592eeb76b0c4f2eefc12cf7099e1ba7bd9ea4c830a5932d59
  4. 0x267d29edd073f7bdd8da9655285661c267ba58d7f0e3e16887ebf3787fe43d8a
  5. 0x62e0c8f4a520614ca9335f824a53d65c840fc69126c9cbaccbeb2881501967bd
  6. 0x45f8e75117cceca377e7769e70e3aae3f96bc8d3093d7564397487c7f0c23cec
  7. 0x85a5e8887d8b3cfc8c6c7501db8dfe9914d7bf846b039dfbcdbe902bec77a506
  8. 0x94f2c4bb3a604cf4f5e0977101eab926cf72dc5f6c12b952df36f83c406810bc
  9. 0x9fe574dc6e1113a716b08ccd516d89771243afddb9d70f41f17669e36ee9d990
  10. 0x17252ea35c135aec37ce7f1ed706d7c9275dd2e41b9d9e8c21d84f8d686b33ff
  11. 0xe9a46d294851ae0e362ab741d0ad8768d3bfeeb15a9d9fcc78aae5128fc33835
  12. 0xb866b513dd861c870688f5d1a8e434b170eaa2fafb0961d6a674d452b8e58381
  13. 0xafcc1fe54cfe00a3a1de33df127340075f22433bb89848bbc81499cd7aca5b2b
  14. 0x9bc5fc98278b9f6dc18c66c6e162aefd5244be03170d41bc5161f58ad11beed7
  15. 0x95657a7d540ed6cac0bde9995782333b2562a9a6641853269ac95148827410f0
  16. 0x5fb5dda563336cd1bc1b9f44c52b76237ae72ed2145cb9290f39f304ca7dd678
  17. 0x74a0a08e4e7ab9aa5bfbead33dec7e1c7e8e364cff69a63720d764bbe987aadc
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON