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.
- package/build/index.js +1 -5
- package/build/tools/ansible/decrypt_ansible_vault/index.js +1 -0
- package/build/tools/ansible/encrypt_ansible_vault/index.js +1 -0
- package/build/tools/ansible/generate_ansible_inventory/index.js +1 -0
- package/build/tools/ansible/parse_ansible_inventory/index.js +1 -0
- package/build/tools/ansible/show_ansible_reference/index.js +1 -0
- package/build/tools/ansible/validate_ansible_playbook/index.js +1 -0
- package/build/tools/color/convert_hex_to_rgb/index.js +1 -0
- package/build/tools/color/convert_rgb_to_hex/index.js +1 -0
- package/build/tools/crypto/decode_jwt/index.js +1 -0
- package/build/tools/crypto/generate_basic_auth/index.js +1 -0
- package/build/tools/crypto/generate_bip39/index.js +1 -0
- package/build/tools/crypto/generate_hmac/index.js +1 -0
- package/build/tools/crypto/generate_otp/index.js +1 -0
- package/build/tools/crypto/generate_password/index.js +1 -0
- package/build/tools/crypto/generate_token/index.js +1 -0
- package/build/tools/crypto/hash_bcrypt/index.js +1 -0
- package/build/tools/crypto/hash_md5/index.js +1 -0
- package/build/tools/crypto/hash_sha1/index.js +1 -0
- package/build/tools/crypto/hash_sha256/index.js +1 -0
- package/build/tools/crypto/hash_sha512/index.js +1 -0
- package/build/tools/data_format/compare_json/index.js +1 -0
- package/build/tools/data_format/convert_html_to_markdown/index.js +1 -0
- package/build/tools/data_format/convert_json_to_csv/index.js +1 -0
- package/build/tools/data_format/convert_json_to_toml/index.js +1 -0
- package/build/tools/data_format/convert_markdown_to_html/index.js +1 -0
- package/build/tools/data_format/convert_toml_to_json/index.js +1 -0
- package/build/tools/data_format/format_json/index.js +1 -0
- package/build/tools/data_format/format_phone/index.js +1 -0
- package/build/tools/data_format/format_sql/index.js +1 -0
- package/build/tools/data_format/format_xml/index.js +1 -0
- package/build/tools/data_format/format_yaml/index.js +1 -0
- package/build/tools/data_format/minify_json/index.js +1 -0
- package/build/tools/development/convert_list/index.js +1 -0
- package/build/tools/development/format_html/index.js +1 -0
- package/build/tools/development/format_javascript/index.js +1 -0
- package/build/tools/development/generate_crontab/index.js +1 -0
- package/build/tools/development/generate_markdown_toc/index.js +1 -0
- package/build/tools/development/test_regex/index.js +1 -0
- package/build/tools/docker/convert_docker_compose_to_run/index.js +1 -0
- package/build/tools/docker/convert_docker_run_to_compose/index.js +1 -0
- package/build/tools/docker/generate_traefik_compose/index.js +1 -0
- package/build/tools/docker/show_docker_reference/index.js +1 -0
- package/build/tools/docker/validate_docker_compose/index.js +1 -0
- package/build/tools/encoding/convert_text_to_binary/index.js +1 -0
- package/build/tools/encoding/decode_base64/index.js +1 -0
- package/build/tools/encoding/decode_html/index.js +1 -0
- package/build/tools/encoding/decode_url/index.js +1 -0
- package/build/tools/encoding/encode_base64/index.js +1 -0
- package/build/tools/encoding/encode_html/index.js +1 -0
- package/build/tools/encoding/encode_html_entities/index.js +1 -0
- package/build/tools/encoding/encode_url/index.js +1 -0
- package/build/tools/forensic/decode_safelink/index.js +1 -0
- package/build/tools/forensic/fang_url/index.js +1 -0
- package/build/tools/forensic/identify_file_type/index.js +1 -0
- package/build/tools/id_generators/generate_qr_code/index.js +1 -0
- package/build/tools/id_generators/generate_svg_placeholder/index.js +1 -0
- package/build/tools/id_generators/generate_ulid/index.js +1 -0
- package/build/tools/id_generators/generate_uuid/index.js +1 -0
- package/build/tools/math/calculate_percentage/index.js +1 -0
- package/build/tools/math/convert_number_base/index.js +1 -0
- package/build/tools/math/convert_roman_numerals/index.js +1 -0
- package/build/tools/math/convert_temperature/index.js +1 -0
- package/build/tools/math/convert_unix_timestamp/index.js +1 -0
- package/build/tools/math/evaluate_math/index.js +1 -0
- package/build/tools/network/calculate_ip_subnet/index.js +1 -0
- package/build/tools/network/calculate_ipv4_subnet/index.js +1 -0
- package/build/tools/network/calculate_ipv6_subnet/index.js +1 -0
- package/build/tools/network/cat/index.js +1 -0
- package/build/tools/network/convert_cidr_to_ip_range/index.js +1 -0
- package/build/tools/network/convert_ip_range_to_cidr/index.js +1 -0
- package/build/tools/network/curl/index.js +1 -0
- package/build/tools/network/dig/index.js +1 -0
- package/build/tools/network/generate_ipv6_ula/index.js +1 -0
- package/build/tools/network/generate_mac_address/index.js +1 -0
- package/build/tools/network/generate_random_port/index.js +1 -0
- package/build/tools/network/grep/index.js +1 -0
- package/build/tools/network/head/index.js +1 -0
- package/build/tools/network/nslookup/index.js +1 -0
- package/build/tools/network/parse_url/index.js +1 -0
- package/build/tools/network/ping/index.js +1 -0
- package/build/tools/network/ps/index.js +1 -0
- package/build/tools/network/scp/index.js +1 -0
- package/build/tools/network/ssh/index.js +1 -0
- package/build/tools/network/tail/index.js +1 -0
- package/build/tools/network/telnet/index.js +1 -0
- package/build/tools/network/top/index.js +1 -0
- package/build/tools/network/validate_iban/index.js +1 -0
- package/build/tools/physics/convert_angle/index.js +1 -0
- package/build/tools/physics/convert_energy/index.js +1 -0
- package/build/tools/physics/convert_power/index.js +1 -0
- package/build/tools/text/analyze_distinct_words/index.js +1 -0
- package/build/tools/text/analyze_text_stats/index.js +1 -0
- package/build/tools/text/capitalize_text/index.js +1 -0
- package/build/tools/text/compare_text/index.js +1 -0
- package/build/tools/text/convert_text_to_camelcase/index.js +1 -0
- package/build/tools/text/convert_text_to_kebabcase/index.js +1 -0
- package/build/tools/text/convert_text_to_lowercase/index.js +1 -0
- package/build/tools/text/convert_text_to_nato/index.js +1 -0
- package/build/tools/text/convert_text_to_pascalcase/index.js +1 -0
- package/build/tools/text/convert_text_to_unicode/index.js +1 -0
- package/build/tools/text/convert_text_to_uppercase/index.js +1 -0
- package/build/tools/text/generate_ascii_art/index.js +1 -0
- package/build/tools/text/generate_lorem_ipsum/index.js +1 -0
- package/build/tools/text/generate_numeronym/index.js +1 -0
- package/build/tools/text/obfuscate_string/index.js +1 -0
- package/build/tools/text/search_emoji/index.js +1 -0
- package/build/tools/text/show_unicode_names/index.js +1 -0
- package/build/tools/text/slugify_text/index.js +1 -0
- package/build/tools/text/text_snakecase/index.js +1 -0
- package/build/tools/utility/convert_rem_px/index.js +1 -0
- package/build/tools/utility/format_css/index.js +1 -0
- package/build/tools/utility/lookup_http_status/index.js +1 -0
- package/build/tools/utility/lookup_mime_types/index.js +1 -0
- package/build/tools/utility/lookup_port_numbers/index.js +1 -0
- package/build/tools/utility/normalize_email/index.js +1 -0
- package/build/tools/utility/show_device_info/index.js +1 -0
- 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:
|
|
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,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 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 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
|
},
|
|
@@ -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 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 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 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 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)"),
|
|
@@ -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 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 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 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)"),
|