it-tools-mcp 3.6.0 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.dockerhub.md +1 -1
  2. package/README.md +105 -104
  3. package/build/index.js +426 -19
  4. package/build/tools/ansible/{ansible-vault-decrypt → decrypt_ansible_vault}/index.js +8 -2
  5. package/build/tools/ansible/{ansible-vault-encrypt → encrypt_ansible_vault}/index.js +8 -2
  6. package/build/tools/ansible/generate_ansible_inventory/index.js +221 -0
  7. package/build/tools/ansible/{ansible-inventory-generator → parse_ansible_inventory}/index.js +7 -1
  8. package/build/tools/ansible/{ansible-reference → show_ansible_reference}/index.js +9 -3
  9. package/build/tools/ansible/{ansible-playbook-validator → validate_ansible_playbook}/index.js +8 -2
  10. package/build/tools/color/{color-hex-to-rgb → convert_hex_to_rgb}/index.js +8 -2
  11. package/build/tools/color/{color-rgb-to-hex → convert_rgb_to_hex}/index.js +8 -2
  12. package/build/tools/crypto/{jwt-decode → decode_jwt}/index.js +8 -2
  13. package/build/tools/crypto/{basic-auth-generator → generate_basic_auth}/index.js +8 -2
  14. package/build/tools/crypto/{bip39-generate → generate_bip39}/index.js +8 -2
  15. package/build/tools/crypto/{hmac-generator → generate_hmac}/index.js +8 -2
  16. package/build/tools/crypto/{otp-code-generator → generate_otp}/index.js +8 -2
  17. package/build/tools/crypto/{password-generate → generate_password}/index.js +8 -2
  18. package/build/tools/crypto/{token-generator → generate_token}/index.js +8 -2
  19. package/build/tools/crypto/{bcrypt-hash → hash_bcrypt}/index.js +8 -2
  20. package/build/tools/crypto/{hash-md5 → hash_md5}/index.js +7 -1
  21. package/build/tools/crypto/{hash-sha1 → hash_sha1}/index.js +7 -1
  22. package/build/tools/crypto/{hash-sha256 → hash_sha256}/index.js +7 -1
  23. package/build/tools/crypto/{hash-sha512 → hash_sha512}/index.js +7 -1
  24. package/build/tools/{dataFormat/json-diff → data_format/compare_json}/index.js +8 -2
  25. package/build/tools/{dataFormat/html-to-markdown → data_format/convert_html_to_markdown}/index.js +8 -2
  26. package/build/tools/{dataFormat/json-to-csv → data_format/convert_json_to_csv}/index.js +8 -2
  27. package/build/tools/{dataFormat/json-to-toml → data_format/convert_json_to_toml}/index.js +8 -2
  28. package/build/tools/{dataFormat/markdown-to-html → data_format/convert_markdown_to_html}/index.js +8 -2
  29. package/build/tools/{dataFormat/toml-to-json → data_format/convert_toml_to_json}/index.js +8 -2
  30. package/build/tools/{dataFormat/json-format → data_format/format_json}/index.js +9 -3
  31. package/build/tools/{dataFormat/phone-format → data_format/format_phone}/index.js +8 -2
  32. package/build/tools/{dataFormat/sql-format → data_format/format_sql}/index.js +8 -2
  33. package/build/tools/{dataFormat/xml-format → data_format/format_xml}/index.js +8 -2
  34. package/build/tools/{dataFormat/yaml-format → data_format/format_yaml}/index.js +8 -2
  35. package/build/tools/{dataFormat/json-minify → data_format/minify_json}/index.js +9 -3
  36. package/build/tools/development/{list-converter → convert_list}/index.js +8 -2
  37. package/build/tools/development/{html-prettifier → format_html}/index.js +8 -2
  38. package/build/tools/development/{javascript-prettifier → format_javascript}/index.js +8 -2
  39. package/build/tools/development/{crontab-generate → generate_crontab}/index.js +8 -2
  40. package/build/tools/development/{markdown-toc-generator → generate_markdown_toc}/index.js +8 -2
  41. package/build/tools/development/{regex-tester → test_regex}/index.js +8 -2
  42. package/build/tools/docker/{docker-compose-to-docker-run → convert_docker_compose_to_run}/index.js +7 -1
  43. package/build/tools/docker/{docker-run-to-docker-compose → convert_docker_run_to_compose}/index.js +7 -1
  44. package/build/tools/docker/{traefik-compose-generator → generate_traefik_compose}/index.js +8 -2
  45. package/build/tools/docker/{docker-reference → show_docker_reference}/index.js +9 -3
  46. package/build/tools/docker/{docker-compose-validator → validate_docker_compose}/index.js +9 -3
  47. package/build/tools/encoding/{text-to-binary → convert_text_to_binary}/index.js +8 -2
  48. package/build/tools/encoding/{base64-decode → decode_base64}/index.js +8 -2
  49. package/build/tools/encoding/{html-decode → decode_html}/index.js +8 -2
  50. package/build/tools/encoding/{url-decode → decode_url}/index.js +8 -2
  51. package/build/tools/encoding/{base64-encode → encode_base64}/index.js +8 -2
  52. package/build/tools/encoding/{html-encode → encode_html}/index.js +8 -2
  53. package/build/tools/encoding/{html-entities-extended → encode_html_entities}/index.js +8 -2
  54. package/build/tools/encoding/{url-encode → encode_url}/index.js +8 -2
  55. package/build/tools/forensic/{safelink-decoder → decode_safelink}/index.js +8 -2
  56. package/build/tools/forensic/{url-fanger → fang_url}/index.js +8 -2
  57. package/build/tools/forensic/{file-type-identifier → identify_file_type}/index.js +8 -2
  58. package/build/tools/{idGenerators/qr-generate → id_generators/generate_qr_code}/index.js +8 -2
  59. package/build/tools/{idGenerators/svg-placeholder-generator → id_generators/generate_svg_placeholder}/index.js +8 -2
  60. package/build/tools/{idGenerators/ulid-generate → id_generators/generate_ulid}/index.js +10 -4
  61. package/build/tools/{idGenerators/uuid-generate → id_generators/generate_uuid}/index.js +9 -3
  62. package/build/tools/math/{percentage-calculator → calculate_percentage}/index.js +8 -2
  63. package/build/tools/math/{number-base-converter → convert_number_base}/index.js +8 -2
  64. package/build/tools/math/{roman-numeral-converter → convert_roman_numerals}/index.js +8 -2
  65. package/build/tools/math/{temperature-converter → convert_temperature}/index.js +8 -2
  66. package/build/tools/math/{unix-timestamp-converter → convert_unix_timestamp}/index.js +7 -1
  67. package/build/tools/math/{math-evaluate → evaluate_math}/index.js +8 -2
  68. package/build/tools/network/{ip-subnet-calculator → calculate_ip_subnet}/index.js +7 -1
  69. package/build/tools/network/{ipv4-subnet-calc → calculate_ipv4_subnet}/index.js +7 -1
  70. package/build/tools/network/{ipv6-subnet-calculator → calculate_ipv6_subnet}/index.js +7 -1
  71. package/build/tools/network/cat/index.js +6 -0
  72. package/build/tools/network/{cidr-to-ip-range → convert_cidr_to_ip_range}/index.js +7 -1
  73. package/build/tools/network/{ip-range-to-cidr → convert_ip_range_to_cidr}/index.js +7 -1
  74. package/build/tools/network/curl/index.js +6 -0
  75. package/build/tools/network/dig/index.js +6 -0
  76. package/build/tools/network/{ipv6-ula-generator → generate_ipv6_ula}/index.js +7 -1
  77. package/build/tools/network/{mac-address-generate → generate_mac_address}/index.js +7 -1
  78. package/build/tools/network/{random-port → generate_random_port}/index.js +7 -1
  79. package/build/tools/network/grep/index.js +6 -0
  80. package/build/tools/network/head/index.js +6 -0
  81. package/build/tools/network/nslookup/index.js +6 -0
  82. package/build/tools/network/{url-parse → parse_url}/index.js +7 -1
  83. package/build/tools/network/ping/index.js +6 -0
  84. package/build/tools/network/ps/index.js +7 -1
  85. package/build/tools/network/scp/index.js +6 -0
  86. package/build/tools/network/ssh/index.js +6 -0
  87. package/build/tools/network/tail/index.js +6 -0
  88. package/build/tools/network/telnet/index.js +6 -0
  89. package/build/tools/network/top/index.js +7 -1
  90. package/build/tools/network/{iban-validate → validate_iban}/index.js +7 -1
  91. package/build/tools/physics/{angle-converter → convert_angle}/index.js +7 -1
  92. package/build/tools/physics/{energy-converter → convert_energy}/index.js +7 -1
  93. package/build/tools/physics/{power-converter → convert_power}/index.js +7 -1
  94. package/build/tools/text/{distinct-words → analyze_distinct_words}/index.js +7 -1
  95. package/build/tools/text/{text-stats → analyze_text_stats}/index.js +7 -1
  96. package/build/tools/text/{text-capitalize → capitalize_text}/index.js +7 -1
  97. package/build/tools/text/{text-diff → compare_text}/index.js +7 -1
  98. package/build/tools/text/{text-camelcase → convert_text_to_camelcase}/index.js +8 -2
  99. package/build/tools/text/{text-kebabcase → convert_text_to_kebabcase}/index.js +7 -1
  100. package/build/tools/text/{text-lowercase → convert_text_to_lowercase}/index.js +7 -1
  101. package/build/tools/text/{text-to-nato-alphabet → convert_text_to_nato}/index.js +7 -1
  102. package/build/tools/text/{text-pascalcase → convert_text_to_pascalcase}/index.js +7 -1
  103. package/build/tools/text/{text-to-unicode → convert_text_to_unicode}/index.js +7 -1
  104. package/build/tools/text/{text-uppercase → convert_text_to_uppercase}/index.js +7 -1
  105. package/build/tools/text/{ascii-art-text → generate_ascii_art}/index.js +8 -2
  106. package/build/tools/text/{lorem-ipsum-generator → generate_lorem_ipsum}/index.js +7 -1
  107. package/build/tools/text/{numeronym-generator → generate_numeronym}/index.js +7 -1
  108. package/build/tools/text/{string-obfuscator → obfuscate_string}/index.js +7 -1
  109. package/build/tools/text/{emoji-search → search_emoji}/index.js +7 -1
  110. package/build/tools/text/{text-to-unicode-names → show_unicode_names}/index.js +7 -1
  111. package/build/tools/text/{slugify-string → slugify_text}/index.js +7 -1
  112. package/build/tools/text/{text-snakecase → text_snakecase}/index.js +7 -1
  113. package/build/tools/utility/{rem-px-converter → convert_rem_px}/index.js +7 -1
  114. package/build/tools/utility/{css-prettifier → format_css}/index.js +7 -1
  115. package/build/tools/utility/{http-status-codes → lookup_http_status}/index.js +7 -1
  116. package/build/tools/utility/{mime-types → lookup_mime_types}/index.js +7 -1
  117. package/build/tools/utility/{port-numbers → lookup_port_numbers}/index.js +7 -1
  118. package/build/tools/utility/{email-normalizer → normalize_email}/index.js +7 -1
  119. package/build/tools/utility/{device-info → show_device_info}/index.js +8 -2
  120. package/package.json +50 -6
