it-tools-mcp 5.8.3 → 5.8.6

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 (118) hide show
  1. package/build/index.js +1 -5
  2. package/build/tools/ansible/decrypt_ansible_vault/index.js +1 -0
  3. package/build/tools/ansible/encrypt_ansible_vault/index.js +1 -0
  4. package/build/tools/ansible/generate_ansible_inventory/index.js +1 -0
  5. package/build/tools/ansible/parse_ansible_inventory/index.js +1 -0
  6. package/build/tools/ansible/show_ansible_reference/index.js +1 -0
  7. package/build/tools/ansible/validate_ansible_playbook/index.js +1 -0
  8. package/build/tools/color/convert_hex_to_rgb/index.js +1 -0
  9. package/build/tools/color/convert_rgb_to_hex/index.js +1 -0
  10. package/build/tools/crypto/decode_jwt/index.js +1 -0
  11. package/build/tools/crypto/generate_basic_auth/index.js +1 -0
  12. package/build/tools/crypto/generate_bip39/index.js +1 -0
  13. package/build/tools/crypto/generate_hmac/index.js +1 -0
  14. package/build/tools/crypto/generate_otp/index.js +1 -0
  15. package/build/tools/crypto/generate_password/index.js +1 -0
  16. package/build/tools/crypto/generate_token/index.js +1 -0
  17. package/build/tools/crypto/hash_bcrypt/index.js +1 -0
  18. package/build/tools/crypto/hash_md5/index.js +1 -0
  19. package/build/tools/crypto/hash_sha1/index.js +1 -0
  20. package/build/tools/crypto/hash_sha256/index.js +1 -0
  21. package/build/tools/crypto/hash_sha512/index.js +1 -0
  22. package/build/tools/data_format/compare_json/index.js +1 -0
  23. package/build/tools/data_format/convert_html_to_markdown/index.js +1 -0
  24. package/build/tools/data_format/convert_json_to_csv/index.js +1 -0
  25. package/build/tools/data_format/convert_json_to_toml/index.js +1 -0
  26. package/build/tools/data_format/convert_markdown_to_html/index.js +1 -0
  27. package/build/tools/data_format/convert_toml_to_json/index.js +1 -0
  28. package/build/tools/data_format/format_json/index.js +1 -0
  29. package/build/tools/data_format/format_phone/index.js +1 -0
  30. package/build/tools/data_format/format_sql/index.js +1 -0
  31. package/build/tools/data_format/format_xml/index.js +1 -0
  32. package/build/tools/data_format/format_yaml/index.js +1 -0
  33. package/build/tools/data_format/minify_json/index.js +1 -0
  34. package/build/tools/development/convert_list/index.js +1 -0
  35. package/build/tools/development/format_html/index.js +1 -0
  36. package/build/tools/development/format_javascript/index.js +1 -0
  37. package/build/tools/development/generate_crontab/index.js +1 -0
  38. package/build/tools/development/generate_markdown_toc/index.js +1 -0
  39. package/build/tools/development/test_regex/index.js +1 -0
  40. package/build/tools/docker/convert_docker_compose_to_run/index.js +1 -0
  41. package/build/tools/docker/convert_docker_run_to_compose/index.js +1 -0
  42. package/build/tools/docker/generate_traefik_compose/index.js +1 -0
  43. package/build/tools/docker/show_docker_reference/index.js +1 -0
  44. package/build/tools/docker/validate_docker_compose/index.js +1 -0
  45. package/build/tools/encoding/convert_text_to_binary/index.js +1 -0
  46. package/build/tools/encoding/decode_base64/index.js +1 -0
  47. package/build/tools/encoding/decode_html/index.js +1 -0
  48. package/build/tools/encoding/decode_url/index.js +1 -0
  49. package/build/tools/encoding/encode_base64/index.js +1 -0
  50. package/build/tools/encoding/encode_html/index.js +1 -0
  51. package/build/tools/encoding/encode_html_entities/index.js +1 -0
  52. package/build/tools/encoding/encode_url/index.js +1 -0
  53. package/build/tools/forensic/decode_safelink/index.js +1 -0
  54. package/build/tools/forensic/fang_url/index.js +1 -0
  55. package/build/tools/forensic/identify_file_type/index.js +1 -0
  56. package/build/tools/id_generators/generate_qr_code/index.js +1 -0
  57. package/build/tools/id_generators/generate_svg_placeholder/index.js +1 -0
  58. package/build/tools/id_generators/generate_ulid/index.js +1 -0
  59. package/build/tools/id_generators/generate_uuid/index.js +1 -0
  60. package/build/tools/math/calculate_percentage/index.js +1 -0
  61. package/build/tools/math/convert_number_base/index.js +1 -0
  62. package/build/tools/math/convert_roman_numerals/index.js +1 -0
  63. package/build/tools/math/convert_temperature/index.js +1 -0
  64. package/build/tools/math/convert_unix_timestamp/index.js +1 -0
  65. package/build/tools/math/evaluate_math/index.js +1 -0
  66. package/build/tools/network/calculate_ip_subnet/index.js +1 -0
  67. package/build/tools/network/calculate_ipv4_subnet/index.js +1 -0
  68. package/build/tools/network/calculate_ipv6_subnet/index.js +1 -0
  69. package/build/tools/network/cat/index.js +1 -0
  70. package/build/tools/network/convert_cidr_to_ip_range/index.js +1 -0
  71. package/build/tools/network/convert_ip_range_to_cidr/index.js +1 -0
  72. package/build/tools/network/curl/index.js +1 -0
  73. package/build/tools/network/dig/index.js +1 -0
  74. package/build/tools/network/generate_ipv6_ula/index.js +1 -0
  75. package/build/tools/network/generate_mac_address/index.js +1 -0
  76. package/build/tools/network/generate_random_port/index.js +1 -0
  77. package/build/tools/network/grep/index.js +1 -0
  78. package/build/tools/network/head/index.js +1 -0
  79. package/build/tools/network/nslookup/index.js +1 -0
  80. package/build/tools/network/parse_url/index.js +1 -0
  81. package/build/tools/network/ping/index.js +1 -0
  82. package/build/tools/network/ps/index.js +1 -0
  83. package/build/tools/network/scp/index.js +1 -0
  84. package/build/tools/network/ssh/index.js +1 -0
  85. package/build/tools/network/tail/index.js +1 -0
  86. package/build/tools/network/telnet/index.js +1 -0
  87. package/build/tools/network/top/index.js +1 -0
  88. package/build/tools/network/validate_iban/index.js +1 -0
  89. package/build/tools/physics/convert_angle/index.js +1 -0
  90. package/build/tools/physics/convert_energy/index.js +1 -0
  91. package/build/tools/physics/convert_power/index.js +1 -0
  92. package/build/tools/text/analyze_distinct_words/index.js +1 -0
  93. package/build/tools/text/analyze_text_stats/index.js +1 -0
  94. package/build/tools/text/capitalize_text/index.js +1 -0
  95. package/build/tools/text/compare_text/index.js +1 -0
  96. package/build/tools/text/convert_text_to_camelcase/index.js +1 -0
  97. package/build/tools/text/convert_text_to_kebabcase/index.js +1 -0
  98. package/build/tools/text/convert_text_to_lowercase/index.js +1 -0
  99. package/build/tools/text/convert_text_to_nato/index.js +1 -0
  100. package/build/tools/text/convert_text_to_pascalcase/index.js +1 -0
  101. package/build/tools/text/convert_text_to_unicode/index.js +1 -0
  102. package/build/tools/text/convert_text_to_uppercase/index.js +1 -0
  103. package/build/tools/text/generate_ascii_art/index.js +1 -0
  104. package/build/tools/text/generate_lorem_ipsum/index.js +1 -0
  105. package/build/tools/text/generate_numeronym/index.js +1 -0
  106. package/build/tools/text/obfuscate_string/index.js +1 -0
  107. package/build/tools/text/search_emoji/index.js +1 -0
  108. package/build/tools/text/show_unicode_names/index.js +1 -0
  109. package/build/tools/text/slugify_text/index.js +1 -0
  110. package/build/tools/text/text_snakecase/index.js +1 -0
  111. package/build/tools/utility/convert_rem_px/index.js +1 -0
  112. package/build/tools/utility/format_css/index.js +1 -0
  113. package/build/tools/utility/lookup_http_status/index.js +1 -0
  114. package/build/tools/utility/lookup_mime_types/index.js +1 -0
  115. package/build/tools/utility/lookup_port_numbers/index.js +1 -0
  116. package/build/tools/utility/normalize_email/index.js +1 -0
  117. package/build/tools/utility/show_device_info/index.js +1 -0
  118. package/package.json +1 -1
