Skip to content

io.github.XogZ3/botoi-mcp

by XogZ3 · remote · no sign-in to list tools · v1.0.0 · published by GitHub user XogZ3

49 developer tools via MCP: DNS, WHOIS, IP lookup, JWT, hashing, QR, and more.

Final · 1Changes · 29

49 tools: 1 do something that can't be undone, 29 change things and 19 only read.

Scanned Oct 21, 2026

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

claude mcp add --transport http botoi https://api.botoi.com/mcp

Findings

Matches of fixed checks, with the text they matched.

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

    Matched text

    annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.

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

    Matched text

    annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.

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

    Matched text

    annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.

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

    Matched text

    annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.

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

    Matched text

    annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.

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

    Matched text

    annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.

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

    Matched text

    annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.

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

    Matched text

    annotations: {"readOnlyHint":true}; The description's first verb is "create": a word for a change.

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

    Matched text

    annotations: {"readOnlyHint":true}; The name "dev_cron_describe" says "describe": a word for reading.

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

    Matched text

    annotations: {"readOnlyHint":true}; The name "dev_password_generate" says "generate": a word for a change.

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

    Matched text

    annotations: {"readOnlyHint":true}; The name "dev_timestamp_convert" says "convert": a word for a change.

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

    Matched text

    annotations: {"readOnlyHint":true}; The name "security_totp_generate" says "generate": a word for a change.

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

    Matched text

    annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

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

    Matched text

    annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

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

    Matched text

    annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.sql), which can change anything it can reach.

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

    Matched text

    annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

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

    Matched text

    annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.

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

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "lookup_accessibility" says "lookup": a word for reading.

    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.

49 tools

Can't be undone 1Claude Code: ask
  • dev_timestamp_convertConvert between Unix timestamps and ISO 8601 dates.1 finding

    Why it is in this group

    • The name "dev_timestamp_convert" 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 "dev_timestamp_convert" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true}; The name "dev_timestamp_convert" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Convert between Unix timestamps and ISO 8601 dates. Use when normalizing date formats across APIs, logs, or databases. Returns both Unix and ISO representations.

    Annotations the server declares

    • readOnlyHint: true
