Skip to content

Thousand API

by thousand-api.com · remote · no sign-in to list tools · v1.2.0 · published by com.thousand-api

Certainty for AI Agents. Deterministic MCP tools for dates, crypto, finance. 84 tools.

Final · 7Changes · 50

84 tools: 7 do something that can't be undone, 50 change things and 27 only read.

Scanned Oct 21, 2026

35 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http thousand-api https://mcp.thousand-api.com/mcp --header 'x-api-key: <your-x-api-key>'

Findings

Matches of fixed checks, with the text they matched.

35 warn
  • The server marks "datetime.add_business_days" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "datetime.add_business_days" says "add": a word for a change.

    What this check looks for
  • The server marks "datetime.add_calendar_days" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "datetime.add_calendar_days" says "add": a word for a change.

    What this check looks for
  • The server marks "datetime.generate_test_dates" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "datetime.generate_test_dates" says "generate": a word for a change.

    What this check looks for
  • The server marks "datetime.calc_schedule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "datetime.calc_schedule" says "schedule": a word for a change.

    What this check looks for
  • The server marks "datetime.parse_laravel_schedule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "datetime.parse_laravel_schedule" says "schedule": a word for a change.

    What this check looks for
  • The server marks "network.lookup_postal_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "network.lookup_postal_code" says "lookup": a word for reading.

    What this check looks for
Show 29 more findings
  • The server marks "utility.convert_coordinates" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "utility.convert_coordinates" says "convert": a word for a change.

    What this check looks for
  • The server marks "convert.get_qrcode" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.get_qrcode" says "convert": a word for a change.

    What this check looks for
  • The server marks "convert.markdown" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.markdown" says "convert": a word for a change.

    What this check looks for
  • The server marks "utility.generate_color_palette" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "utility.generate_color_palette" says "generate": a word for a change.

    What this check looks for
  • The server marks "convert.color" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.color" says "convert": a word for a change.

    What this check looks for
  • The server marks "convert.unit" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.unit" says "convert": a word for a change.

    What this check looks for
  • The server marks "security.generate_hash" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "security.generate_hash" says "generate": a word for a change.

    What this check looks for
  • The server marks "security.generate_uuid" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "security.generate_uuid" says "generate": a word for a change.

    What this check looks for
  • The server marks "security.validate_barcode" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "security.validate_barcode" says "validate": a word for reading.

    What this check looks for
  • The server marks "security.generate_hmac" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "security.generate_hmac" says "generate": a word for a change.

    What this check looks for
  • The server marks "security.generate_totp" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "security.generate_totp" says "generate": a word for a change.

    What this check looks for
  • The server marks "convert.csv" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.csv" says "convert": a word for a change.

    What this check looks for
  • The server marks "convert.yaml" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.yaml" says "convert": a word for a change.

    What this check looks for
  • The server marks "convert.toml" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.toml" says "convert": a word for a change.

    What this check looks for
  • The server marks "convert.xml" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.xml" says "convert": a word for a change.

    What this check looks for
  • The server marks "convert.base64" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.base64" says "convert": a word for a change.

    What this check looks for
  • The server marks "convert.url_encoding" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.url_encoding" says "convert": a word for a change.

    What this check looks for
  • The server marks "convert.format" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.format" says "convert": a word for a change.

    What this check looks for
  • The server marks "network.http_fetch" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "network.http_fetch" says "fetch": a word for reading.

    What this check looks for
  • The server marks "convert.data_size" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.data_size" says "convert": a word for a change.

    What this check looks for
  • The server marks "convert.format_number" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.format_number" says "convert": a word for a change.

    What this check looks for
  • The server marks "text.convert_japanese" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "text.convert_japanese" says "convert": a word for a change.

    What this check looks for
  • The server marks "text.generate_slug" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "text.generate_slug" says "generate": a word for a change.

    What this check looks for
  • The server marks "datetime.convert_japanese_era" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "datetime.convert_japanese_era" says "convert": a word for a change.

    What this check looks for
  • The server marks "datetime.convert_iso_duration" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "datetime.convert_iso_duration" says "convert": a word for a change.

    What this check looks for
  • The server marks "text.convert_string_case" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "text.convert_string_case" says "convert": a word for a change.

    What this check looks for
  • The server marks "text.generate_random_string" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "text.generate_random_string" says "generate": a word for a change.

    What this check looks for
  • The server marks "data.merge_json" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "data.merge_json" says "merge": a word for a change that another call does not undo.

    What this check looks for
  • The server marks "convert.transform_image" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "convert.transform_image" says "convert": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

84 tools