package/build/index.js CHANGED
@@ -258,10 +258,6 @@ const server = new McpServer({
258
258
  prompts: {
259
259
  listChanged: true
260
260
  },
261
- sampling: {},
262
- roots: {
263
- listChanged: true
264
- },
265
261
  logging: {},
266
262
  completions: {}
267
263
  }
@@ -658,7 +654,7 @@ server.registerPrompt("security-check", {
658
654
  }
659
655
  }]
660
656
  }));
661
- // VS Code MCP Compliance: Sampling and Roots are declared in capabilities
657
+ // VS Code MCP Compliance: Completions are declared in capabilities
662
658
  // The MCP SDK handles these automatically when capabilities are declared
663
659
  // Helper functions for VS Code MCP compliance features
664
660
  async function getLogContent(type) {
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import { pbkdf2Sync } from "crypto";
3
3
  export function registerDecryptAnsibleVault(server) {
4
4
  server.registerTool("decrypt_ansible_vault", {
5
+ description: "Decrypt Ansible Vault encrypted text",
5
6
  inputSchema: {
6
7
  encryptedText: z.string().describe("Ansible Vault encrypted text to decrypt"),
7
8
  password: z.string().describe("Password for decryption"),
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import { pbkdf2Sync, randomBytes } from "crypto";
3
3
  export function registerEncryptAnsibleVault(server) {
4
4
  server.registerTool("encrypt_ansible_vault", {
5
+ description: "Encrypt text using Ansible Vault format",
5
6
  inputSchema: {
6
7
  text: z.string().describe("Text to encrypt"),
7
8
  password: z.string().describe("Password for encryption"),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerAnsibleInventoryParser(server) {
3
3
  server.registerTool("generate_ansible_inventory", {
4
+ description: "Parse and validate Ansible inventory files",
4
5
  inputSchema: {
5
6
  inventory: z.string().describe("Ansible inventory content (INI or YAML format)"),
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerAnsibleInventoryParser(server) {
3
3
  server.registerTool("parse_ansible_inventory", {
4
+ description: "Parse and validate Ansible inventory files",
4
5
  inputSchema: {
5
6
  inventory: z.string().describe("Ansible inventory content (INI or YAML format)"),
6
7
  },
@@ -1,5 +1,6 @@
1
1
  export function registerReferenceAnsible(server) {
2
2
  server.registerTool("show_ansible_reference", {
3
+ description: "Get Ansible commands reference and cheatsheet",
3
4
  inputSchema: {},
4
5
  // VS Code compliance annotations
5
6
  annotations: {
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerValidateAnsiblePlaybook(server) {
3
3
  server.registerTool("validate_ansible_playbook", {
4
+ description: "Validate Ansible playbook syntax and structure",
4
5
  inputSchema: {
5
6
  playbook: z.string().describe("Ansible playbook YAML content"),
6
7
  },
@@ -2,6 +2,7 @@ import Color from "color";
2
2
  import { z } from "zod";
3
3
  export function registerConvertHexRgb(server) {
4
4
  server.registerTool("convert_hex_to_rgb", {
5
+ description: "Convert HEX color to RGB",
5
6
  inputSchema: {
6
7
  hex: z.string().describe("HEX color code (e.g., #FF5733 or FF5733)"),
7
8
  },
@@ -2,6 +2,7 @@ import Color from "color";
2
2
  import { z } from "zod";
3
3
  export function registerConvertRgbHex(server) {
4
4
  server.registerTool("convert_rgb_to_hex", {
5
+ description: "Convert RGB color to HEX",
5
6
  inputSchema: {
6
7
  r: z.number().describe("Red value (0-255)"),
7
8
  g: z.number().describe("Green value (0-255)"),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerDecodeJwt(server) {
3
3
  server.registerTool("decode_jwt", {
4
+ description: "Decode JWT token (header and payload only)",
4
5
  inputSchema: {
5
6
  token: z.string().describe("JWT token to decode"),
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerGenerateAuth(server) {
3
3
  server.registerTool("generate_basic_auth", {
4
+ description: "Generate HTTP Basic Authentication header",
4
5
  inputSchema: {
5
6
  username: z.string().describe("Username"),
6
7
  password: z.string().describe("Password"),
@@ -2,6 +2,7 @@ import * as bip39 from "bip39";
2
2
  import { z } from "zod";
3
3
  export function registerGenerateBip39(server) {
4
4
  server.registerTool("generate_bip39", {
5
+ description: "Generate BIP39 mnemonic phrases",
5
6
  inputSchema: {
6
7
  wordCount: z.enum(["12", "15", "18", "21", "24"]).describe("Number of words in the mnemonic").optional(),
7
8
  },
@@ -2,6 +2,7 @@ import { createHmac } from "crypto";
2
2
  import { z } from "zod";
3
3
  export function registerGenerateHmac(server) {
4
4
  server.registerTool("generate_hmac", {
5
+ description: "Generate HMAC (Hash-based Message Authentication Code)",
5
6
  inputSchema: {
6
7
  message: z.string().describe("Message to authenticate"),
7
8
  key: z.string().describe("Secret key for HMAC"),
@@ -2,6 +2,7 @@ import speakeasy from "speakeasy";
2
2
  import { z } from "zod";
3
3
  export function registerGenerateOtp(server) {
4
4
  server.registerTool("generate_otp", {
5
+ description: "Generate Time-based One-Time Password (TOTP) codes",
5
6
  inputSchema: {
6
7
  secret: z.string().describe("Base32 encoded secret key"),
7
8
  digits: z.number().describe("Number of digits in the code").optional(),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerGeneratePassword(server) {
3
3
  server.registerTool("generate_password", {
4
+ description: "Generate a secure password",
4
5
  inputSchema: {
5
6
  length: z.number().describe("Password length").optional(),
6
7
  includeUppercase: z.boolean().describe("Include uppercase letters").optional(),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerGenerateToken(server) {
3
3
  server.registerTool("generate_token", {
4
+ description: "Generate secure random tokens",
4
5
  inputSchema: {
5
6
  length: z.number().describe("Token length").optional(),
6
7
  charset: z.enum(["alphanumeric", "hex", "base64", "custom"]).describe("Character set to use").optional(),
@@ -2,6 +2,7 @@ import bcryptjs from "bcryptjs";
2
2
  import { z } from "zod";
3
3
  export function registerHashBcrypt(server) {
4
4
  server.registerTool("hash_bcrypt", {
5
+ description: "Generate bcrypt hash or verify password against hash",
5
6
  inputSchema: {
6
7
  password: z.string().describe("Password to hash or verify"),
7
8
  rounds: z.number().describe("Number of salt rounds (4-12, default 10)").optional(),
@@ -2,6 +2,7 @@ import { createHash } from "crypto";
2
2
  import { z } from "zod";
3
3
  export function registerHashMd5(server) {
4
4
  server.registerTool("hash_md5", {
5
+ description: "Generate MD5 hash",
5
6
  inputSchema: {
6
7
  text: z.string().describe("Text to hash with MD5"),
7
8
  },
@@ -2,6 +2,7 @@ import { createHash } from "crypto";
2
2
  import { z } from "zod";
3
3
  export function registerHashSha1(server) {
4
4
  server.registerTool("hash_sha1", {
5
+ description: "Generate SHA1 hash",
5
6
  inputSchema: {
6
7
  text: z.string().describe("Text to hash with SHA1"),
7
8
  },
@@ -2,6 +2,7 @@ import { createHash } from "crypto";
2
2
  import { z } from "zod";
3
3
  export function registerHashSha256(server) {
4
4
  server.registerTool("hash_sha256", {
5
+ description: 'Generate SHA256 hash of input text. Example: "hello" → "2cf24dba4f21d..."',
5
6
  inputSchema: {
6
7
  text: z.string().describe("Text to hash with SHA256"),
7
8
  },
@@ -2,6 +2,7 @@ import { createHash } from "crypto";
2
2
  import { z } from "zod";
3
3
  export function registerHashSha512(server) {
4
4
  server.registerTool("hash_sha512", {
5
+ description: "Generate SHA512 hash",
5
6
  inputSchema: {
6
7
  text: z.string().describe("Text to hash with SHA512"),
7
8
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerDiffJson(server) {
3
3
  server.registerTool("compare_json", {
4
+ description: "Compare two JSON objects and show differences",
4
5
  inputSchema: {
5
6
  json1: z.string().describe("First JSON object"),
6
7
  json2: z.string().describe("Second JSON object"),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerConvertHtmlMarkdown(server) {
3
3
  server.registerTool("convert_html_to_markdown", {
4
+ description: "Convert HTML to Markdown",
4
5
  inputSchema: {
5
6
  html: z.string().describe("HTML content to convert to Markdown"),
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerConvertJsonCsv(server) {
3
3
  server.registerTool("convert_json_to_csv", {
4
+ description: "Convert JSON to CSV format",
4
5
  inputSchema: {
5
6
  json: z.string().describe("JSON string to convert to CSV"),
6
7
  delimiter: z.string().describe("CSV delimiter").optional(),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerConvertJsonToml(server) {
3
3
  server.registerTool("convert_json_to_toml", {
4
+ description: "Convert JSON to TOML format",
4
5
  inputSchema: {
5
6
  json: z.string().describe("JSON string to convert"),
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerConvertMarkdownHtml(server) {
3
3
  server.registerTool("convert_markdown_to_html", {
4
+ description: "Convert Markdown to HTML",
4
5
  inputSchema: {
5
6
  markdown: z.string().describe("Markdown content to convert to HTML"),
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerConvertTomlJson(server) {
3
3
  server.registerTool("convert_toml_to_json", {
4
+ description: "Convert TOML to JSON format",
4
5
  inputSchema: {
5
6
  toml: z.string().describe("TOML string to convert"),
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerFormatJson(server) {
3
3
  server.registerTool("format_json", {
4
+ description: 'Format and prettify JSON with proper indentation. Example: {"a":1,"b":2} → formatted JSON with customizable spacing',
4
5
  inputSchema: {
5
6
  json: z.string().describe("JSON string to format"),
6
7
  indent: z.number().describe("Number of spaces for indentation").optional(),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerFormatPhone(server) {
3
3
  server.registerTool("format_phone", {
4
+ description: "Parse and format phone numbers",
4
5
  inputSchema: {
5
6
  phoneNumber: z.string().describe("Phone number to parse and format"),
6
7
  countryCode: z.string().optional().describe("Country code (e.g., 'US', 'GB', 'FR')"),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerFormatSql(server) {
3
3
  server.registerTool("format_sql", {
4
+ description: "Format and prettify SQL queries",
4
5
  inputSchema: {
5
6
  sql: z.string().describe("SQL query to format"),
6
7
  dialect: z.string().optional().describe("SQL dialect to use for formatting (e.g., 'sql', 'mysql', 'postgresql', 'sqlite', 'mariadb', 'db2', 'plsql', 'n1ql', 'redshift', 'spark', 'tsql', 'trino', 'bigquery'). Default is 'sql'."),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerFormatXml(server) {
3
3
  server.registerTool("format_xml", {
4
+ description: "Format and prettify XML",
4
5
  inputSchema: {
5
6
  xml: z.string().describe("XML string to format"),
6
7
  indent: z.number().describe("Number of spaces for indentation").optional(),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerFormatYaml(server) {
3
3
  server.registerTool("format_yaml", {
4
+ description: "Format and prettify YAML",
4
5
  inputSchema: {
5
6
  yaml: z.string().describe("YAML string to format"),
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerMinifyJson(server) {
3
3
  server.registerTool("minify_json", {
4
+ description: "Minify JSON by removing whitespace and unnecessary characters. Example: formatted JSON → compact single-line JSON",
4
5
  inputSchema: {
5
6
  json: z.string().describe("JSON string to minify"),
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerConvertList(server) {
3
3
  server.registerTool("convert_list", {
4
+ description: "Convert between different list formats (comma-separated, line-separated, etc.)",
4
5
  inputSchema: {
5
6
  list: z.string().describe("Input list to convert"),
6
7
  inputFormat: z.enum(["comma", "semicolon", "newline", "space", "pipe"]).describe("Input format"),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerPrettifyHtml(server) {
3
3
  server.registerTool("format_html", {
4
+ description: "Format and beautify HTML code",
4
5
  inputSchema: {
5
6
  html: z.string().describe("HTML code to prettify"),
6
7
  indentSize: z.number().optional().default(2).describe("Number of spaces for indentation")
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerPrettifyJavascript(server) {
3
3
  server.registerTool("format_javascript", {
4
+ description: "Format and beautify JavaScript/CSS code",
4
5
  inputSchema: {
5
6
  code: z.string().describe("JavaScript or CSS code to prettify"),
6
7
  type: z.enum(["javascript", "css"]).describe("Type of code to format"),
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import { CronExpressionParser } from 'cron-parser';
3
3
  export function registerGenerateCrontab(server) {
4
4
  server.registerTool("generate_crontab", {
5
+ description: "Generate crontab expressions",
5
6
  inputSchema: {
6
7
  minute: z.string().describe("Minute (0-59, *, */n, n-m)").optional(),
7
8
  hour: z.string().describe("Hour (0-23, *, */n, n-m)").optional(),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerGenerateMarkdownToc(server) {
3
3
  server.registerTool("generate_markdown_toc", {
4
+ description: "Generate a table of contents from Markdown headers",
4
5
  inputSchema: {
5
6
  markdown: z.string().describe("Markdown content to generate TOC from"),
6
7
  maxLevel: z.number().optional().default(6).describe("Maximum header level to include (1-6)"),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerTestRegex(server) {
3
3
  server.registerTool("test_regex", {
4
+ description: "Test regular expressions against text",
4
5
  inputSchema: {
5
6
  pattern: z.string().describe("Regular expression pattern"),
6
7
  text: z.string().describe("Text to test against the regex"),
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import yaml from "js-yaml";
3
3
  export function registerDockerComposeToRun(server) {
4
4
  server.registerTool("convert_docker_compose_to_run", {
5
+ description: "Convert Docker Compose files to docker run commands",
5
6
  inputSchema: {
6
7
  content: z.string().describe("Docker Compose file content to convert"),
7
8
  },
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import yaml from "js-yaml";
3
3
  export function registerDockerRunToCompose(server) {
4
4
  server.registerTool("convert_docker_run_to_compose", {
5
+ description: "Convert docker run commands to Docker Compose format",
5
6
  inputSchema: {
6
7
  commands: z.string().describe("Docker run commands to convert (one per line)"),
7
8
  },
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import yaml from "js-yaml";
3
3
  export function registerGenerateTraefik(server) {
4
4
  server.registerTool("generate_traefik_compose", {
5
+ description: "Generate Traefik Docker Compose configuration",
5
6
  inputSchema: {
6
7
  domain: z.string().optional().describe("Domain for Traefik services (default: example.com)"),
7
8
  email: z.string().optional().describe("Email for Let's Encrypt (default: admin@example.com)"),
@@ -1,5 +1,6 @@
1
1
  export function registerReferenceDocker(server) {
2
2
  server.registerTool("show_docker_reference", {
3
+ description: "Get Docker commands reference and cheatsheet",
3
4
  inputSchema: {},
4
5
  // VS Code compliance annotations
5
6
  annotations: {
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import yaml from "js-yaml";
3
3
  export function registerValidateCompose(server) {
4
4
  server.registerTool("validate_docker_compose", {
5
+ description: "Validate Docker Compose files for syntax errors, compatibility issues, and best practices. Example: check YAML syntax, service configuration, network setup",
5
6
  inputSchema: {
6
7
  content: z.string().describe("Docker Compose file content to validate"),
7
8
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerConvertTextBinary(server) {
3
3
  server.registerTool("convert_text_to_binary", {
4
+ description: "Convert text to binary and vice versa",
4
5
  inputSchema: {
5
6
  input: z.string().describe("Text to convert to binary, or binary to convert to text"),
6
7
  operation: z.enum(["encode", "decode"]).describe("Operation: encode text to binary or decode binary to text"),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerDecodeBase64(server) {
3
3
  server.registerTool("decode_base64", {
4
+ description: 'Decode Base64 text back to original text. Example: "SGVsbG8gV29ybGQ=" → "Hello World"',
4
5
  inputSchema: {
5
6
  text: z.string().min(1).regex(/^[A-Za-z0-9+/]*={0,2}$/, "Invalid Base64 format").describe("Base64 text to decode"),
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerDecodeHtml(server) {
3
3
  server.registerTool("decode_html", {
4
+ description: "Decode HTML entities",
4
5
  inputSchema: {
5
6
  text: z.string().describe("HTML encoded text to decode"),
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerDecodeUrl(server) {
3
3
  server.registerTool("decode_url", {
4
+ description: "URL decode text",
4
5
  inputSchema: {
5
6
  text: z.string().describe("URL encoded text to decode"),
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerEncodeBase64(server) {
3
3
  server.registerTool("encode_base64", {
4
+ description: 'Encode text to Base64 format. Example: "Hello World" → "SGVsbG8gV29ybGQ="',
4
5
  inputSchema: {
5
6
  text: z.string().min(1).describe("Text to encode to Base64"),
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerEncodeHtml(server) {
3
3
  server.registerTool("encode_html", {
4
+ description: "Encode HTML entities",
4
5
  inputSchema: {
5
6
  text: z.string().describe("Text to HTML encode"),
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerEncodeHtmlEntities(server) {
3
3
  server.registerTool("encode_html_entities", {
4
+ description: "Extended HTML entity encoding/decoding",
4
5
  inputSchema: {
5
6
  text: z.string().describe("Text to encode or decode"),
6
7
  operation: z.enum(["encode", "decode"]).describe("Operation to perform"),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerEncodeUrl(server) {
3
3
  server.registerTool("encode_url", {
4
+ description: "URL encode text",
4
5
  inputSchema: {
5
6
  text: z.string().describe("Text to URL encode"),
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerDecodeSafelink(server) {
3
3
  server.registerTool("decode_safelink", {
4
+ description: "Decode Microsoft Outlook SafeLink URLs",
4
5
  inputSchema: {
5
6
  safelink: z.string().describe("SafeLink URL to decode")
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerFangUrl(server) {
3
3
  server.registerTool("fang_url", {
4
+ description: "Defang or refang URLs for safe sharing (security analysis)",
4
5
  inputSchema: {
5
6
  text: z.string().describe("Text containing URLs to fang/defang"),
6
7
  operation: z.enum(["defang", "refang"]).describe("Whether to defang (make safe) or refang (restore) URLs")
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import { Buffer } from 'buffer';
3
3
  export function registerIdentifyFileType(server) {
4
4
  server.registerTool("identify_file_type", {
5
+ description: "Identify file type based on magic numbers/file signatures",
5
6
  inputSchema: {
6
7
  data: z.string().describe("Hex data or base64 data of file header"),
7
8
  format: z.enum(["hex", "base64"]).describe("Format of the input data")
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerGenerateQr(server) {
3
3
  server.registerTool("generate_qr_code", {
4
+ description: "Generate QR code for any text including URLs, WiFi networks, contact info, etc.",
4
5
  inputSchema: {
5
6
  text: z.string().describe("Text to encode in QR code (URLs, WiFi: WIFI:T:WPA;S:network;P:password;;, contact info, etc.)"),
6
7
  size: z.number().describe("Size multiplier (1-3)").optional(),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerGenerateSvgPlaceholder(server) {
3
3
  server.registerTool("generate_svg_placeholder", {
4
+ description: "Generate SVG placeholder images",
4
5
  inputSchema: {
5
6
  width: z.number().describe("Width in pixels").optional(),
6
7
  height: z.number().describe("Height in pixels").optional(),
@@ -1,5 +1,6 @@
1
1
  export function registerGenerateUlid(server) {
2
2
  server.registerTool("generate_ulid", {
3
+ description: "Generate Universally Unique Lexicographically Sortable Identifier (ULID). Example: creates time-sortable unique IDs like '01ARZ3NDEKTSV4RRFFQ69G5FAV'",
3
4
  inputSchema: {},
4
5
  // VS Code compliance annotations
5
6
  annotations: {
@@ -1,6 +1,7 @@
1
1
  import { randomUUID } from "crypto";
2
2
  export function registerGenerateUuid(server) {
3
3
  server.registerTool("generate_uuid", {
4
+ description: 'Generate a universally unique identifier (UUID). Example: generates "550e8400-e29b-41d4-a716-446655440000"',
4
5
  inputSchema: {},
5
6
  // VS Code compliance annotations
6
7
  annotations: {
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerCalculatePercentage(server) {
3
3
  server.registerTool("calculate_percentage", {
4
+ description: "Calculate percentages, percentage of a number, or percentage change",
4
5
  inputSchema: {
5
6
  operation: z.enum(["percentage-of", "what-percentage", "percentage-change"]).describe("Type of percentage calculation"),
6
7
  value1: z.number().describe("First value"),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerConvertNumberBase(server) {
3
3
  server.registerTool("convert_number_base", {
4
+ description: "Convert numbers between different bases (binary, octal, decimal, hexadecimal)",
4
5
  inputSchema: {
5
6
  number: z.string().describe("Number to convert"),
6
7
  fromBase: z.number().describe("Source base (2-36)"),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerConvertRomanNumeral(server) {
3
3
  server.registerTool("convert_roman_numerals", {
4
+ description: "Convert between Arabic numbers and Roman numerals",
4
5
  inputSchema: {
5
6
  input: z.string().describe("Number to convert (Arabic number 1-3999 or Roman numeral)")
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerConvertTemperature(server) {
3
3
  server.registerTool("convert_temperature", {
4
+ description: "Convert temperatures between Celsius, Fahrenheit, and Kelvin",
4
5
  inputSchema: {
5
6
  temperature: z.number().describe("Temperature value to convert"),
6
7
  from: z.enum(["celsius", "fahrenheit", "kelvin"]).describe("Source temperature unit"),
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerUnixTimestampConverter(server) {
3
3
  server.registerTool("convert_unix_timestamp", {
4
+ description: "Convert between Unix timestamps and human-readable dates",
4
5
  inputSchema: {
5
6
  input: z.string().describe("Unix timestamp (seconds) or ISO date string")
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerEvaluateMath(server) {
3
3
  server.registerTool("evaluate_math", {
4
+ description: "Safely evaluate mathematical expressions",
4
5
  inputSchema: {
5
6
  expression: z.string().describe("Mathematical expression to evaluate (e.g., '2 + 3 * 4')")
6
7
  },
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  export function registerIpSubnetCalculator(server) {
3
3
  server.registerTool("calculate_ip_subnet", {
4
+ description: "Calculate subnet information for IPv4",
4
5
  inputSchema: {
5
6
  ip: z.string().describe("IPv4 address (e.g., 192.168.1.1)"),
6
7
  cidr: z.number().describe("CIDR notation (e.g., 24)"),