Changes things 29Claude Code: ask
  • dev_cron_describeConvert a cron expression to a human-readable description.1 finding

    Why it is in this group

    • The name "dev_cron_describe" says "describe": a word for reading.
    • The description's first verb is "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 "dev_cron_describe" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The name "dev_cron_describe" says "describe": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Convert a cron expression to a human-readable description.

    Annotations the server declares

    • readOnlyHint: true
  • dev_hashGenerate a hash (MD5, SHA-1, SHA-256, SHA-512) of input text.1 finding

    Why it is in this group

    • The description's first verb is "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 "dev_hash" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Generate a hash (MD5, SHA-1, SHA-256, SHA-512) of input text. Use for checksums, data integrity, or fingerprinting.

    Annotations the server declares

    • readOnlyHint: true
  • dev_jwt_signCreate and sign a JWT with a given payload and secret.1 finding

    Why it is in this group

    • The description's first verb is "create": 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 "dev_jwt_sign" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The description's first verb is "create": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Create and sign a JWT with a given payload and secret.

    Annotations the server declares

    • readOnlyHint: true
  • dev_jwt_verifyVerify and decode a JWT.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
    Verify and decode a JWT. Use when debugging authentication tokens.

    Annotations the server declares

    • readOnlyHint: true
  • dev_password_generateGenerate a random password with configurable length and complexity.1 finding

    Why it is in this group

    • The name "dev_password_generate" 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 "dev_password_generate" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The name "dev_password_generate" says "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Generate a random password with configurable length and complexity.

    Annotations the server declares

    • readOnlyHint: true
  • dev_regex_testTest a regex pattern against a string and return matches.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
    Test a regex pattern against a string and return matches.

    Annotations the server declares

    • readOnlyHint: true
  • dev_semver_parseParse and validate a semver string into major, minor, patch, pre-release, and build components.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
    Parse and validate a semver string into major, minor, patch, pre-release, and build components. Use when checking version compatibility or sorting releases.

    Annotations the server declares

    • readOnlyHint: true
  • dev_url_decodeURL-decode a percent-encoded string back to readable text.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
    URL-decode a percent-encoded string back to readable text. Use when parsing query parameters, redirect URIs, or encoded form values.

    Annotations the server declares

    • readOnlyHint: true
  • dev_url_encodeURL-encode a string by escaping special characters.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
    URL-encode a string by escaping special characters. Use when building query parameters, form data, or safe URLs that contain reserved characters.

    Annotations the server declares

    • readOnlyHint: true
  • dev_uuidGenerate one or more UUIDs (v4 or v7).1 finding

    Why it is in this group

    • The description's first verb is "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 "dev_uuid" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Generate one or more UUIDs (v4 or v7). Use when you need unique identifiers for database records, request tracing, or idempotency keys.

    Annotations the server declares

    • readOnlyHint: true
  • lookup_accessibilityRun 10 basic accessibility checks on a webpage URL.1 finding

    Why it is in this group

    • The name "lookup_accessibility" says "lookup": a word for reading.
    • The description's first verb is "run": 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 "lookup_accessibility" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "lookup_accessibility" says "lookup": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Run 10 basic accessibility checks on a webpage URL. Returns a score, issues list, and summary. Use when you need a quick accessibility audit.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • security_decryptDecrypt AES-256-GCM encrypted text with a passphrase.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.
    Description, as the server wrote it
    Decrypt AES-256-GCM encrypted text with a passphrase.

    Annotations the server declares

    • idempotentHint: true
  • security_encryptEncrypt text using AES-256-GCM with a passphrase.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.
    Description, as the server wrote it
    Encrypt text using AES-256-GCM with a passphrase.

    Annotations the server declares

    • idempotentHint: true
  • security_pii_detectDetect personally identifiable information (emails, phones, SSNs) in text.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
    Detect personally identifiable information (emails, phones, SSNs) in text.

    Annotations the server declares

    • readOnlyHint: true
  • security_totp_generateGenerate a TOTP secret and provisioning URI for 2FA setup.1 finding

    Why it is in this group

    • The name "security_totp_generate" 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_totp_generate" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The name "security_totp_generate" says "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Generate a TOTP secret and provisioning URI for 2FA setup.

    Annotations the server declares

    • readOnlyHint: true
  • text_base64_decodeDecode a Base64 string back to UTF-8 text.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
    Decode a Base64 string back to UTF-8 text. Use when extracting data from Base64-encoded API responses, tokens, or email headers. Returns the original plaintext string.

    Annotations the server declares

    • readOnlyHint: true
  • text_base64_encodeEncode a UTF-8 string to Base64.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
    Encode a UTF-8 string to Base64. Use for embedding data in URLs or APIs that require Base64.

    Annotations the server declares

    • readOnlyHint: true
  • text_csv_to_jsonParse CSV text into a JSON array of objects.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
    Parse CSV text into a JSON array of objects. Use when converting spreadsheet or tabular data into structured JSON for processing or storage.

    Annotations the server declares

    • readOnlyHint: true
  • text_html_to_markdownConvert HTML to clean Markdown.1 finding

    Why it is in this group

    • The description's first verb is "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 "text_html_to_markdown" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Convert HTML to clean Markdown. Use when extracting readable content from web pages or migrating HTML docs to Markdown format.

    Annotations the server declares

    • readOnlyHint: true
  • text_json_formatFormat and pretty-print a JSON string with configurable indentation.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
    Format and pretty-print a JSON string with configurable indentation. Use when making minified or compact JSON readable for debugging or documentation.

    Annotations the server declares

    • readOnlyHint: true
  • text_json_to_yamlConvert JSON data to YAML format.1 finding

    Why it is in this group

    • The description's first verb is "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 "text_json_to_yaml" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Convert JSON data to YAML format. Use when generating human-readable config files from JSON data structures.

    Annotations the server declares

    • readOnlyHint: true
  • text_markdown_to_htmlConvert Markdown text to HTML.1 finding

    Why it is in this group

    • The description's first verb is "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 "text_markdown_to_html" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Convert Markdown text to HTML. Use when rendering Markdown content for web display or email templates. Returns sanitized HTML.

    Annotations the server declares

    • readOnlyHint: true
  • text_xml_to_jsonConvert XML documents to JSON.1 finding

    Why it is in this group

    • The description's first verb is "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 "text_xml_to_json" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Convert XML documents to JSON. Use when parsing XML API responses, feeds, or config files into a structured JSON format for easier processing.

    Annotations the server declares

    • readOnlyHint: true
  • text_yaml_to_jsonConvert YAML configuration or data to JSON.1 finding

    Why it is in this group

    • The description's first verb is "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 "text_yaml_to_json" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Convert YAML configuration or data to JSON. Use when parsing YAML config files for programmatic access or API consumption. Returns a JSON object.

    Annotations the server declares

    • readOnlyHint: true
  • transform_code_formatFormat source code with language-aware indentation and style rules.1 finding

    Why it is in this group

    • 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 "transform_code_format" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    Format source code with language-aware indentation and style rules. Supports JS, TS, Python, Go, Rust, and more. Use when standardizing code style or preparing snippets for documentation.

    Annotations the server declares

    • readOnlyHint: true
  • transform_json_to_typescriptGenerate TypeScript interfaces from a JSON sample.1 finding

    Why it is in this group

    • The description's first verb is "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 "transform_json_to_typescript" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Generate TypeScript interfaces from a JSON sample. Use when building type-safe API clients or converting API responses into TypeScript types.

    Annotations the server declares

    • readOnlyHint: true
  • transform_minify_cssMinify CSS stylesheets by removing whitespace, comments, and redundant rules.1 finding

    Why it is in this group

    • 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 "transform_minify_css" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    Minify CSS stylesheets by removing whitespace, comments, and redundant rules. Use when reducing stylesheet size for faster page loads.

    Annotations the server declares

    • readOnlyHint: true
  • transform_minify_jsMinify JavaScript code by removing whitespace, comments, and shortening variable names.1 finding

    Why it is in this group

    • 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 "transform_minify_js" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    Minify JavaScript code by removing whitespace, comments, and shortening variable names. Use when optimizing bundle size for production deployment.

    Annotations the server declares

    • readOnlyHint: true
  • transform_sql_formatFormat and beautify SQL queries with proper indentation and keyword casing.1 finding

    Why it is in this group

    • The input takes a statement or command to run (input.sql), 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 "transform_sql_format" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.sql), which can change anything it can reach.

      What this check looks for
    Description, as the server wrote it
    Format and beautify SQL queries with proper indentation and keyword casing. Use when cleaning up inline SQL for code reviews, documentation, or debugging.

    Annotations the server declares

    • readOnlyHint: true