Can't be undone 7Claude Code: ask
  • convert.csv[convert] CSVとJSONの相互変換(ヘッダー・区切り文字・UTF-8 BOM対応・最大1MB) / Converts CSV to JSON or JSON to CSV with delimiter and header options.1 finding

    Why it is in this group

    • The name "convert.csv" says "convert": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert.csv" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.csv" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [convert] CSVとJSONの相互変換(ヘッダー・区切り文字・UTF-8 BOM対応・最大1MB) / Converts CSV to JSON or JSON to CSV with delimiter and header options. [use_cases: data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • convert.unit[convert] 長さ・重さ・温度・面積・体積・速度・データ量の単位変換(mathjs) / Converts numeric values across length, weight, temperature, area, volume, speed, and data units.1 finding

    Why it is in this group

    • The name "convert.unit" says "convert": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert.unit" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.unit" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [convert] 長さ・重さ・温度・面積・体積・速度・データ量の単位変換(mathjs) / Converts numeric values across length, weight, temperature, area, volume, speed, and data units. [use_cases: data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • convert.yaml[convert] YAMLとJSONの相互変換(JSON出力時のインデント指定・最大1MB) / Converts between YAML and JSON deterministically.1 finding

    Why it is in this group

    • The name "convert.yaml" says "convert": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert.yaml" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.yaml" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [convert] YAMLとJSONの相互変換(JSON出力時のインデント指定・最大1MB) / Converts between YAML and JSON deterministically. [use_cases: data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • data.merge_json[data] JSONオブジェクトのdeep mergeまたはRFC 6902 JSON Patch適用(変更キー一覧付き) / Deep-merges two JSON objects or applies RFC 6902 JSON Patch operations.1 finding

    Why it is in this group

    • The name "data.merge_json" says "merge": a word for a change that another call does not undo.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "data.merge_json" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "data.merge_json" says "merge": a word for a change that another call does not undo.

      What this check looks for
    Description, as the server wrote it
    [data] JSONオブジェクトのdeep mergeまたはRFC 6902 JSON Patch適用(変更キー一覧付き) / Deep-merges two JSON objects or applies RFC 6902 JSON Patch operations. [use_cases: json_validation, workflow]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • text.convert_japanese[text] 日本語テキストをひらがな・カタカナ・ローマ字に変換(kuromoji) / Converts Japanese text between hiragana, katakana, and half-width forms.1 finding

    Why it is in this group

    • The name "text.convert_japanese" says "convert": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "text.convert_japanese" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "text.convert_japanese" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [text] 日本語テキストをひらがな・カタカナ・ローマ字に変換(kuromoji) / Converts Japanese text between hiragana, katakana, and half-width forms. [use_cases: text_processing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • text.convert_string_case[text] 文字列ケース変換(camel / snake / kebab / pascal 等・入力ケース自動検出・to=all 対応) / Converts string case (camelCase, snake_case, kebab-case, etc.).1 finding

    Why it is in this group

    • The name "text.convert_string_case" says "convert": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "text.convert_string_case" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "text.convert_string_case" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [text] 文字列ケース変換(camel / snake / kebab / pascal 等・入力ケース自動検出・to=all 対応) / Converts string case (camelCase, snake_case, kebab-case, etc.). [use_cases: text_processing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • utility.convert_coordinates[utility] Convert geographic coordinates between WGS84 (GPS), Tokyo Datum (旧日本測地系), JGD2011 (測地成果2011), and map tile coordinates (XYZ tile scheme used by GSI, OpenStreetMap, and Go…1 finding

    Why it is in this group

    • The name "utility.convert_coordinates" says "convert": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "utility.convert_coordinates" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "utility.convert_coordinates" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [utility] Convert geographic coordinates between WGS84 (GPS), Tokyo Datum (旧日本測地系), JGD2011 (測地成果2011), and map tile coordinates (XYZ tile scheme used by GSI, OpenStreetMap, and Google Maps). Essential for Japanese map applications where GPS data and legacy coordinate systems diverge by up to 450 meters. / Convert Coordinates. Developer utilities for calculations and checks. [use_cases: geo, mapping]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
Changes things 50Claude Code: ask
  • convert.base64[convert] Base64エンコード/デコード(URL-safe対応・UTF-8/hex/base64入力) / Encodes or decodes Base64 with optional URL-safe mode and input encodings.1 finding

    Why it is in this group

    • The name "convert.base64" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert.base64" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.base64" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [convert] Base64エンコード/デコード(URL-safe対応・UTF-8/hex/base64入力) / Encodes or decodes Base64 with optional URL-safe mode and input encodings. [use_cases: data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • convert.color[convert] HEX/RGB/HSL/HSV/CMYK間の色空間変換(RGB中継で一貫性を保証) / Converts colors between HEX, RGB, HSL, HSV, and CMYK via RGB.1 finding

    Why it is in this group

    • The name "convert.color" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert.color" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.color" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [convert] HEX/RGB/HSL/HSV/CMYK間の色空間変換(RGB中継で一貫性を保証) / Converts colors between HEX, RGB, HSL, HSV, and CMYK via RGB. [use_cases: data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • convert.data_size[convert] データサイズ単位変換(SI 1000進 / binary 1024進を一括換算) / Converts data sizes between SI (1000-based) and binary (1024-based) units.1 finding

    Why it is in this group

    • The name "convert.data_size" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert.data_size" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.data_size" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [convert] データサイズ単位変換(SI 1000進 / binary 1024進を一括換算) / Converts data sizes between SI (1000-based) and binary (1024-based) units. [use_cases: data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • convert.format[convert] JSONハブで CSV/YAML/TOML/XML/Base64 を相互変換(convert_csv 等の統合代替) / Convert between JSON and CSV, YAML, TOML, XML, or Base64 in one tool.1 finding

    Why it is in this group

    • The name "convert.format" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert.format" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.format" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [convert] JSONハブで CSV/YAML/TOML/XML/Base64 を相互変換(convert_csv 等の統合代替) / Convert between JSON and CSV, YAML, TOML, XML, or Base64 in one tool. All conversions go through JSON (no direct csv→yaml). Can replace convert_csv, convert_yaml, convert_toml, convert_xml, and JSON↔Base64 workflows. Consolidates per-format conversion tools into a single interface; individual tools remain available for now. [use_cases: data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • convert.format_number[convert] 数値のロケール別フォーマット(通貨・パーセント・単位付き) / Formats numbers with locale, currency, percent, and precision options.1 finding

    Why it is in this group

    • The name "convert.format_number" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert.format_number" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.format_number" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [convert] 数値のロケール別フォーマット(通貨・パーセント・単位付き) / Formats numbers with locale, currency, percent, and precision options. [use_cases: data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • convert.get_qrcode[convert] テキストやURLからQRコード画像を生成します。PNG・JPEG・SVG・EPS形式に対応し、サイズや前景色・背景色を指定できます。MCPでは画像を image コンテンツとして返します。コンテキスト節約のため return: "metadata_only" でサイズ・形式のみ取得できます。 / Generates a QR code i…1 finding

    Why it is in this group

    • The name "convert.get_qrcode" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert.get_qrcode" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.get_qrcode" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [convert] テキストやURLからQRコード画像を生成します。PNG・JPEG・SVG・EPS形式に対応し、サイズや前景色・背景色を指定できます。MCPでは画像を image コンテンツとして返します。コンテキスト節約のため return: "metadata_only" でサイズ・形式のみ取得できます。 / Generates a QR code image (PNG, JPEG, SVG, EPS) from text or a URL with size and color options. [use_cases: media, data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • convert.markdown[convert] MarkdownテキストをHTMLに変換(GFM対応・XSSサニタイズ) / Converts Markdown to HTML with optional GFM support and XSS sanitization.1 finding

    Why it is in this group

    • The name "convert.markdown" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert.markdown" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.markdown" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [convert] MarkdownテキストをHTMLに変換(GFM対応・XSSサニタイズ) / Converts Markdown to HTML with optional GFM support and XSS sanitization. [use_cases: data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • convert.toml[convert] TOMLとJSONの相互変換(ネストテーブル・テーブル配列対応・最大1MB) / Converts between TOML and JSON.1 finding

    Why it is in this group

    • The name "convert.toml" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert.toml" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.toml" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [convert] TOMLとJSONの相互変換(ネストテーブル・テーブル配列対応・最大1MB) / Converts between TOML and JSON. [use_cases: data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • convert.transform_image[convert] URLから画像を取得しWebP/JPEG/PNG/AVIF変換・リサイズ・圧縮(MCPはimageコンテンツ返却。return: metadata_onlyでコンテキスト節約可) / Fetches an image from a URL and converts format, resizes, or compresses it to …1 finding

    Why it is in this group

    • The name "convert.transform_image" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert.transform_image" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "convert.transform_image" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [convert] URLから画像を取得しWebP/JPEG/PNG/AVIF変換・リサイズ・圧縮(MCPはimageコンテンツ返却。return: metadata_onlyでコンテキスト節約可) / Fetches an image from a URL and converts format, resizes, or compresses it to Base64. [use_cases: media, data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • convert.url_encoding[convert] URLパーセントエンコード/デコード(component=encodeURIComponent / uri=encodeURI・不正%シーケンスは明確なエラー) / Encodes or decodes URL percent-encoding (encodeURIComponent/decodeURIComponent or encod…1 finding

    Why it is in this group

    • The name "convert.url_encoding" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert.url_encoding" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.url_encoding" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [convert] URLパーセントエンコード/デコード(component=encodeURIComponent / uri=encodeURI・不正%シーケンスは明確なエラー) / Encodes or decodes URL percent-encoding (encodeURIComponent/decodeURIComponent or encodeURI/decodeURI). Handles multi-byte UTF-8 characters (e.g. Japanese) correctly and returns a clear error on malformed percent-sequences instead of throwing. [use_cases: data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • convert.xml[convert] XMLとJSONの相互変換(属性プレフィックス・ネスト要素対応・最大1MB) / Converts between XML and JSON.1 finding

    Why it is in this group

    • The name "convert.xml" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert.xml" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert.xml" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [convert] XMLとJSONの相互変換(属性プレフィックス・ネスト要素対応・最大1MB) / Converts between XML and JSON. [use_cases: data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • data.calc_stats[data] 数値配列の統計値を計算(平均・中央値・最頻値・分散・標準偏差・パーセンタイル・最大1000要素) / Computes mean, median, standard deviation, percentiles, and related stats for numeric arrays.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [data] 数値配列の統計値を計算(平均・中央値・最頻値・分散・標準偏差・パーセンタイル・最大1000要素) / Computes mean, median, standard deviation, percentiles, and related stats for numeric arrays. [use_cases: data_extraction, analytics]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • data.execute_batch[data] 【複数ツール連続の前に検討】tools:[{id,tool,args}] で MCP ツールを最大10件順次実行。{{stepId.field}} で前ステップ結果を参照。関連ツール3〜5本を個別呼び出しすると往復3〜5回+ツール呼び出しオーバーヘッドが重複するが、execute_batch で1回にまとめコンテキスト消費を大幅削減(概算)。E…No findings

    Why it is in this group

    • The name "data.execute_batch" says "execute": a word for a change.
    Description, as the server wrote it
    [data] 【複数ツール連続の前に検討】tools:[{id,tool,args}] で MCP ツールを最大10件順次実行。{{stepId.field}} で前ステップ結果を参照。関連ツール3〜5本を個別呼び出しすると往復3〜5回+ツール呼び出しオーバーヘッドが重複するが、execute_batch で1回にまとめコンテキスト消費を大幅削減(概算)。Examples: (1) 今日の日時→祝日→為替 tools:[{id:now,tool:datetime.get_current_datetime,args:{timezone:Asia/Tokyo}},{id:holiday,tool:datetime.is_holiday,args:{country:JP,date:{{now.date}}}},{id:rate,tool:network.get_exchange_rate,args:{from:USD,to:JPY}}] (2) JSON検証→マージ→統計 tools:[validate:data.validate_json,merge:data.merge_json,stats:data.calc_stats] (3) スラッグ→Base64→HMAC tools:[slug:text.generate_slug,b64:convert.base64,hmac:security.generate_hmac]。詳細は tool-catalog の execute_batch_presets 参照 / Prefer before chaining MCP tools: run up to 10 tools via tools:[{id,tool,args}] with {{stepId.field}} refs. Calling 3-5 related tools individually costs ~3-5 round trips plus repeated tool-call overhead; execute_batch combines them into one call, cutting context usage significantly (approx.). Ex1 today→holiday→rate: tools:[{id:now,tool:datetime.get_current_datetime,args:{timezone:Asia/Tokyo}},{id:holiday,tool:datetime.is_holiday,args:{country:JP,date:{{now.date}}}},{id:rate,tool:network.get_exchange_rate,args:{from:USD,to:JPY}}]. Ex2 validate JSON→merge→stats. Ex3 slug→base64→HMAC. See execute_batch_presets in the tool-catalog MCP Resource. [use_cases: workflow, batch]

    Annotations the server declares

    • readOnlyHint: false
    • idempotentHint: false
    • destructiveHint: false
    • openWorldHint: true
  • data.sort_json[data] JSONオブジェクト配列を複数キー・昇順/降順混在で安定ソート(ドット記法のネストキー対応・欠損/null/型不一致は末尾) / Sorts an array of JSON objects by one or more keys, with independent ascending/descending order per key.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [data] JSONオブジェクト配列を複数キー・昇順/降順混在で安定ソート(ドット記法のネストキー対応・欠損/null/型不一致は末尾) / Sorts an array of JSON objects by one or more keys, with independent ascending/descending order per key. Uses a stable sort, so LLMs no longer need to hand-write multi-key comparator logic (a common source of bugs). [use_cases: data_processing, workflow]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • datetime.add_business_days[datetime] 指定した日付からN営業日後(または前)の日付を計算します。土日・祝日を自動的にスキップします。例: 「3営業日後の納期」「5営業日以内に返答」などの計算に使います。 / Calculates a date N business days after (or before) a start date, skipping weekends …1 finding

    Why it is in this group

    • The name "datetime.add_business_days" says "add": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "datetime.add_business_days" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "datetime.add_business_days" says "add": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [datetime] 指定した日付からN営業日後(または前)の日付を計算します。土日・祝日を自動的にスキップします。例: 「3営業日後の納期」「5営業日以内に返答」などの計算に使います。 / Calculates a date N business days after (or before) a start date, skipping weekends and holidays. [use_cases: calendar, business_planning]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • datetime.add_calendar_days[datetime] 暦日(カレンダー日)の加算・減算(SQL ヒント付き) / Add or subtract calendar days from a date and return a SQL DATE_ADD/DATE_SUB hint.1 finding

    Why it is in this group

    • The name "datetime.add_calendar_days" says "add": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "datetime.add_calendar_days" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "datetime.add_calendar_days" says "add": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [datetime] 暦日(カレンダー日)の加算・減算(SQL ヒント付き) / Add or subtract calendar days from a date and return a SQL DATE_ADD/DATE_SUB hint. [use_cases: calendar, testing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • datetime.calc_schedule[datetime] タイムゾーン変換・DST考慮のスケジュール計算 / Converts datetimes across timezones with DST support; add hours, next business day, or next weekday.1 finding

    Why it is in this group

    • The name "datetime.calc_schedule" says "schedule": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "datetime.calc_schedule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "datetime.calc_schedule" says "schedule": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [datetime] タイムゾーン変換・DST考慮のスケジュール計算 / Converts datetimes across timezones with DST support; add hours, next business day, or next weekday. [use_cases: timezone, scheduling]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • datetime.check_business_hours[datetime] 営業時間内かどうかを判定(タイムゾーン・祝日対応・デフォルト: Asia/Tokyo) / Checks whether a datetime falls within configured business hours, holidays, and timezone rules.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [datetime] 営業時間内かどうかを判定(タイムゾーン・祝日対応・デフォルト: Asia/Tokyo) / Checks whether a datetime falls within configured business hours, holidays, and timezone rules. [use_cases: business_planning, scheduling]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • datetime.check_custom_holidays[datetime] 法定祝日+カスタム休業日をまとめて判定(複数日・週末対応) / Checks multiple dates against public holidays plus custom non-working days.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [datetime] 法定祝日+カスタム休業日をまとめて判定(複数日・週末対応) / Checks multiple dates against public holidays plus custom non-working days. Returns holiday status, reason (legal/custom/weekend), and name per date. Optionally treats weekends as holidays. [use_cases: batch_test_date, calendar, business_planning]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • datetime.convert_iso_duration[datetime] ISO 8601 Duration のパース・フォーマット(PT1H30M ↔ 成分・秒数) / Converts ISO 8601 duration strings to and from human-readable forms.1 finding

    Why it is in this group

    • The name "datetime.convert_iso_duration" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "datetime.convert_iso_duration" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "datetime.convert_iso_duration" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [datetime] ISO 8601 Duration のパース・フォーマット(PT1H30M ↔ 成分・秒数) / Converts ISO 8601 duration strings to and from human-readable forms. [use_cases: scheduling, data_conversion]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • datetime.convert_japanese_era[datetime] 和暦↔西暦変換(明治・大正・昭和・平成・令和、元号境界日対応) / Converts between Japanese era names and Gregorian dates.1 finding

    Why it is in this group

    • The name "datetime.convert_japanese_era" says "convert": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "datetime.convert_japanese_era" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "datetime.convert_japanese_era" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [datetime] 和暦↔西暦変換(明治・大正・昭和・平成・令和、元号境界日対応) / Converts between Japanese era names and Gregorian dates. [use_cases: calendar, localization]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • datetime.format_relative_time[datetime] 絶対日時を「3時間前」「昨日」等の相対・自然言語表現に変換(7日超は絶対日付) / Formats an absolute datetime as locale-aware relative phrases like "3 hours ago", with absolute-date fallback beyond 7 days.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [datetime] 絶対日時を「3時間前」「昨日」等の相対・自然言語表現に変換(7日超は絶対日付) / Formats an absolute datetime as locale-aware relative phrases like "3 hours ago", with absolute-date fallback beyond 7 days. [use_cases: timezone, scheduling, localization]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • datetime.generate_test_dates[datetime] テストデータ・DBシーディング用に基準日から複数オフセット(±N日)の日付セットを一括生成(ラベル・SQL INSERT ヒント付き)。datetime.add_calendar_days は単発加算、本ツールは複数オフセットの一括生成 / Generate multiple labeled test dates from one ba…1 finding

    Why it is in this group

    • The name "datetime.generate_test_dates" says "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "datetime.generate_test_dates" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "datetime.generate_test_dates" says "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [datetime] テストデータ・DBシーディング用に基準日から複数オフセット(±N日)の日付セットを一括生成(ラベル・SQL INSERT ヒント付き)。datetime.add_calendar_days は単発加算、本ツールは複数オフセットの一括生成 / Generate multiple labeled test dates from one base date and day offsets (batch seeding). Unlike datetime.add_calendar_days (single offset), returns SQL INSERT VALUES hints for factories. [use_cases: testing, calendar]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: false
    • destructiveHint: false
    • openWorldHint: false
  • datetime.is_holiday[datetime] 指定した国・日付が祝日かどうかを判定します。祝日名も返します。レスポンスに cache_ttl(推奨キャッシュ保持秒数)と cached_at(データ取得時刻)を含み、再取得の要否判断に使えます。 / Checks whether a date is a public holiday in the given country and r…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [datetime] 指定した国・日付が祝日かどうかを判定します。祝日名も返します。レスポンスに cache_ttl(推奨キャッシュ保持秒数)と cached_at(データ取得時刻)を含み、再取得の要否判断に使えます。 / Checks whether a date is a public holiday in the given country and returns the holiday name. Responses include cache_ttl and cached_at for refetch decisions. [use_cases: calendar, business_planning]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • datetime.parse_laravel_schedule[datetime] Laravel スケジュール式を Cron 式に変換し次回実行時刻を計算 / Parses Laravel scheduler expressions and returns cron equivalents with next run times.1 finding

    Why it is in this group

    • The name "datetime.parse_laravel_schedule" says "schedule": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "datetime.parse_laravel_schedule" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "datetime.parse_laravel_schedule" says "schedule": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [datetime] Laravel スケジュール式を Cron 式に変換し次回実行時刻を計算 / Parses Laravel scheduler expressions and returns cron equivalents with next run times. [use_cases: scheduling, cron]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: false
    • destructiveHint: false
    • openWorldHint: false
  • network.calc_cidr[network] IPv4 CIDR/IPレンジ計算(ネットワーク・ブロードキャスト・マスク・ホスト数) / Calculates network address, broadcast, host range, and subnet details from CIDR notation.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [network] IPv4 CIDR/IPレンジ計算(ネットワーク・ブロードキャスト・マスク・ホスト数) / Calculates network address, broadcast, host range, and subnet details from CIDR notation. [use_cases: network]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • network.check_domain_format[network] ドメイン名のRFC 1035/1123形式検証(ラベル・TLD・IDN/Punycode)。DNS解決は行わない(解決はnetwork.dns_lookup)。tldは末尾ラベルのみ(PSL非対応) / Validates whether a string is a well-formed domain name per RFC 1035…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [network] ドメイン名のRFC 1035/1123形式検証(ラベル・TLD・IDN/Punycode)。DNS解決は行わない(解決はnetwork.dns_lookup)。tldは末尾ラベルのみ(PSL非対応) / Validates whether a string is a well-formed domain name per RFC 1035/1123 (label length, character set, IDN/Punycode). Format validation only — does NOT perform DNS resolution (use network.dns_lookup for that). TLD field is the raw last label, not a public-suffix-list-aware effective TLD. [use_cases: validation, network]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • network.check_ip_in_range[network] 指定IPv4が複数CIDRレンジに含まれるかをビット演算で判定。calc_cidrでレンジ情報取得→check_ip_in_rangeでIP判定の連携が可能。セキュリティグループルール検証・VPC設計支援向け / Checks whether an IPv4 address falls within one or more CIDR bl…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [network] 指定IPv4が複数CIDRレンジに含まれるかをビット演算で判定。calc_cidrでレンジ情報取得→check_ip_in_rangeでIP判定の連携が可能。セキュリティグループルール検証・VPC設計支援向け / Checks whether an IPv4 address falls within one or more CIDR blocks using bit-mask arithmetic. [use_cases: network]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • network.http_fetch[network] 外部URLへHTTPリクエストを送信しレスポンスを返す。GET/POST/PUT/PATCH/DELETE/HEAD対応。認証付きAPI呼び出し向け。Starterプラン以上が必要 / Send an HTTP request to an external URL and return the response.1 finding

    Why it is in this group

    • The name "network.http_fetch" says "fetch": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "network.http_fetch" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "network.http_fetch" says "fetch": a word for reading.

      What this check looks for
    Description, as the server wrote it
    [network] 外部URLへHTTPリクエストを送信しレスポンスを返す。GET/POST/PUT/PATCH/DELETE/HEAD対応。認証付きAPI呼び出し向け。Starterプラン以上が必要 / Send an HTTP request to an external URL and return the response. Supports GET/POST/PUT/PATCH/DELETE/HEAD methods with custom headers and body. Useful for calling authenticated APIs on behalf of the agent. Requires Starter plan or above. [use_cases: network]

    Annotations the server declares

    • readOnlyHint: false
    • idempotentHint: false
    • destructiveHint: false
    • openWorldHint: true
  • network.lookup_postal_code[network] 日本の郵便番号↔住所の正引き・逆引き(日本郵便公式データ・最大50件)。レスポンスに cache_ttl(推奨キャッシュ保持秒数)と cached_at(データ取得時刻)を含み、再取得の要否判断に使えます。 / Bidirectional Japanese postal code lookup using official Japan P…1 finding

    Why it is in this group

    • The name "network.lookup_postal_code" says "lookup": a word for reading.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "network.lookup_postal_code" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "network.lookup_postal_code" says "lookup": a word for reading.

      What this check looks for
    Description, as the server wrote it
    [network] 日本の郵便番号↔住所の正引き・逆引き(日本郵便公式データ・最大50件)。レスポンスに cache_ttl(推奨キャッシュ保持秒数)と cached_at(データ取得時刻)を含み、再取得の要否判断に使えます。 / Bidirectional Japanese postal code lookup using official Japan Post data. Responses include cache_ttl and cached_at for refetch decisions. [use_cases: localization, address]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • security.decode_jwt[security] JWTをデコード(署名検証なし・ヘッダー・ペイロード・有効期限) / Decodes a JWT header and payload without signature verification; returns expiry metadata.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [security] JWTをデコード(署名検証なし・ヘッダー・ペイロード・有効期限) / Decodes a JWT header and payload without signature verification; returns expiry metadata. [use_cases: security, auth]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • security.generate_hash[security] テキストからMD5・SHA-1・SHA-256・SHA-512のハッシュ値を生成 / Generates MD5, SHA-1, SHA-256, or SHA-512 hashes from text for checksums and integrity checks.1 finding

    Why it is in this group

    • The name "security.generate_hash" says "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "security.generate_hash" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "security.generate_hash" says "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [security] テキストからMD5・SHA-1・SHA-256・SHA-512のハッシュ値を生成 / Generates MD5, SHA-1, SHA-256, or SHA-512 hashes from text for checksums and integrity checks. [use_cases: security, crypto]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • security.generate_hmac[security] HMAC署名の生成・検証(SHA-256/512/1/MD5・timing-safe compare) / Generates or verifies HMAC signatures for common hash algorithms.1 finding

    Why it is in this group

    • The name "security.generate_hmac" says "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "security.generate_hmac" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "security.generate_hmac" says "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [security] HMAC署名の生成・検証(SHA-256/512/1/MD5・timing-safe compare) / Generates or verifies HMAC signatures for common hash algorithms. [use_cases: security, crypto]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • security.generate_totp[security] RFC 6238準拠のTOTPコード生成・検証(2FA向け・HMAC-SHA1。任意のtimestampで評価時刻を固定可。QR/otpauthはスコープ外) / Generates or validates RFC 6238 TOTP (time-based one-time password) codes for 2FA imple…1 finding

    Why it is in this group

    • The name "security.generate_totp" says "generate": a word for a change.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "security.generate_totp" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "security.generate_totp" says "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [security] RFC 6238準拠のTOTPコード生成・検証(2FA向け・HMAC-SHA1。任意のtimestampで評価時刻を固定可。QR/otpauthはスコープ外) / Generates or validates RFC 6238 TOTP (time-based one-time password) codes for 2FA implementations. Exact HMAC-SHA1 computation and time-step math are error-prone for LLMs to do by hand. Optional timestamp (UNIX seconds) overrides evaluation time for deterministic tests. QR code / otpauth:// URI generation is out of scope — pair with a QR code tool if needed. [use_cases: security, auth, crypto]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • security.generate_uuid[security] 暗号学的に安全な UUID v4 を1件以上生成(最大100件) / Generate one or more cryptographically secure UUID v4 strings.1 finding

    Why it is in this group

    • The name "security.generate_uuid" says "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "security.generate_uuid" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "security.generate_uuid" says "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [security] 暗号学的に安全な UUID v4 を1件以上生成(最大100件) / Generate one or more cryptographically secure UUID v4 strings. Unlike LLM-generated UUIDs, these are guaranteed to be RFC 4122-compliant with proper version and variant bits. Use for database primary keys, job IDs, and any context requiring unique identifiers. [use_cases: security, validation]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: false
    • destructiveHint: false
    • openWorldHint: false
  • security.validate_barcode[security] ISBN/JANバーコードの検証とISBN-10/ISBN-13変換 / Validates and normalizes barcode formats such as EAN-13, UPC, and ISBN.1 finding

    Why it is in this group

    • The name "security.validate_barcode" says "validate": a word for reading.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "security.validate_barcode" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "security.validate_barcode" says "validate": a word for reading.

      What this check looks for
    Description, as the server wrote it
    [security] ISBN/JANバーコードの検証とISBN-10/ISBN-13変換 / Validates and normalizes barcode formats such as EAN-13, UPC, and ISBN. [use_cases: validation, ecommerce]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • text.calc_text_similarity[text] 2つのテキストの類似度を Levenshtein・Jaro-Winkler・Jaccard で数値スコア(0〜1)として返す / Returns Levenshtein, Jaro-Winkler, and Jaccard similarity scores for two texts.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [text] 2つのテキストの類似度を Levenshtein・Jaro-Winkler・Jaccard で数値スコア(0〜1)として返す / Returns Levenshtein, Jaro-Winkler, and Jaccard similarity scores for two texts. [use_cases: text_processing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • text.estimate_tokens[text] テキストのLLMトークン数を近似計算。TOKENを節約するため、HTMLや長文をLLMに渡す前に消費トークン数を事前確認できる / Approximates LLM token usage from text before sending it to a model—save tokens by checking HTML or long do…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [text] テキストのLLMトークン数を近似計算。TOKENを節約するため、HTMLや長文をLLMに渡す前に消費トークン数を事前確認できる / Approximates LLM token usage from text before sending it to a model—save tokens by checking HTML or long documents upfront. Character-type heuristics only; not exact tokenizer output. [use_cases: text_processing, token_estimation]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • text.extract_text_from_html[text] HTMLからプレーンテキストを抽出(タグ除去・エンティティデコード・空白正規化・リンク一覧オプション) / Extracts plain text from HTML with tag removal and entity decoding.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [text] HTMLからプレーンテキストを抽出(タグ除去・エンティティデコード・空白正規化・リンク一覧オプション) / Extracts plain text from HTML with tag removal and entity decoding. [use_cases: text_processing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • text.generate_random_string[text] 暗号学的に安全なランダム文字列生成(文字セット・長さ・個数指定) / Generates random strings with configurable charset and length.1 finding

    Why it is in this group

    • The name "text.generate_random_string" says "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "text.generate_random_string" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "text.generate_random_string" says "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [text] 暗号学的に安全なランダム文字列生成(文字セット・長さ・個数指定) / Generates random strings with configurable charset and length. [use_cases: text_processing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: false
    • destructiveHint: false
    • openWorldHint: false
  • text.generate_slug[text] テキスト(日本語含む)をURLセーフなスラッグに変換(ヘボン式ローマ字化 + 正規化) / Generates URL-safe slugs from text with locale-aware rules.1 finding

    Why it is in this group

    • The name "text.generate_slug" says "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "text.generate_slug" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "text.generate_slug" says "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [text] テキスト(日本語含む)をURLセーフなスラッグに変換(ヘボン式ローマ字化 + 正規化) / Generates URL-safe slugs from text with locale-aware rules. [use_cases: text_processing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • text.mask_pii[text] テキスト内の個人情報(メール・日本の電話番号・クレジットカード)を正規表現+Luhnで検出してマスキング。固定長マスクで元の長さを漏らさない。正規表現ベースのため偽陽性/偽陰性あり(専用DLPの代替ではない) / Detects and masks PII (email addresses, Japanese phone numbers, cr…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [text] テキスト内の個人情報(メール・日本の電話番号・クレジットカード)を正規表現+Luhnで検出してマスキング。固定長マスクで元の長さを漏らさない。正規表現ベースのため偽陽性/偽陰性あり(専用DLPの代替ではない) / Detects and masks PII (email addresses, Japanese phone numbers, credit card numbers) in text using regex + Luhn validation for cards. Uses fixed-length masking (not length-preserving) so masked output doesn't leak the original length. Note: regex-based detection has inherent false-positive/false-negative tradeoffs — not a substitute for a dedicated DLP solution. [use_cases: security, text_processing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • text.split_text[text] 長文を文・段落の境界を保ったままチャンク分割(LLMコンテキスト・RAG前処理用、overlap対応) / Splits long text into chunks without breaking sentence/paragraph boundaries.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [text] 長文を文・段落の境界を保ったままチャンク分割(LLMコンテキスト・RAG前処理用、overlap対応) / Splits long text into chunks without breaking sentence/paragraph boundaries. Useful for preparing text for LLM context windows or RAG chunking. Combine with text.estimate_tokens to size chunks by token budget (character-based sizing only for now). [use_cases: text_processing, rag, token_estimation]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • utility.calc_color_contrast[utility] 2色間のWCAG 2.1コントラスト比とAA/AAA適合判定を計算 / Calculates WCAG 2.1 contrast ratio and AA/AAA compliance between two colors.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [utility] 2色間のWCAG 2.1コントラスト比とAA/AAA適合判定を計算 / Calculates WCAG 2.1 contrast ratio and AA/AAA compliance between two colors. [use_cases: design]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • utility.calc_expression[utility] 数式・計算式の安全な評価(mathjs・変数バインディング・精度指定) / Safely evaluates mathematical expressions with optional variables.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [utility] 数式・計算式の安全な評価(mathjs・変数バインディング・精度指定) / Safely evaluates mathematical expressions with optional variables. [use_cases: dev]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • utility.calc_loan[utility] ローン返済計算(元利均等・元金均等・返済計画表・円単位端数調整) / Calculates loan repayment (equal payment or equal principal method), including monthly breakdown of principal/interest.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [utility] ローン返済計算(元利均等・元金均等・返済計画表・円単位端数調整) / Calculates loan repayment (equal payment or equal principal method), including monthly breakdown of principal/interest. LLMs frequently make rounding errors in compound interest math; this returns exact yen-rounded figures with correct final-month adjustment. [use_cases: finance, billing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • utility.calc_pagination[utility] ページネーション計算(offset/limit/from/to/page_range 等を一括算出) / Calculates pagination offsets, page counts, and slice boundaries.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [utility] ページネーション計算(offset/limit/from/to/page_range 等を一括算出) / Calculates pagination offsets, page counts, and slice boundaries. [use_cases: dev]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • utility.calc_tax[utility] 日本の消費税計算(標準10%・軽減8%・端数処理・複数品目合算・税抜↔税込変換) / Calculates Japanese consumption tax with configurable rates, rounding, and multi-item totals.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [utility] 日本の消費税計算(標準10%・軽減8%・端数処理・複数品目合算・税抜↔税込変換) / Calculates Japanese consumption tax with configurable rates, rounding, and multi-item totals. [use_cases: accounting, billing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • utility.diagnose_mcp[utility] API疎通・APIキー有効性・無効ツール件数を一括診断(クォータ消費なし) / Runs MCP self-diagnostics: API health via GET /v1/health (no quota), API key check via tool-settings (no quota), and disabled tool…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    [utility] API疎通・APIキー有効性・無効ツール件数を一括診断(クォータ消費なし) / Runs MCP self-diagnostics: API health via GET /v1/health (no quota), API key check via tool-settings (no quota), and disabled tool counts. [use_cases: tool_discovery, billing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • utility.generate_color_palette[utility] 基準カラーコードからカラーパレットを生成(補色・類似色・トライアド等) / Generates mathematically accurate palettes (complementary, analogous, triad, etc.) from a base color.1 finding

    Why it is in this group

    • The name "utility.generate_color_palette" says "generate": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "utility.generate_color_palette" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "utility.generate_color_palette" says "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    [utility] 基準カラーコードからカラーパレットを生成(補色・類似色・トライアド等) / Generates mathematically accurate palettes (complementary, analogous, triad, etc.) from a base color. [use_cases: design]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
Only reads 27Claude Code: allow
  • data.diff_arrays[data] 2つの配列を比較し added / removed / unchanged を返す(プリミティブ配列・key指定オブジェクト配列・順序無視比較) / Compares two arrays and returns added, removed, and unchanged elements.No findings

    Why it is in this group

    • The name "data.diff_arrays" says "diff": a word for reading.
    Description, as the server wrote it
    [data] 2つの配列を比較し added / removed / unchanged を返す(プリミティブ配列・key指定オブジェクト配列・順序無視比較) / Compares two arrays and returns added, removed, and unchanged elements. [use_cases: data_extraction, workflow]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • data.query_json[data] JSONPathクエリでJSONデータから値を抽出(フィルタ式対応・最大1MB) / Extracts values from JSON using JSONPath, including filter expressions.No findings

    Why it is in this group

    • The name "data.query_json" says "query": a word for reading.
    Description, as the server wrote it
    [data] JSONPathクエリでJSONデータから値を抽出(フィルタ式対応・最大1MB) / Extracts values from JSON using JSONPath, including filter expressions. [use_cases: json_validation, data_extraction]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • data.validate_all[data] JSON/UUID/Luhn/バーコードを type で指定して統合検証(個別 validate_* の代替) / Unified validation for JSON, UUID, Luhn checksum, and barcodes (ISBN/JAN/UPC).No findings

    Why it is in this group

    • The name "data.validate_all" says "validate": a word for reading.
    Description, as the server wrote it
    [data] JSON/UUID/Luhn/バーコードを type で指定して統合検証(個別 validate_* の代替) / Unified validation for JSON, UUID, Luhn checksum, and barcodes (ISBN/JAN/UPC). Specify type and value; pass type-specific options (schema, format, type hint). Can replace validate_json, validate_uuid, validate_luhn, and validate_barcode. Consolidates per-type validators into one interface; individual tools remain available for now. [use_cases: data_processing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • data.validate_format[data] IPv4/IPv6/CIDR・メール・URL・クレジットカード・日本の電話番号の形式検証 / Validates IPv4/IPv6/CIDR, email, URL, credit card, and Japanese phone formats.No findings

    Why it is in this group

    • The name "data.validate_format" says "validate": a word for reading.
    Description, as the server wrote it
    [data] IPv4/IPv6/CIDR・メール・URL・クレジットカード・日本の電話番号の形式検証 / Validates IPv4/IPv6/CIDR, email, URL, credit card, and Japanese phone formats. [use_cases: validation, schema_check]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • data.validate_json[data] JSON文字列のパース・JSON Schema(Draft-07)検証・構文エラーの自動修復 / Parses JSON and optionally validates against Draft-07 JSON Schema with optional auto-repair.No findings

    Why it is in this group

    • The name "data.validate_json" says "validate": a word for reading.
    Description, as the server wrote it
    [data] JSON文字列のパース・JSON Schema(Draft-07)検証・構文エラーの自動修復 / Parses JSON and optionally validates against Draft-07 JSON Schema with optional auto-repair. [use_cases: json_validation, schema_check]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • data.validate_schema[data] パース済みJSONデータの本格的なJSON Schema(Draft-07)検証(format/pattern/min-max等・schema_path付きエラー)。data.validate_json(構文チェック+自動修復)とは別。2段階: validate_json→validate_schema / Validate Schema.No findings

    Why it is in this group

    • The name "data.validate_schema" says "validate": a word for reading.
    Description, as the server wrote it
    [data] パース済みJSONデータの本格的なJSON Schema(Draft-07)検証(format/pattern/min-max等・schema_path付きエラー)。data.validate_json(構文チェック+自動修復)とは別。2段階: validate_json→validate_schema / Validate Schema. Structured data validation, query, and transformation. [use_cases: data_processing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • datetime.calc_datetime_diff[datetime] 2つの日時の差分を年・月・週・日・時間・分・秒で計算(デフォルト: Asia/Tokyo) / Calculates the difference between two datetimes in multiple units.No findings

    Why it is in this group

    • The name "datetime.calc_datetime_diff" says "diff": a word for reading.
    Description, as the server wrote it
    [datetime] 2つの日時の差分を年・月・週・日・時間・分・秒で計算(デフォルト: Asia/Tokyo) / Calculates the difference between two datetimes in multiple units. [use_cases: timezone, scheduling]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • datetime.get_calendar_month[datetime] 指定した年月の月間カレンダー(曜日・祝日・営業日サマリー) / Returns a monthly calendar with weekday, holiday, and business-day summary for a year and month.No findings

    Why it is in this group

    • The name "datetime.get_calendar_month" says "get": a word for reading.
    Description, as the server wrote it
    [datetime] 指定した年月の月間カレンダー(曜日・祝日・営業日サマリー) / Returns a monthly calendar with weekday, holiday, and business-day summary for a year and month. [use_cases: calendar, business_planning]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • datetime.get_cron_next[datetime] Cron式を解析して次回実行日時を計算(人間向け説明付き・デフォルト: Asia/Tokyo) / Parses a cron expression and returns upcoming run times with a human-readable explanation.No findings

    Why it is in this group

    • The name "datetime.get_cron_next" says "get": a word for reading.
    Description, as the server wrote it
    [datetime] Cron式を解析して次回実行日時を計算(人間向け説明付き・デフォルト: Asia/Tokyo) / Parses a cron expression and returns upcoming run times with a human-readable explanation. [use_cases: scheduling, cron]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • datetime.get_current_datetime[datetime] 指定タイムゾーンの現在日時(ISO / Unix / 曜日・デフォルト: Asia/Tokyo) / Returns the current date and time in a given IANA timezone for accurate "today" calculations.No findings

    Why it is in this group

    • The name "datetime.get_current_datetime" says "get": a word for reading.
    Description, as the server wrote it
    [datetime] 指定タイムゾーンの現在日時(ISO / Unix / 曜日・デフォルト: Asia/Tokyo) / Returns the current date and time in a given IANA timezone for accurate "today" calculations. [use_cases: timezone, scheduling]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: false
    • destructiveHint: false
    • openWorldHint: true
  • datetime.get_holidays[datetime] 指定した国・年の祝日一覧を取得します。日程調整や営業日計算の前処理として使えます。レスポンスに cache_ttl(推奨キャッシュ保持秒数)と cached_at(データ取得時刻)を含み、再取得の要否判断に使えます。 / Returns public holidays for a country and year.No findings

    Why it is in this group

    • The name "datetime.get_holidays" says "get": a word for reading.
    Description, as the server wrote it
    [datetime] 指定した国・年の祝日一覧を取得します。日程調整や営業日計算の前処理として使えます。レスポンスに cache_ttl(推奨キャッシュ保持秒数)と cached_at(データ取得時刻)を含み、再取得の要否判断に使えます。 / Returns public holidays for a country and year. Responses include cache_ttl (recommended cache duration in seconds) and cached_at (fetch time) to decide whether to refetch. [use_cases: calendar, business_planning]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • network.dns_lookup[network] ドメインのDNSレコード取得(A / AAAA / CNAME / MX / TXT / NS・type=all対応) / Resolves DNS records (A, AAAA, MX, TXT, etc.) for a domain or hostname.No findings

    Why it is in this group

    • The name "network.dns_lookup" says "lookup": a word for reading.
    Description, as the server wrote it
    [network] ドメインのDNSレコード取得(A / AAAA / CNAME / MX / TXT / NS・type=all対応) / Resolves DNS records (A, AAAA, MX, TXT, etc.) for a domain or hostname. [use_cases: network]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: false
    • destructiveHint: false
    • openWorldHint: true
  • network.get_exchange_rate[network] 2通貨間の為替レートを取得し、指定金額の換算結果を返します。from(基準通貨)から to(換算先通貨)へのレート・換算額・取得時刻を含みます。レスポンスに cache_ttl(推奨キャッシュ保持秒数)と cached_at(データ取得時刻)を含み、再取得の要否判断に使えます。 / Fetches the exchange rate be…No findings

    Why it is in this group

    • The name "network.get_exchange_rate" says "get": a word for reading.
    Description, as the server wrote it
    [network] 2通貨間の為替レートを取得し、指定金額の換算結果を返します。from(基準通貨)から to(換算先通貨)へのレート・換算額・取得時刻を含みます。レスポンスに cache_ttl(推奨キャッシュ保持秒数)と cached_at(データ取得時刻)を含み、再取得の要否判断に使えます。 / Fetches the exchange rate between two currencies and converts an optional amount. Responses include cache_ttl and cached_at for refetch decisions. [use_cases: finance]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: false
    • destructiveHint: false
    • openWorldHint: true
  • network.get_ip_info[network] IPアドレスの地理情報を取得 / Looks up geographic information for an IP address; omit address to use the caller IP.No findings

    Why it is in this group

    • The name "network.get_ip_info" says "get": a word for reading.
    Description, as the server wrote it
    [network] IPアドレスの地理情報を取得 / Looks up geographic information for an IP address; omit address to use the caller IP. [use_cases: network]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • network.get_page_meta[network] URLのページ情報(タイトル・説明・OGP・favicon)を取得します。ユーザーが共有したURLの内容確認、リンクの要約、SNSプレビューの生成などに使えます。AIが直接アクセスできないURLの情報を取得する際に有効です。 / Fetches page title, description, OGP tags, and favicon …No findings

    Why it is in this group

    • The name "network.get_page_meta" says "get": a word for reading.
    Description, as the server wrote it
    [network] URLのページ情報(タイトル・説明・OGP・favicon)を取得します。ユーザーが共有したURLの内容確認、リンクの要約、SNSプレビューの生成などに使えます。AIが直接アクセスできないURLの情報を取得する際に有効です。 / Fetches page title, description, OGP tags, and favicon for a URL when the agent cannot browse directly. [use_cases: url_check, scraping]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: false
    • destructiveHint: false
    • openWorldHint: true
  • network.inspect_url[network] URLのヘルスチェック(ステータス・レスポンスタイム・SSL・ヘッダー) / Checks URL health: HTTP status, response time, SSL certificate, and response headers.No findings

    Why it is in this group

    • The name "network.inspect_url" says "inspect": a word for reading.
    Description, as the server wrote it
    [network] URLのヘルスチェック(ステータス・レスポンスタイム・SSL・ヘッダー) / Checks URL health: HTTP status, response time, SSL certificate, and response headers. [use_cases: url_check, network]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: false
    • destructiveHint: false
    • openWorldHint: true
  • network.resolve_url[network] URLの最終リダイレクト先を追跡(短縮URL・アフィリエイトURLの実体確認) / Follows redirects to resolve the final URL—useful for short links and affiliate URLs.No findings

    Why it is in this group

    • The name "network.resolve_url" says "resolve": a word for reading.
    Description, as the server wrote it
    [network] URLの最終リダイレクト先を追跡(短縮URL・アフィリエイトURLの実体確認) / Follows redirects to resolve the final URL—useful for short links and affiliate URLs. [use_cases: url_check]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: false
    • destructiveHint: false
    • openWorldHint: true
  • security.validate_luhn[security] Luhn(mod 10)チェックディジット検証(クレジットカード・IMEI等) / Validates Luhn check digits for credit cards, IMEI, and similar identifiers.No findings

    Why it is in this group

    • The name "security.validate_luhn" says "validate": a word for reading.
    Description, as the server wrote it
    [security] Luhn(mod 10)チェックディジット検証(クレジットカード・IMEI等) / Validates Luhn check digits for credit cards, IMEI, and similar identifiers. [use_cases: validation, ecommerce]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • security.validate_uuid[security] UUID形式の検証とバージョン(v1-v5)・variant の判定 / Validate whether strings are properly formatted UUIDs and identify their version (v1-v5).No findings

    Why it is in this group

    • The name "security.validate_uuid" says "validate": a word for reading.
    Description, as the server wrote it
    [security] UUID形式の検証とバージョン(v1-v5)・variant の判定 / Validate whether strings are properly formatted UUIDs and identify their version (v1-v5). Useful for checking user input, validating IDs from external systems, or verifying AI-generated UUIDs before using them as database keys. [use_cases: security, validation]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • text.diff_markdown_tables[text] 2つの Markdown テーブルをセル単位で比較し、列・行の追加削除とセル変更を構造化して返す / Compares two Markdown tables at the cell level with structured added/changed/removed rows.No findings

    Why it is in this group

    • The name "text.diff_markdown_tables" says "diff": a word for reading.
    Description, as the server wrote it
    [text] 2つの Markdown テーブルをセル単位で比較し、列・行の追加削除とセル変更を構造化して返す / Compares two Markdown tables at the cell level with structured added/changed/removed rows. [use_cases: design_review, text_processing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • text.diff_text[text] 2つのテキストを比較し、unified diff または JSON 形式で差分を返す / Compares two texts and returns unified diff or structured JSON differences.No findings

    Why it is in this group

    • The name "text.diff_text" says "diff": a word for reading.
    Description, as the server wrote it
    [text] 2つのテキストを比較し、unified diff または JSON 形式で差分を返す / Compares two texts and returns unified diff or structured JSON differences. [use_cases: text_processing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • text.get_text_stats[text] テキストの文字数・単語数・段落数・推定読了時間を計算(ja / en) / Counts characters, words, paragraphs, and estimated reading time for Japanese or English text.No findings

    Why it is in this group

    • The name "text.get_text_stats" says "get": a word for reading.
    Description, as the server wrote it
    [text] テキストの文字数・単語数・段落数・推定読了時間を計算(ja / en) / Counts characters, words, paragraphs, and estimated reading time for Japanese or English text. [use_cases: text_processing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • utility.compare_versions[utility] Semverバージョン比較・ソート・レンジ判定 / Compares semantic version strings and reports ordering.No findings

    Why it is in this group

    • The name "utility.compare_versions" says "compare": a word for reading.
    Description, as the server wrote it
    [utility] Semverバージョン比較・ソート・レンジ判定 / Compares semantic version strings and reports ordering. [use_cases: dev]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • utility.get_distance[utility] 2地点の緯度・経度間の地上距離(メートル)を計算します。座標は「緯度,経度」の文字列で1点ずつ渡します。アルゴリズムは hubeny(既定・高速)・球面三角法・測地線航法から選択できます。 / Calculates geodesic distance in meters between two latitude/longitude coo…No findings

    Why it is in this group

    • The name "utility.get_distance" says "get": a word for reading.
    Description, as the server wrote it
    [utility] 2地点の緯度・経度間の地上距離(メートル)を計算します。座標は「緯度,経度」の文字列で1点ずつ渡します。アルゴリズムは hubeny(既定・高速)・球面三角法・測地線航法から選択できます。 / Calculates geodesic distance in meters between two latitude/longitude coordinate pairs. [use_cases: geo, mapping]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • utility.get_tool_schema[utility] 指定ツールの inputSchema・outputSchema をオンデマンド取得 / Returns inputSchema and outputSchema for one tool on demand (tools/list omits outputSchema).No findings

    Why it is in this group

    • The name "utility.get_tool_schema" says "get": a word for reading.
    Description, as the server wrote it
    [utility] 指定ツールの inputSchema・outputSchema をオンデマンド取得 / Returns inputSchema and outputSchema for one tool on demand (tools/list omits outputSchema). [use_cases: tool_discovery]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • utility.get_usage[utility] プランと月次クォータの使用状況(残量・リセット時刻)を返す / Returns the current API key plan and monthly quota usage before hitting limit_exceeded (429).No findings

    Why it is in this group

    • The name "utility.get_usage" says "get": a word for reading.
    Description, as the server wrote it
    [utility] プランと月次クォータの使用状況(残量・リセット時刻)を返す / Returns the current API key plan and monthly quota usage before hitting limit_exceeded (429). [use_cases: quota, billing]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • utility.search_tools[utility] キーワード・カテゴリで MCP ツールを検索(無効ツールは除外) / Searches Thousand API MCP tools by keyword and category; disabled tools are excluded.No findings

    Why it is in this group

    • The name "utility.search_tools" says "search": a word for reading.
    Description, as the server wrote it
    [utility] キーワード・カテゴリで MCP ツールを検索(無効ツールは除外) / Searches Thousand API MCP tools by keyword and category; disabled tools are excluded. [use_cases: tool_discovery]

    Annotations the server declares

    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.2.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http thousand-api https://mcp.thousand-api.com/mcp --header 'x-api-key: <your-x-api-key>'

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__thousand-api__utility_search_tools",
      "mcp__thousand-api__utility_get_tool_schema",
      "mcp__thousand-api__utility_get_usage",
      "mcp__thousand-api__datetime_get_holidays",
      "mcp__thousand-api__datetime_get_calendar_month",
      "mcp__thousand-api__datetime_get_cron_next",
      "mcp__thousand-api__network_get_exchange_rate",
      "mcp__thousand-api__network_get_page_meta",
      "mcp__thousand-api__utility_get_distance",
      "mcp__thousand-api__network_get_ip_info",
      "mcp__thousand-api__text_get_text_stats",
      "mcp__thousand-api__text_diff_text",
      "mcp__thousand-api__text_diff_markdown_tables",
      "mcp__thousand-api__network_resolve_url",
      "mcp__thousand-api__network_inspect_url",
      "mcp__thousand-api__security_validate_uuid",
      "mcp__thousand-api__security_validate_luhn",
      "mcp__thousand-api__utility_compare_versions",
      "mcp__thousand-api__network_dns_lookup",
      "mcp__thousand-api__data_query_json",
      "mcp__thousand-api__data_validate_format",
      "mcp__thousand-api__datetime_get_current_datetime",
      "mcp__thousand-api__datetime_calc_datetime_diff",
      "mcp__thousand-api__data_validate_json",
      "mcp__thousand-api__data_validate_schema",
      "mcp__thousand-api__data_validate_all",
      "mcp__thousand-api__data_diff_arrays"
    ],
    "ask": [
      "mcp__thousand-api__utility_diagnose_mcp",
      "mcp__thousand-api__data_execute_batch",
      "mcp__thousand-api__datetime_is_holiday",
      "mcp__thousand-api__datetime_add_business_days",
      "mcp__thousand-api__datetime_add_calendar_days",
      "mcp__thousand-api__datetime_generate_test_dates",
      "mcp__thousand-api__datetime_check_business_hours",
      "mcp__thousand-api__datetime_check_custom_holidays",
      "mcp__thousand-api__datetime_calc_schedule",
      "mcp__thousand-api__datetime_parse_laravel_schedule",
      "mcp__thousand-api__network_lookup_postal_code",
      "mcp__thousand-api__utility_convert_coordinates",
      "mcp__thousand-api__convert_get_qrcode",
      "mcp__thousand-api__text_extract_text_from_html",
      "mcp__thousand-api__text_estimate_tokens",
      "mcp__thousand-api__text_split_text",
      "mcp__thousand-api__text_mask_pii",
      "mcp__thousand-api__text_calc_text_similarity",
      "mcp__thousand-api__convert_markdown",
      "mcp__thousand-api__utility_generate_color_palette",
      "mcp__thousand-api__utility_calc_color_contrast",
      "mcp__thousand-api__convert_color",
      "mcp__thousand-api__security_decode_jwt",
      "mcp__thousand-api__convert_unit",
      "mcp__thousand-api__security_generate_hash",
      "mcp__thousand-api__security_generate_uuid",
      "mcp__thousand-api__security_validate_barcode",
      "mcp__thousand-api__security_generate_hmac",
      "mcp__thousand-api__security_generate_totp",
      "mcp__thousand-api__convert_csv",
      "mcp__thousand-api__convert_yaml",
      "mcp__thousand-api__convert_toml",
      "mcp__thousand-api__convert_xml",
      "mcp__thousand-api__convert_base64",
      "mcp__thousand-api__convert_url_encoding",
      "mcp__thousand-api__convert_format",
      "mcp__thousand-api__utility_calc_expression",
      "mcp__thousand-api__utility_calc_tax",
      "mcp__thousand-api__utility_calc_loan",
      "mcp__thousand-api__utility_calc_pagination",
      "mcp__thousand-api__network_calc_cidr",
      "mcp__thousand-api__network_check_ip_in_range",
      "mcp__thousand-api__network_check_domain_format",
      "mcp__thousand-api__network_http_fetch",
      "mcp__thousand-api__data_calc_stats",
      "mcp__thousand-api__convert_data_size",
      "mcp__thousand-api__convert_format_number",
      "mcp__thousand-api__text_convert_japanese",
      "mcp__thousand-api__text_generate_slug",
      "mcp__thousand-api__datetime_format_relative_time",
      "mcp__thousand-api__datetime_convert_japanese_era",
      "mcp__thousand-api__datetime_convert_iso_duration",
      "mcp__thousand-api__text_convert_string_case",
      "mcp__thousand-api__text_generate_random_string",
      "mcp__thousand-api__data_merge_json",
      "mcp__thousand-api__data_sort_json",
      "mcp__thousand-api__convert_transform_image"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as thousand-api. Review it before you use it.