@@ -84,7 +84,7 @@ Built with **TypeScript**, **Zod** validation, and **MCP SDK** for robust, type-
84
84
 
85
85
  This project was developed using **VS Code**, **Copilot Chat Agent**, **Playwright MCP**, and the **Claude Sonnet 4 Model**, showcasing modern AI-assisted software development:
86
86
 
87
- - 🔧 **All 112 tools** designed and implemented with AI assistance
87
+ - 🔧 **All tools** designed and implemented with AI assistance
88
88
  - 📦 **Complete Docker setup** with GitHub Actions CI/CD pipeline
89
89
  - 🔍 **Schema optimization** with systematic validation cleanup
90
90
  - 📚 **Comprehensive documentation** and tool catalogs
package/README.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  > **📝 Note**: A condensed version of this README is automatically synced to [Docker Hub](https://hub.docker.com/r/wrenchpilot/it-tools-mcp) due to character limits.
16
16
 
17
- A comprehensive Model Context Protocol (MCP) server that provides access to over 100 IT tools and utilities commonly used by developers, system administrators, and IT professionals. This server exposes a complete set of tools for encoding/decoding, text manipulation, hashing, network utilities, and many other common development and IT tasks.
17
+ A comprehensive Model Context Protocol (MCP) server that provides access to over 116 IT tools and utilities commonly used by developers, system administrators, and IT professionals. This server exposes a complete set of tools for encoding/decoding, text manipulation, hashing, network utilities, and many other common development and IT tasks.
18
18
 
19
19
  ## 📦 Installation & Setup
20
20
 
@@ -22,7 +22,7 @@ A comprehensive Model Context Protocol (MCP) server that provides access to over
22
22
 
23
23
  **Quick Install:**
24
24
 
25
- [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=it-tools&config=%7B%22command%22%3A%20%22npx%22%2C%22args%22%3A%20%5B%22it-tools-mcp%22%5D%7D) [![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install_Server-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=it-tools&config=%7B%22command%22%3A%20%22npx%22%2C%22args%22%3A%20%5B%22it-tools-mcp%22%5D%7D&quality=insiders)
25
+ [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22it-tools%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22it-tools-mcp%22%5D%7D) [![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install_Server-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders:mcp/install?%7B%22name%22%3A%22it-tools%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22it-tools-mcp%22%5D%7D)
26
26
 
27
27
  **Install:**
28
28
 
@@ -86,17 +86,17 @@ docker run -it --rm wrenchpilot/it-tools-mcp:latest
86
86
 
87
87
  ```bash
88
88
  # Generate a UUID
89
- echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"uuid-generate","arguments":{}}}' | \
89
+ echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"generate_uuid","arguments":{}}}' | \
90
90
  docker run -i --rm wrenchpilot/it-tools-mcp:latest
91
91
 
92
92
  # Encode text to Base64
93
- echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"base64-encode","arguments":{"text":"Hello World"}}}' | \
93
+ echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"encode_base64","arguments":{"text":"Hello World"}}}' | \
94
94
  docker run -i --rm wrenchpilot/it-tools-mcp:latest
95
95
  ```
96
96
 
97
97
  ## 🛠️ Tool Categories
98
98
 
99
- This MCP server provides over **100 tools** across **14 categories**:
99
+ This MCP server provides over **116 tools** across **14 categories**:
100
100
 
101
101
  - **� Ansible Tools** (5 tools): Vault encryption/decryption, inventory parser, playbook validator, reference
102
102
  - **🎨 Color Tools** (2 tools): Hex ↔ RGB conversion
@@ -130,131 +130,132 @@ Examples of using the IT Tools MCP server with VS Code Copilot Chat for secure p
130
130
  | Tool | Description | Parameters |
131
131
  | ------------------------------ | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
132
132
  | **Ansible Tools** | | |
133
- | `ansible-inventory-generator` | Generate Ansible inventory | `hosts: string[]`, `groups?: Record<string, string[]>`, `variables?: Record<string, any>` |
134
- | `ansible-playbook-validator` | Validate Ansible playbook YAML | `playbook: string` |
135
- | `ansible-reference` | Ansible syntax and module reference | `query?: string` |
136
- | `ansible-vault-decrypt` | Decrypt Ansible Vault data | `data: string`, `password: string` |
137
- | `ansible-vault-encrypt` | Encrypt data with Ansible Vault | `data: string`, `password: string` |
133
+ | `parse_ansible_inventory` | Parse Ansible inventory | `inventory: string` |
134
+ | `generate_ansible_inventory` | Generate Ansible inventory | `hosts: string[]`, `groups?: Record<string, string[]>`, `variables?: Record<string, any>` |
135
+ | `validate_ansible_playbook` | Validate Ansible playbook YAML | `playbook: string` |
136
+ | `show_ansible_reference` | Ansible syntax and module reference | `query?: string` |
137
+ | `decrypt_ansible_vault` | Decrypt Ansible Vault data | `data: string`, `password: string` |
138
+ | `encrypt_ansible_vault` | Encrypt data with Ansible Vault | `data: string`, `password: string` |
138
139
  | **Color Tools** | | |
139
- | `color-hex-to-rgb` | Convert HEX to RGB | `hex: string` |
140
- | `color-rgb-to-hex` | Convert RGB to HEX | `r: number`, `g: number`, `b: number` |
140
+ | `convert_hex_to_rgb` | Convert HEX to RGB | `hex: string` |
141
+ | `convert_rgb_to_hex` | Convert RGB to HEX | `r: number`, `g: number`, `b: number` |
141
142
  | **Data Format** | | |
142
- | `html-to-markdown` | Convert HTML to Markdown | `html: string` |
143
- | `json-diff` | Compare JSON objects | `json1: string`, `json2: string` |
144
- | `json-format` | Format and validate JSON | `json: string`, `indent?: number` |
145
- | `json-minify` | Minify JSON | `json: string` |
146
- | `json-to-csv` | Convert JSON to CSV | `json: string`, `delimiter?: string` |
147
- | `json-to-toml` | Convert JSON to TOML | `json: string` |
148
- | `markdown-to-html` | Convert Markdown to HTML | `markdown: string` |
149
- | `phone-format` | Parse and format phone numbers | `phoneNumber: string`, `countryCode?: string` |
150
- | `sql-format` | Format SQL | `sql: string`, `dialect?: 'sql' \| 'mysql' \| 'postgresql' \| 'sqlite' \| 'mariadb' \| 'db2' \| 'plsql' \| 'n1ql' \| 'redshift' \| 'spark' \| 'tsql' \| 'trino' \| 'bigquery'` (optional, default: 'sql') |
151
- | `toml-to-json` | Convert TOML to JSON | `toml: string` |
152
- | `xml-format` | Format XML | `xml: string`, `indent?: number` |
153
- | `yaml-format` | Format YAML | `yaml: string` |
143
+ | `convert_html_to_markdown` | Convert HTML to Markdown | `html: string` |
144
+ | `compare_json` | Compare JSON objects | `json1: string`, `json2: string` |
145
+ | `format_json` | Format and validate JSON | `json: string`, `indent?: number` |
146
+ | `minify_json` | Minify JSON | `json: string` |
147
+ | `convert_json_to_csv` | Convert JSON to CSV | `json: string`, `delimiter?: string` |
148
+ | `convert_json_to_toml` | Convert JSON to TOML | `json: string` |
149
+ | `convert_markdown_to_html` | Convert Markdown to HTML | `markdown: string` |
150
+ | `format_phone` | Parse and format phone numbers | `phoneNumber: string`, `countryCode?: string` |
151
+ | `format_sql` | Format SQL | `sql: string`, `dialect?: 'sql' \| 'mysql' \| 'postgresql' \| 'sqlite' \| 'mariadb' \| 'db2' \| 'plsql' \| 'n1ql' \| 'redshift' \| 'spark' \| 'tsql' \| 'trino' \| 'bigquery'` (optional, default: 'sql') |
152
+ | `convert_toml_to_json` | Convert TOML to JSON | `toml: string` |
153
+ | `format_xml` | Format XML | `xml: string`, `indent?: number` |
154
+ | `format_yaml` | Format YAML | `yaml: string` |
154
155
  | **Development Tools** | | |
155
- | `crontab-generate` | Generate cron expressions | `minute?: string`, `hour?: string`, `dayOfMonth?: string`, `month?: string`, `dayOfWeek?: string` |
156
- | `html-prettifier` | Format and prettify HTML | `html: string`, `indent?: number` |
157
- | `javascript-prettifier` | Format and prettify JavaScript | `javascript: string`, `indent?: number` |
158
- | `list-converter` | Convert list formats | `list: string`, `inputFormat: 'comma' \| 'semicolon' \| 'newline' \| 'space' \| 'pipe'`, `outputFormat: 'comma' \| 'semicolon' \| 'newline' \| 'space' \| 'pipe' \| 'json' \| 'quoted'`, `trim?: boolean` |
159
- | `markdown-toc-generator` | Generate table of contents for Markdown | `markdown: string`, `maxDepth?: number` |
160
- | `regex-tester` | Test regular expressions | `pattern: string`, `text: string`, `flags?: string` |
156
+ | `generate_crontab` | Generate cron expressions | `minute?: string`, `hour?: string`, `dayOfMonth?: string`, `month?: string`, `dayOfWeek?: string` |
157
+ | `format_html` | Format and prettify HTML | `html: string`, `indent?: number` |
158
+ | `format_javascript` | Format and prettify JavaScript | `javascript: string`, `indent?: number` |
159
+ | `convert_list` | Convert list formats | `list: string`, `inputFormat: 'comma' \| 'semicolon' \| 'newline' \| 'space' \| 'pipe'`, `outputFormat: 'comma' \| 'semicolon' \| 'newline' \| 'space' \| 'pipe' \| 'json' \| 'quoted'`, `trim?: boolean` |
160
+ | `generate_markdown_toc` | Generate table of contents for Markdown | `markdown: string`, `maxDepth?: number` |
161
+ | `test_regex` | Test regular expressions | `pattern: string`, `text: string`, `flags?: string` |
161
162
  | **Docker Tools** | | |
162
- | `docker-compose-to-docker-run` | Convert Compose to Docker run command | `compose: string`, `service?: string` |
163
- | `docker-compose-validator` | Validate Docker Compose YAML | `compose: string` |
164
- | `docker-reference` | Docker command and syntax reference | `query?: string` |
165
- | `docker-run-to-docker-compose` | Convert Docker run to Compose | `command: string` |
166
- | `traefik-compose-generator` | Generate Traefik Docker Compose | `domain: string`, `service: string`, `port?: number`, `network?: string` |
163
+ | `convert_docker_compose_to_run` | Convert Compose to Docker run command | `compose: string`, `service?: string` |
164
+ | `validate_docker_compose` | Validate Docker Compose YAML | `compose: string` |
165
+ | `show_docker_reference` | Docker command and syntax reference | `query?: string` |
166
+ | `convert_docker_run_to_compose` | Convert Docker run to Compose | `command: string` |
167
+ | `generate_traefik_compose` | Generate Traefik Docker Compose | `domain: string`, `service: string`, `port?: number`, `network?: string` |
167
168
  | **Encoding & Decoding** | | |
168
- | `base64-decode` | Decode Base64 text | `text: string` |
169
- | `base64-encode` | Encode text to Base64 | `text: string` |
170
- | `html-decode` | Decode HTML entities | `text: string` |
171
- | `html-encode` | Encode HTML entities | `text: string` |
172
- | `html-entities-extended` | Extended HTML entity encoding/decoding | `text: string`, `operation: 'encode' \| 'decode'` |
173
- | `text-to-binary` | Convert text to binary and vice versa | `input: string`, `operation: 'encode' \| 'decode'` |
174
- | `text-to-unicode` | Convert text to Unicode and vice versa | `input: string`, `operation: 'encode' \| 'decode'` |
175
- | `url-decode` | URL decode text | `text: string` |
176
- | `url-encode` | URL encode text | `text: string` |
169
+ | `decode_base64` | Decode Base64 text | `text: string` |
170
+ | `encode_base64` | Encode text to Base64 | `text: string` |
171
+ | `decode_html` | Decode HTML entities | `text: string` |
172
+ | `encode_html` | Encode HTML entities | `text: string` |
173
+ | `encode_html_entities` | Extended HTML entity encoding/decoding | `text: string`, `operation: 'encode' \| 'decode'` |
174
+ | `convert_text_to_binary` | Convert text to binary and vice versa | `input: string`, `operation: 'encode' \| 'decode'` |
175
+ | `convert_text_to_unicode` | Convert text to Unicode and vice versa | `input: string`, `operation: 'encode' \| 'decode'` |
176
+ | `decode_url` | URL decode text | `text: string` |
177
+ | `encode_url` | URL encode text | `text: string` |
177
178
  | **Forensic Tools** | | |
178
- | `file-type-identifier` | Identify file type from content | `data: string`, `filename?: string` |
179
- | `safelink-decoder` | Decode Microsoft SafeLinks | `url: string` |
180
- | `url-fanger` | Fang and defang URLs for analysis | `text: string`, `operation: 'fang' \| 'defang'` |
179
+ | `identify_file_type` | Identify file type from content | `data: string`, `filename?: string` |
180
+ | `decode_safelink` | Decode Microsoft SafeLinks | `url: string` |
181
+ | `fang_url` | Fang and defang URLs for analysis | `text: string`, `operation: 'fang' \| 'defang'` |
181
182
  | **ID & Code Generators** | | |
182
- | `qr-generate` | Generate QR codes for any content | `text: string`, `size?: number` - Supports URLs, WiFi (WIFI:T:WPA;S:network;P:password;;), contact info, etc. |
183
- | `svg-placeholder-generator` | Generate SVG placeholder | `width?: number`, `height?: number`, `text?: string`, `backgroundColor?: string`, `textColor?: string` |
184
- | `ulid-generate` | Generate ULID | None |
185
- | `uuid-generate` | Generate UUID v4 | None |
183
+ | `generate_qr_code` | Generate QR codes for any content | `text: string`, `size?: number` - Supports URLs, WiFi (WIFI:T:WPA;S:network;P:password;;), contact info, etc. |
184
+ | `generate_svg_placeholder` | Generate SVG placeholder | `width?: number`, `height?: number`, `text?: string`, `backgroundColor?: string`, `textColor?: string` |
185
+ | `generate_ulid` | Generate ULID | None |
186
+ | `generate_uuid` | Generate UUID v4 | None |
186
187
  | **Math & Calculations** | | |
187
- | `math-evaluate` | Evaluate expressions | `expression: string` |
188
- | `number-base-converter` | Convert number bases | `number: string`, `fromBase: number`, `toBase: number` |
189
- | `percentage-calculator` | Calculate percentages | `operation: 'percentage-of' \| 'what-percentage' \| 'percentage-change'`, `value1: number`, `value2: number` |
190
- | `roman-numeral-converter` | Convert Roman numerals | `input: string` |
191
- | `temperature-converter` | Convert temperatures | `temperature: number`, `from: 'celsius' \| 'fahrenheit' \| 'kelvin'`, `to: 'celsius' \| 'fahrenheit' \| 'kelvin'` |
192
- | `unix-timestamp-converter` | Convert timestamps | `input: string` |
188
+ | `evaluate_math` | Evaluate expressions | `expression: string` |
189
+ | `convert_number_base` | Convert number bases | `number: string`, `fromBase: number`, `toBase: number` |
190
+ | `calculate_percentage` | Calculate percentages | `operation: 'percentage-of' \| 'what-percentage' \| 'percentage-change'`, `value1: number`, `value2: number` |
191
+ | `convert_roman_numerals` | Convert Roman numerals | `input: string` |
192
+ | `convert_temperature` | Convert temperatures | `temperature: number`, `from: 'celsius' \| 'fahrenheit' \| 'kelvin'`, `to: 'celsius' \| 'fahrenheit' \| 'kelvin'` |
193
+ | `convert_unix_timestamp` | Convert timestamps | `input: string` |
193
194
  | **Network & System** | | |
194
195
  | `cat` | Display file content | `file: string` |
195
196
  | `curl` | HTTP client (GET, POST, etc.) | `url: string`, `method?: string`, `headers?: Record<string, string>`, `body?: string` |
196
197
  | `dig` | DNS query (custom type) | `target: string`, `type?: string` |
197
198
  | `grep` | Search for pattern in file | `file: string`, `pattern: string` |
198
199
  | `head` | Show first N lines of file | `file: string`, `lines?: number` |
199
- | `iban-validate` | Validate IBAN | `iban: string` |
200
- | `ip-subnet-calculator` | Calculate IPv4 subnet | `ip: string`, `cidr: number` |
201
- | `ipv4-subnet-calc` | Enhanced IPv4 subnet calc | `cidr: string` |
202
- | `ipv6-ula-generator` | Generate IPv6 ULA | `globalId?: string` |
203
- | `mac-address-generate` | Generate MAC address | `prefix?: string`, `separator?: ':' \| '-'` |
200
+ | `validate_iban` | Validate IBAN | `iban: string` |
201
+ | `calculate_ip_subnet` | Calculate IPv4 subnet | `ip: string`, `cidr: number` |
202
+ | `calculate_ipv4_subnet` | Enhanced IPv4 subnet calc | `cidr: string` |
203
+ | `generate_ipv6_ula` | Generate IPv6 ULA | `globalId?: string` |
204
+ | `generate_mac_address` | Generate MAC address | `prefix?: string`, `separator?: ':' \| '-'` |
204
205
  | `nslookup` | DNS lookup (A/AAAA/CNAME) | `target: string` |
205
206
  | `ping` | Ping a host | `target: string`, `count?: number` |
206
207
  | `ps` | List running processes | None |
207
- | `random-port` | Generate random ports | `count?: number`, `min?: number`, `max?: number`, `exclude?: number[]` |
208
+ | `generate_random_port` | Generate random ports | `count?: number`, `min?: number`, `max?: number`, `exclude?: number[]` |
208
209
  | `scp` | Copy files to/from remote host (SFTP) | `target: string`, `user: string`, `direction: 'upload'\|'download'`, `localPath: string`, `remotePath: string`, `privateKey?: string` |
209
210
  | `ssh` | SSH command execution | `target: string`, `user: string`, `command: string` |
210
211
  | `tail` | Show last N lines of file | `file: string`, `lines?: number` |
211
212
  | `telnet` | Test TCP connectivity | `target: string`, `port: number` |
212
213
  | `top` | Show top processes (by CPU) | None |
213
- | `url-parse` | Parse URL components | `url: string` |
214
+ | `parse_url` | Parse URL components | `url: string` |
214
215
  | **Physics** | | |
215
- | `angle-converter` | Convert angle units | `value: number`, `from: 'degrees' \| 'radians' \| 'gradians'`, `to: 'degrees' \| 'radians' \| 'gradians'` |
216
- | `energy-converter` | Convert energy units | `value: number`, `from: 'joules' \| 'calories' \| 'kwh' \| 'btu'`, `to: 'joules' \| 'calories' \| 'kwh' \| 'btu'` |
217
- | `power-converter` | Convert power units | `value: number`, `from: 'watts' \| 'kilowatts' \| 'horsepower' \| 'btu_per_hour'`, `to: 'watts' \| 'kilowatts' \| 'horsepower' \| 'btu_per_hour'` |
216
+ | `convert_angle` | Convert angle units | `value: number`, `from: 'degrees' \| 'radians' \| 'gradians'`, `to: 'degrees' \| 'radians' \| 'gradians'` |
217
+ | `convert_energy` | Convert energy units | `value: number`, `from: 'joules' \| 'calories' \| 'kwh' \| 'btu'`, `to: 'joules' \| 'calories' \| 'kwh' \| 'btu'` |
218
+ | `convert_power` | Convert power units | `value: number`, `from: 'watts' \| 'kilowatts' \| 'horsepower' \| 'btu_per_hour'`, `to: 'watts' \| 'kilowatts' \| 'horsepower' \| 'btu_per_hour'` |
218
219
  | **Security & Crypto** | | |
219
- | `basic-auth-generator` | Generate Basic Auth header | `username: string`, `password: string` |
220
- | `bcrypt-hash` | Generate/verify bcrypt hash | `password: string`, `rounds?: number`, `hash?: string` |
221
- | `bip39-generate` | Generate BIP39 mnemonic | `wordCount?: '12' \| '15' \| '18' \| '21' \| '24'` |
222
- | `hash-md5` | Generate MD5 hash | `text: string` |
223
- | `hash-sha1` | Generate SHA1 hash | `text: string` |
224
- | `hash-sha256` | Generate SHA256 hash | `text: string` |
225
- | `hash-sha512` | Generate SHA512 hash | `text: string` |
226
- | `hmac-generator` | Generate HMAC | `message: string`, `key: string`, `algorithm?: 'sha1' \| 'sha256' \| 'sha512'` |
227
- | `jwt-decode` | Decode JWT token | `token: string` |
228
- | `otp-code-generator` | Generate TOTP codes | `secret: string`, `digits?: number`, `period?: number` |
229
- | `password-generate` | Generate secure password | `length?: number`, `includeUppercase?: boolean`, `includeLowercase?: boolean`, `includeNumbers?: boolean`, `includeSymbols?: boolean` |
230
- | `token-generator` | Generate secure token | `length?: number`, `charset?: 'alphanumeric' \| 'hex' \| 'base64' \| 'custom'`, `customChars?: string` |
220
+ | `generate_basic_auth` | Generate Basic Auth header | `username: string`, `password: string` |
221
+ | `hash_bcrypt` | Generate/verify bcrypt hash | `password: string`, `rounds?: number`, `hash?: string` |
222
+ | `generate_bip39` | Generate BIP39 mnemonic | `wordCount?: '12' \| '15' \| '18' \| '21' \| '24'` |
223
+ | `hash_md5` | Generate MD5 hash | `text: string` |
224
+ | `hash_sha1` | Generate SHA1 hash | `text: string` |
225
+ | `hash_sha256` | Generate SHA256 hash | `text: string` |
226
+ | `hash_sha512` | Generate SHA512 hash | `text: string` |
227
+ | `generate_hmac` | Generate HMAC | `message: string`, `key: string`, `algorithm?: 'sha1' \| 'sha256' \| 'sha512'` |
228
+ | `decode_jwt` | Decode JWT token | `token: string` |
229
+ | `generate_otp` | Generate TOTP codes | `secret: string`, `digits?: number`, `period?: number` |
230
+ | `generate_password` | Generate secure password | `length?: number`, `includeUppercase?: boolean`, `includeLowercase?: boolean`, `includeNumbers?: boolean`, `includeSymbols?: boolean` |
231
+ | `generate_token` | Generate secure token | `length?: number`, `charset?: 'alphanumeric' \| 'hex' \| 'base64' \| 'custom'`, `customChars?: string` |
231
232
  | **Text Processing** | | |
232
- | `ascii-art-text` | Generate ASCII art | `text: string`, `font?: string` (supports 295+ figlet fonts) |
233
- | `distinct-words` | Extract unique words from text | `text: string`, `caseSensitive?: boolean` |
234
- | `emoji-search` | Search emojis | `query: string` |
235
- | `lorem-ipsum-generator` | Generate Lorem Ipsum | `type?: 'words' \| 'sentences' \| 'paragraphs'`, `count?: number` |
236
- | `numeronym-generator` | Generate numeronyms | `text: string` |
237
- | `slugify-string` | Convert to URL slug | `text: string`, `separator?: string`, `lowercase?: boolean` |
238
- | `string-obfuscator` | Obfuscate text | `text: string`, `method?: 'html-entities' \| 'unicode' \| 'base64'` |
239
- | `text-camelcase` | Convert to camelCase | `text: string` |
240
- | `text-capitalize` | Capitalize words | `text: string` |
241
- | `text-diff` | Compare texts | `text1: string`, `text2: string` |
242
- | `text-kebabcase` | Convert to kebab-case | `text: string` |
243
- | `text-lowercase` | Convert to lowercase | `text: string` |
244
- | `text-pascalcase` | Convert to PascalCase | `text: string` |
245
- | `text-snakecase` | Convert to snake_case | `text: string` |
246
- | `text-stats` | Get text statistics | `text: string` |
247
- | `text-to-nato-alphabet` | Convert to NATO alphabet | `text: string` |
248
- | `text-to-unicode-names` | Convert text to Unicode character names | `text: string` |
249
- | `text-uppercase` | Convert to uppercase | `text: string` |
233
+ | `generate_ascii_art` | Generate ASCII art | `text: string`, `font?: string` (supports 295+ figlet fonts) |
234
+ | `analyze_distinct_words` | Extract unique words from text | `text: string`, `caseSensitive?: boolean` |
235
+ | `search_emoji` | Search emojis | `query: string` |
236
+ | `generate_lorem_ipsum` | Generate Lorem Ipsum | `type?: 'words' \| 'sentences' \| 'paragraphs'`, `count?: number` |
237
+ | `generate_numeronym` | Generate numeronyms | `text: string` |
238
+ | `slugify_text` | Convert to URL slug | `text: string`, `separator?: string`, `lowercase?: boolean` |
239
+ | `obfuscate_string` | Obfuscate text | `text: string`, `method?: 'html-entities' \| 'unicode' \| 'base64'` |
240
+ | `convert_to_camelcase` | Convert to camelCase | `text: string` |
241
+ | `capitalize_text` | Capitalize words | `text: string` |
242
+ | `compare_text` | Compare texts | `text1: string`, `text2: string` |
243
+ | `convert_text_to_kebabcase` | Convert to kebab-case | `text: string` |
244
+ | `convert_text_to_lowercase` | Convert to lowercase | `text: string` |
245
+ | `convert_text_to_pascalcase` | Convert to PascalCase | `text: string` |
246
+ | `text_snakecase` | Convert to snake_case | `text: string` |
247
+ | `analyze_text_stats` | Get text statistics | `text: string` |
248
+ | `convert_text_to_nato` | Convert to NATO alphabet | `text: string` |
249
+ | `show_unicode_names` | Convert text to Unicode character names | `text: string` |
250
+ | `convert_text_to_uppercase` | Convert to uppercase | `text: string` |
250
251
  | **Utility Tools** | | |
251
- | `css-prettifier` | Format and prettify CSS | `css: string`, `indent?: number` |
252
- | `device-info` | Get system information | None |
253
- | `email-normalizer` | Normalize email addresses | `email: string` |
254
- | `http-status-codes` | HTTP status reference | `code?: number` |
255
- | `mime-types` | Look up MIME types | `input: string`, `lookupType?: 'extension-to-mime' \| 'mime-to-extension'` |
256
- | `port-numbers` | Look up port number assignments | `port?: number`, `service?: string` |
257
- | `rem-px-converter` | Convert between REM and PX units | `value: number`, `conversion: 'rem-to-px' \| 'px-to-rem'`, `baseFontSize?: number` |
252
+ | `format_css` | Format and prettify CSS | `css: string`, `indent?: number` |
253
+ | `show_device_info` | Get system information | None |
254
+ | `normalize_email` | Normalize email addresses | `email: string` |
255
+ | `lookup_http_status` | HTTP status reference | `code?: number` |
256
+ | `lookup_mime_types` | Look up MIME types | `input: string`, `lookupType?: 'extension-to-mime' \| 'mime-to-extension'` |
257
+ | `lookup_port_numbers` | Look up port number assignments | `port?: number`, `service?: string` |
258
+ | `convert_rem_px` | Convert between REM and PX units | `value: number`, `conversion: 'rem-to-px' \| 'px-to-rem'`, `baseFontSize?: number` |
258
259
 
259
260
  ## 🏗️ Architecture & Development
260
261