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.
49 tools: 1 do something that can't be undone, 29 change things and 19 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things29Claude Code: ask: see these tools
- Only reads19Claude Code: allow: see these tools
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/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "text_markdown_to_html" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.
The server marks "text_html_to_markdown" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.
The server marks "text_yaml_to_json" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.
The server marks "text_json_to_yaml" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.
- Warntext_xml_to_json
The server marks "text_xml_to_json" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.
- Warndev_hash
The server marks "dev_hash" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
Show 12 more findingsShow fewer
- Warndev_uuid
The server marks "dev_uuid" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
- Warndev_jwt_sign
The server marks "dev_jwt_sign" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "create": a word for a change.
The server marks "dev_cron_describe" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "dev_cron_describe" says "describe": a word for reading.
The server marks "dev_password_generate" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "dev_password_generate" says "generate": a word for a change.
The server marks "dev_timestamp_convert" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "dev_timestamp_convert" says "convert": a word for a change.
The server marks "security_totp_generate" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "security_totp_generate" says "generate": a word for a change.
The server marks "transform_minify_js" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
The server marks "transform_minify_css" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
The server marks "transform_sql_format" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.sql), which can change anything it can reach.
The server marks "transform_code_format" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
The server marks "transform_json_to_typescript" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
The server marks "lookup_accessibility" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "lookup_accessibility" says "lookup": a word for reading.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "dev_timestamp_convert" says "convert": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "dev_cron_describe" says "describe": a word for reading.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "create": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "dev_password_generate" says "generate": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "lookup_accessibility" says "lookup": a word for reading.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "security_totp_generate" says "generate": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "convert": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The description's first verb is "generate": a word for a change.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.code), which can change anything it can reach.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The input takes a statement or command to run (input.sql), which can change anything it can reach.
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/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .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.