Only reads 19Claude Code: allow
  • dev_diffCompute a unified diff between two text strings.No findings

    Why it is in this group

    • The name "dev_diff" says "diff": a word for reading.
    Description, as the server wrote it
    Compute a unified diff between two text strings. Use when comparing file versions, config changes, or code revisions. Returns added, removed, and unchanged lines.

    Annotations the server declares

    • readOnlyHint: true
  • lookup_address_validateValidate a freeform address and return structured components (street, city, state, postal code, country), GPS coordinates, and confidence score.No findings

    Why it is in this group

    • The name "lookup_address_validate" says "lookup": a word for reading.
    Description, as the server wrote it
    Validate a freeform address and return structured components (street, city, state, postal code, country), GPS coordinates, and confidence score. Use when you need to verify or parse an address.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_breach_checkCheck if a password has appeared in known data breaches using k-Anonymity.No findings

    Why it is in this group

    • The name "lookup_breach_check" says "lookup": a word for reading.
    Description, as the server wrote it
    Check if a password has appeared in known data breaches using k-Anonymity. Returns breach count. Use when you need to verify password safety.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_companyLook up company information by domain name.No findings

    Why it is in this group

    • The name "lookup_company" says "lookup": a word for reading.
    Description, as the server wrote it
    Look up company information by domain name. Returns name, industry, employee count, location, and social profiles. Use when enriching leads or researching organizations.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_dnsQuery DNS records (A, AAAA, MX, TXT, CNAME, NS) for a domain.No findings

    Why it is in this group

    • The name "lookup_dns" says "lookup": a word for reading.
    Description, as the server wrote it
    Query DNS records (A, AAAA, MX, TXT, CNAME, NS) for a domain. Use when you need to check DNS configuration or troubleshoot domain resolution.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_dns_monitorCheck DNS records for a domain and compare against the previous snapshot.No findings

    Why it is in this group

    • The name "lookup_dns_monitor" says "lookup": a word for reading.
    Description, as the server wrote it
    Check DNS records for a domain and compare against the previous snapshot. Detects record changes over time. Use when monitoring DNS configuration.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_domain_availabilityCheck if a domain name is available for registration.No findings

    Why it is in this group

    • The name "lookup_domain_availability" says "lookup": a word for reading.
    Description, as the server wrote it
    Check if a domain name is available for registration. Use when brainstorming project names or validating domain ideas. Returns availability status and WHOIS data if registered.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_emailValidate an email address (syntax, MX record, disposable check).No findings

    Why it is in this group

    • The name "lookup_email" says "lookup": a word for reading.
    Description, as the server wrote it
    Validate an email address (syntax, MX record, disposable check). Use when you need to verify if an email address is real and deliverable.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_headersFetch HTTP response headers for a URL.No findings

    Why it is in this group

    • The name "lookup_headers" says "lookup": a word for reading.
    Description, as the server wrote it
    Fetch HTTP response headers for a URL. Use when inspecting server configuration, security headers, or caching policies.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_ipLook up geolocation, ISP, and network details for an IP address.No findings

    Why it is in this group

    • The name "lookup_ip" says "lookup": a word for reading.
    Description, as the server wrote it
    Look up geolocation, ISP, and network details for an IP address. Use when you need to determine the physical location, internet provider, or AS number for a given IP.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_phoneParse and validate a phone number, returning country, carrier, line type, and E.164 format.No findings

    Why it is in this group

    • The name "lookup_phone" says "lookup": a word for reading.
    Description, as the server wrote it
    Parse and validate a phone number, returning country, carrier, line type, and E.164 format. Use when normalizing user-submitted phone numbers or verifying contact data.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_sslCheck SSL certificate details and expiry for a domain.No findings

    Why it is in this group

    • The name "lookup_ssl" says "lookup": a word for reading.
    Description, as the server wrote it
    Check SSL certificate details and expiry for a domain. Use when verifying HTTPS configuration or checking certificate validity.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_ssl_cert_expiryCheck SSL certificate expiry for a domain.No findings

    Why it is in this group

    • The name "lookup_ssl_cert_expiry" says "lookup": a word for reading.
    Description, as the server wrote it
    Check SSL certificate expiry for a domain. Returns issuer, valid dates, days remaining, and expired/expiring-soon flags. Use when monitoring certificate health.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_tech_detectDetect technologies used by a website (frameworks, CMS, analytics).No findings

    Why it is in this group

    • The name "lookup_tech_detect" says "lookup": a word for reading.
    Description, as the server wrote it
    Detect technologies used by a website (frameworks, CMS, analytics). Use when analyzing a competitor's tech stack.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_url_metadataExtract title, description, OG tags, and favicon from a URL.No findings

    Why it is in this group

    • The name "lookup_url_metadata" says "lookup": a word for reading.
    Description, as the server wrote it
    Extract title, description, OG tags, and favicon from a URL. Use when you need to preview or summarize a webpage.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_vpn_detectCheck if an IP address is a VPN, proxy, or Tor exit node.No findings

    Why it is in this group

    • The name "lookup_vpn_detect" says "lookup": a word for reading.
    Description, as the server wrote it
    Check if an IP address is a VPN, proxy, or Tor exit node. Use when assessing connection trustworthiness or flagging suspicious traffic. Returns detection type and provider details.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • lookup_whoisGet WHOIS registration data for a domain.No findings

    Why it is in this group

    • The name "lookup_whois" says "lookup": a word for reading.
    Description, as the server wrote it
    Get WHOIS registration data for a domain. Use when you need to find domain ownership, registrar, or expiration date.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
  • security_validate_credit_cardValidate a credit card number (Luhn check, network detection).No findings

    Why it is in this group

    • The name "security_validate_credit_card" says "validate": a word for reading.
    Description, as the server wrote it
    Validate a credit card number (Luhn check, network detection).

    Annotations the server declares

    • readOnlyHint: true
  • text_json_validateValidate whether a string is valid JSON and report parsing errors.No findings

    Why it is in this group

    • The name "text_json_validate" says "validate": a word for reading.
    Description, as the server wrote it
    Validate whether a string is valid JSON and report parsing errors.

    Annotations the server declares

    • readOnlyHint: true

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.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http botoi https://api.botoi.com/mcp

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__botoi__lookup_ip",
      "mcp__botoi__lookup_dns",
      "mcp__botoi__lookup_whois",
      "mcp__botoi__lookup_ssl",
      "mcp__botoi__lookup_email",
      "mcp__botoi__lookup_headers",
      "mcp__botoi__lookup_url_metadata",
      "mcp__botoi__lookup_domain_availability",
      "mcp__botoi__lookup_tech_detect",
      "mcp__botoi__lookup_vpn_detect",
      "mcp__botoi__lookup_phone",
      "mcp__botoi__lookup_company",
      "mcp__botoi__text_json_validate",
      "mcp__botoi__dev_diff",
      "mcp__botoi__security_validate_credit_card",
      "mcp__botoi__lookup_address_validate",
      "mcp__botoi__lookup_breach_check",
      "mcp__botoi__lookup_ssl_cert_expiry",
      "mcp__botoi__lookup_dns_monitor"
    ],
    "ask": [
      "mcp__botoi__text_base64_encode",
      "mcp__botoi__text_base64_decode",
      "mcp__botoi__text_json_format",
      "mcp__botoi__text_markdown_to_html",
      "mcp__botoi__text_html_to_markdown",
      "mcp__botoi__text_csv_to_json",
      "mcp__botoi__text_yaml_to_json",
      "mcp__botoi__text_json_to_yaml",
      "mcp__botoi__text_xml_to_json",
      "mcp__botoi__dev_hash",
      "mcp__botoi__dev_uuid",
      "mcp__botoi__dev_jwt_sign",
      "mcp__botoi__dev_jwt_verify",
      "mcp__botoi__dev_cron_describe",
      "mcp__botoi__dev_password_generate",
      "mcp__botoi__dev_url_encode",
      "mcp__botoi__dev_url_decode",
      "mcp__botoi__dev_regex_test",
      "mcp__botoi__dev_semver_parse",
      "mcp__botoi__dev_timestamp_convert",
      "mcp__botoi__security_encrypt",
      "mcp__botoi__security_decrypt",
      "mcp__botoi__security_totp_generate",
      "mcp__botoi__security_pii_detect",
      "mcp__botoi__transform_minify_js",
      "mcp__botoi__transform_minify_css",
      "mcp__botoi__transform_sql_format",
      "mcp__botoi__transform_code_format",
      "mcp__botoi__transform_json_to_typescript",
      "mcp__botoi__lookup_accessibility"
    ],
    "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 botoi. Review it before you use it.