it-tools-mcp 3.2.12 → 4.0.0
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/README.dockerhub.md +1 -1
- package/README.md +105 -104
- package/build/index.js +464 -70
- package/build/tools/ansible/{ansible-vault-decrypt → decrypt_ansible_vault}/index.js +13 -4
- package/build/tools/ansible/{ansible-vault-encrypt → encrypt_ansible_vault}/index.js +14 -5
- package/build/tools/ansible/generate_ansible_inventory/index.js +221 -0
- package/build/tools/ansible/{ansible-inventory-generator → parse_ansible_inventory}/index.js +11 -2
- package/build/tools/ansible/{ansible-reference → show_ansible_reference}/index.js +11 -2
- package/build/tools/ansible/{ansible-playbook-validator → validate_ansible_playbook}/index.js +12 -3
- package/build/tools/color/{color-hex-to-rgb → convert_hex_to_rgb}/index.js +12 -3
- package/build/tools/color/{color-rgb-to-hex → convert_rgb_to_hex}/index.js +14 -5
- package/build/tools/crypto/{jwt-decode → decode_jwt}/index.js +12 -3
- package/build/tools/crypto/{basic-auth-generator → generate_basic_auth}/index.js +13 -4
- package/build/tools/crypto/{bip39-generate → generate_bip39}/index.js +12 -3
- package/build/tools/crypto/{hmac-generator → generate_hmac}/index.js +14 -5
- package/build/tools/crypto/{otp-code-generator → generate_otp}/index.js +14 -5
- package/build/tools/crypto/{password-generate → generate_password}/index.js +16 -7
- package/build/tools/crypto/{token-generator → generate_token}/index.js +14 -5
- package/build/tools/crypto/{bcrypt-hash → hash_bcrypt}/index.js +14 -5
- package/build/tools/crypto/{hash-md5 → hash_md5}/index.js +11 -2
- package/build/tools/crypto/{hash-sha1 → hash_sha1}/index.js +11 -2
- package/build/tools/crypto/{hash-sha256 → hash_sha256}/index.js +11 -2
- package/build/tools/crypto/{hash-sha512 → hash_sha512}/index.js +11 -2
- package/build/tools/{dataFormat/json-diff → data_format/compare_json}/index.js +13 -4
- package/build/tools/{dataFormat/html-to-markdown → data_format/convert_html_to_markdown}/index.js +12 -3
- package/build/tools/{dataFormat/json-to-csv → data_format/convert_json_to_csv}/index.js +13 -4
- package/build/tools/{dataFormat/json-to-toml → data_format/convert_json_to_toml}/index.js +12 -3
- package/build/tools/{dataFormat/markdown-to-html → data_format/convert_markdown_to_html}/index.js +12 -3
- package/build/tools/{dataFormat/toml-to-json → data_format/convert_toml_to_json}/index.js +12 -3
- package/build/tools/{dataFormat/json-format → data_format/format_json}/index.js +14 -4
- package/build/tools/{dataFormat/phone-format → data_format/format_phone}/index.js +13 -4
- package/build/tools/{dataFormat/sql-format → data_format/format_sql}/index.js +13 -4
- package/build/tools/{dataFormat/xml-format → data_format/format_xml}/index.js +13 -4
- package/build/tools/{dataFormat/yaml-format → data_format/format_yaml}/index.js +12 -3
- package/build/tools/{dataFormat/json-minify → data_format/minify_json}/index.js +12 -3
- package/build/tools/development/{list-converter → convert_list}/index.js +15 -6
- package/build/tools/development/{html-prettifier → format_html}/index.js +13 -4
- package/build/tools/development/{javascript-prettifier → format_javascript}/index.js +14 -5
- package/build/tools/development/{crontab-generate → generate_crontab}/index.js +16 -7
- package/build/tools/development/{markdown-toc-generator → generate_markdown_toc}/index.js +14 -5
- package/build/tools/development/{regex-tester → test_regex}/index.js +14 -5
- package/build/tools/docker/{docker-compose-to-docker-run → convert_docker_compose_to_run}/index.js +11 -2
- package/build/tools/docker/{docker-run-to-docker-compose → convert_docker_run_to_compose}/index.js +11 -2
- package/build/tools/docker/{traefik-compose-generator → generate_traefik_compose}/index.js +16 -7
- package/build/tools/docker/{docker-reference → show_docker_reference}/index.js +11 -2
- package/build/tools/docker/{docker-compose-validator → validate_docker_compose}/index.js +12 -3
- package/build/tools/encoding/{text-to-binary → convert_text_to_binary}/index.js +13 -4
- package/build/tools/encoding/{base64-decode → decode_base64}/index.js +13 -3
- package/build/tools/encoding/{html-decode → decode_html}/index.js +12 -3
- package/build/tools/encoding/{url-decode → decode_url}/index.js +12 -3
- package/build/tools/encoding/encode_base64/index.js +38 -0
- package/build/tools/encoding/{html-encode → encode_html}/index.js +12 -3
- package/build/tools/encoding/{html-entities-extended → encode_html_entities}/index.js +13 -4
- package/build/tools/encoding/encode_url/index.js +25 -0
- package/build/tools/forensic/{safelink-decoder → decode_safelink}/index.js +12 -3
- package/build/tools/forensic/{url-fanger → fang_url}/index.js +13 -4
- package/build/tools/forensic/{file-type-identifier → identify_file_type}/index.js +13 -4
- package/build/tools/{idGenerators/qr-generate → id_generators/generate_qr_code}/index.js +13 -4
- package/build/tools/{idGenerators/svg-placeholder-generator → id_generators/generate_svg_placeholder}/index.js +16 -7
- package/build/tools/{idGenerators/ulid-generate → id_generators/generate_ulid}/index.js +11 -2
- package/build/tools/id_generators/generate_uuid/index.js +23 -0
- package/build/tools/math/{percentage-calculator → calculate_percentage}/index.js +14 -5
- package/build/tools/math/{number-base-converter → convert_number_base}/index.js +14 -5
- package/build/tools/math/{roman-numeral-converter → convert_roman_numerals}/index.js +12 -3
- package/build/tools/math/{temperature-converter → convert_temperature}/index.js +14 -5
- package/build/tools/math/{unix-timestamp-converter → convert_unix_timestamp}/index.js +11 -2
- package/build/tools/math/{math-evaluate → evaluate_math}/index.js +12 -3
- package/build/tools/network/{ip-subnet-calculator → calculate_ip_subnet}/index.js +12 -3
- package/build/tools/network/{ipv4-subnet-calc → calculate_ipv4_subnet}/index.js +11 -2
- package/build/tools/network/{ipv6-subnet-calculator → calculate_ipv6_subnet}/index.js +12 -3
- package/build/tools/network/cat/index.js +11 -2
- package/build/tools/network/{cidr-to-ip-range → convert_cidr_to_ip_range}/index.js +11 -2
- package/build/tools/network/{ip-range-to-cidr → convert_ip_range_to_cidr}/index.js +12 -3
- package/build/tools/network/curl/index.js +17 -6
- package/build/tools/network/dig/index.js +12 -3
- package/build/tools/network/{ipv6-ula-generator → generate_ipv6_ula}/index.js +11 -2
- package/build/tools/network/{mac-address-generate → generate_mac_address}/index.js +12 -3
- package/build/tools/network/{random-port → generate_random_port}/index.js +14 -5
- package/build/tools/network/grep/index.js +12 -3
- package/build/tools/network/head/index.js +12 -3
- package/build/tools/network/nslookup/index.js +11 -2
- package/build/tools/network/{url-parse → parse_url}/index.js +11 -2
- package/build/tools/network/ping/index.js +15 -4
- package/build/tools/network/ps/index.js +10 -1
- package/build/tools/network/scp/index.js +16 -7
- package/build/tools/network/ssh/index.js +14 -5
- package/build/tools/network/tail/index.js +12 -3
- package/build/tools/network/telnet/index.js +12 -3
- package/build/tools/network/top/index.js +10 -1
- package/build/tools/network/{iban-validate → validate_iban}/index.js +11 -2
- package/build/tools/physics/{angle-converter → convert_angle}/index.js +17 -8
- package/build/tools/physics/{energy-converter → convert_energy}/index.js +19 -10
- package/build/tools/physics/{power-converter → convert_power}/index.js +19 -10
- package/build/tools/text/{distinct-words → analyze_distinct_words}/index.js +11 -2
- package/build/tools/text/{text-stats → analyze_text_stats}/index.js +11 -2
- package/build/tools/text/capitalize_text/index.js +25 -0
- package/build/tools/text/{text-diff → compare_text}/index.js +12 -3
- package/build/tools/text/convert_text_to_camelcase/index.js +29 -0
- package/build/tools/text/{text-kebabcase → convert_text_to_kebabcase}/index.js +11 -2
- package/build/tools/text/convert_text_to_lowercase/index.js +24 -0
- package/build/tools/text/{text-to-nato-alphabet → convert_text_to_nato}/index.js +12 -3
- package/build/tools/text/{text-pascalcase → convert_text_to_pascalcase}/index.js +11 -2
- package/build/tools/text/{text-to-unicode → convert_text_to_unicode}/index.js +12 -3
- package/build/tools/text/convert_text_to_uppercase/index.js +24 -0
- package/build/tools/text/{ascii-art-text → generate_ascii_art}/index.js +12 -3
- package/build/tools/text/{lorem-ipsum-generator → generate_lorem_ipsum}/index.js +12 -3
- package/build/tools/text/{numeronym-generator → generate_numeronym}/index.js +11 -2
- package/build/tools/text/{string-obfuscator → obfuscate_string}/index.js +12 -3
- package/build/tools/text/{emoji-search → search_emoji}/index.js +11 -2
- package/build/tools/text/{text-to-unicode-names → show_unicode_names}/index.js +11 -2
- package/build/tools/text/{slugify-string → slugify_text}/index.js +13 -4
- package/build/tools/text/text_snakecase/index.js +1 -0
- package/build/tools/utility/{rem-px-converter → convert_rem_px}/index.js +14 -4
- package/build/tools/utility/{css-prettifier → format_css}/index.js +12 -3
- package/build/tools/utility/{http-status-codes → lookup_http_status}/index.js +11 -2
- package/build/tools/utility/{mime-types → lookup_mime_types}/index.js +12 -3
- package/build/tools/utility/{port-numbers → lookup_port_numbers}/index.js +11 -2
- package/build/tools/utility/{email-normalizer → normalize_email}/index.js +11 -2
- package/build/tools/utility/{device-info → show_device_info}/index.js +10 -1
- package/package.json +50 -6
- package/build/tools/encoding/base64-encode/index.js +0 -16
- package/build/tools/encoding/url-encode/index.js +0 -16
- package/build/tools/idGenerators/uuid-generate/index.js +0 -14
- package/build/tools/text/text-camelcase/index.js +0 -20
- package/build/tools/text/text-capitalize/index.js +0 -16
- package/build/tools/text/text-lowercase/index.js +0 -15
- package/build/tools/text/text-snakecase/index.js +0 -20
- package/build/tools/text/text-uppercase/index.js +0 -15
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
export function registerConvertJsonCsv(server) {
|
|
3
|
+
server.registerTool("convert_json_to_csv", {
|
|
4
|
+
description: "Convert JSON to CSV format",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
json: z.string().describe("JSON string to convert to CSV"),
|
|
7
|
+
delimiter: z.string().describe("CSV delimiter").optional(),
|
|
8
|
+
},
|
|
9
|
+
// VS Code compliance annotations
|
|
10
|
+
annotations: {
|
|
11
|
+
title: "Convert Json To Csv",
|
|
12
|
+
description: "Convert JSON to CSV format",
|
|
13
|
+
readOnlyHint: false
|
|
14
|
+
}
|
|
6
15
|
}, async ({ json, delimiter = "," }) => {
|
|
7
16
|
try {
|
|
8
17
|
const Papa = (await import("papaparse")).default;
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
2
|
+
export function registerConvertJsonToml(server) {
|
|
3
|
+
server.registerTool("convert_json_to_toml", {
|
|
4
|
+
description: "Convert JSON to TOML format",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
json: z.string().describe("JSON string to convert"),
|
|
7
|
+
},
|
|
8
|
+
// VS Code compliance annotations
|
|
9
|
+
annotations: {
|
|
10
|
+
title: "Convert Json To Toml",
|
|
11
|
+
description: "Convert JSON to TOML format",
|
|
12
|
+
readOnlyHint: false
|
|
13
|
+
}
|
|
5
14
|
}, async ({ json }) => {
|
|
6
15
|
try {
|
|
7
16
|
const toml = await import("@iarna/toml");
|
package/build/tools/{dataFormat/markdown-to-html → data_format/convert_markdown_to_html}/index.js
RENAMED
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
2
|
+
export function registerConvertMarkdownHtml(server) {
|
|
3
|
+
server.registerTool("convert_markdown_to_html", {
|
|
4
|
+
description: "Convert Markdown to HTML",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
markdown: z.string().describe("Markdown content to convert to HTML"),
|
|
7
|
+
},
|
|
8
|
+
// VS Code compliance annotations
|
|
9
|
+
annotations: {
|
|
10
|
+
title: "Convert Markdown To Html",
|
|
11
|
+
description: "Convert Markdown to HTML",
|
|
12
|
+
readOnlyHint: false
|
|
13
|
+
}
|
|
5
14
|
}, async ({ markdown }) => {
|
|
6
15
|
try {
|
|
7
16
|
const { marked } = await import("marked");
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
2
|
+
export function registerConvertTomlJson(server) {
|
|
3
|
+
server.registerTool("convert_toml_to_json", {
|
|
4
|
+
description: "Convert TOML to JSON format",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
toml: z.string().describe("TOML string to convert"),
|
|
7
|
+
},
|
|
8
|
+
// VS Code compliance annotations
|
|
9
|
+
annotations: {
|
|
10
|
+
title: "Convert Toml To Json",
|
|
11
|
+
description: "Convert TOML to JSON format",
|
|
12
|
+
readOnlyHint: false
|
|
13
|
+
}
|
|
5
14
|
}, async ({ toml: tomlString }) => {
|
|
6
15
|
try {
|
|
7
16
|
const toml = await import("@iarna/toml");
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
export function registerFormatJson(server) {
|
|
3
|
+
server.registerTool("format_json", {
|
|
4
|
+
description: 'Format and prettify JSON with proper indentation. Example: {"a":1,"b":2} → formatted JSON with customizable spacing',
|
|
5
|
+
inputSchema: {
|
|
6
|
+
json: z.string().describe("JSON string to format"),
|
|
7
|
+
indent: z.number().describe("Number of spaces for indentation").optional(),
|
|
8
|
+
},
|
|
9
|
+
// VS Code compliance annotations
|
|
10
|
+
annotations: {
|
|
11
|
+
title: "Format JSON",
|
|
12
|
+
description: "Format and prettify JSON with proper indentation and customizable spacing",
|
|
13
|
+
readOnlyHint: false
|
|
14
|
+
}
|
|
6
15
|
}, async ({ json, indent = 2 }) => {
|
|
7
16
|
try {
|
|
8
17
|
if (indent < 0 || indent > 10) {
|
|
@@ -88,6 +97,7 @@ Examples of supported formats:
|
|
|
88
97
|
}
|
|
89
98
|
catch (error) {
|
|
90
99
|
return {
|
|
100
|
+
isError: true,
|
|
91
101
|
content: [
|
|
92
102
|
{
|
|
93
103
|
type: "text",
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
export function registerFormatPhone(server) {
|
|
3
|
+
server.registerTool("format_phone", {
|
|
4
|
+
description: "Parse and format phone numbers",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
phoneNumber: z.string().describe("Phone number to parse and format"),
|
|
7
|
+
countryCode: z.string().optional().describe("Country code (e.g., 'US', 'GB', 'FR')"),
|
|
8
|
+
},
|
|
9
|
+
// VS Code compliance annotations
|
|
10
|
+
annotations: {
|
|
11
|
+
title: "Format Phone",
|
|
12
|
+
description: "Parse and format phone numbers",
|
|
13
|
+
readOnlyHint: false
|
|
14
|
+
}
|
|
6
15
|
}, async ({ phoneNumber, countryCode }) => {
|
|
7
16
|
try {
|
|
8
17
|
const { isValidPhoneNumber, parsePhoneNumber } = await import("libphonenumber-js");
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
export function registerFormatSql(server) {
|
|
3
|
+
server.registerTool("format_sql", {
|
|
4
|
+
description: "Format and prettify SQL queries",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
sql: z.string().describe("SQL query to format"),
|
|
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'."),
|
|
8
|
+
},
|
|
9
|
+
// VS Code compliance annotations
|
|
10
|
+
annotations: {
|
|
11
|
+
title: "Format Sql",
|
|
12
|
+
description: "Format and prettify SQL queries",
|
|
13
|
+
readOnlyHint: false
|
|
14
|
+
}
|
|
6
15
|
}, async ({ sql, dialect = "sql" }) => {
|
|
7
16
|
try {
|
|
8
17
|
const { format: formatSQL } = await import("sql-formatter");
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
export function registerFormatXml(server) {
|
|
3
|
+
server.registerTool("format_xml", {
|
|
4
|
+
description: "Format and prettify XML",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
xml: z.string().describe("XML string to format"),
|
|
7
|
+
indent: z.number().describe("Number of spaces for indentation").optional(),
|
|
8
|
+
},
|
|
9
|
+
// VS Code compliance annotations
|
|
10
|
+
annotations: {
|
|
11
|
+
title: "Format Xml",
|
|
12
|
+
description: "Format and prettify XML",
|
|
13
|
+
readOnlyHint: false
|
|
14
|
+
}
|
|
6
15
|
}, async ({ xml, indent = 2 }) => {
|
|
7
16
|
try {
|
|
8
17
|
const formatXML = (await import("xml-formatter")).default;
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
2
|
+
export function registerFormatYaml(server) {
|
|
3
|
+
server.registerTool("format_yaml", {
|
|
4
|
+
description: "Format and prettify YAML",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
yaml: z.string().describe("YAML string to format"),
|
|
7
|
+
},
|
|
8
|
+
// VS Code compliance annotations
|
|
9
|
+
annotations: {
|
|
10
|
+
title: "Format Yaml",
|
|
11
|
+
description: "Format and prettify YAML",
|
|
12
|
+
readOnlyHint: false
|
|
13
|
+
}
|
|
5
14
|
}, async ({ yaml }) => {
|
|
6
15
|
try {
|
|
7
16
|
const YAML = await import("js-yaml");
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
2
|
+
export function registerMinifyJson(server) {
|
|
3
|
+
server.registerTool("minify_json", {
|
|
4
|
+
description: "Minify JSON by removing whitespace and unnecessary characters. Example: formatted JSON → compact single-line JSON",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
json: z.string().describe("JSON string to minify"),
|
|
7
|
+
},
|
|
8
|
+
// VS Code compliance annotations
|
|
9
|
+
annotations: {
|
|
10
|
+
title: "Minify JSON",
|
|
11
|
+
description: "Remove whitespace and minify JSON to compact format",
|
|
12
|
+
readOnlyHint: false
|
|
13
|
+
}
|
|
5
14
|
}, async ({ json }) => {
|
|
6
15
|
try {
|
|
7
16
|
const parsed = JSON.parse(json);
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
export function registerConvertList(server) {
|
|
3
|
+
server.registerTool("convert_list", {
|
|
4
|
+
description: "Convert between different list formats (comma-separated, line-separated, etc.)",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
list: z.string().describe("Input list to convert"),
|
|
7
|
+
inputFormat: z.enum(["comma", "semicolon", "newline", "space", "pipe"]).describe("Input format"),
|
|
8
|
+
outputFormat: z.enum(["comma", "semicolon", "newline", "space", "pipe", "json", "quoted"]).describe("Output format"),
|
|
9
|
+
trim: z.boolean().describe("Trim whitespace from items").optional(),
|
|
10
|
+
},
|
|
11
|
+
// VS Code compliance annotations
|
|
12
|
+
annotations: {
|
|
13
|
+
title: "Convert List",
|
|
14
|
+
description: "Convert between different list formats (comma-separated, line-separated, etc",
|
|
15
|
+
readOnlyHint: false
|
|
16
|
+
}
|
|
8
17
|
}, async ({ list, inputFormat, outputFormat, trim = true }) => {
|
|
9
18
|
try {
|
|
10
19
|
const separators = {
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
export function registerPrettifyHtml(server) {
|
|
3
|
+
server.registerTool("format_html", {
|
|
4
|
+
description: "Format and beautify HTML code",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
html: z.string().describe("HTML code to prettify"),
|
|
7
|
+
indentSize: z.number().optional().default(2).describe("Number of spaces for indentation")
|
|
8
|
+
},
|
|
9
|
+
// VS Code compliance annotations
|
|
10
|
+
annotations: {
|
|
11
|
+
title: "Format Html",
|
|
12
|
+
description: "Format and beautify HTML code",
|
|
13
|
+
readOnlyHint: false
|
|
14
|
+
}
|
|
6
15
|
}, async ({ html, indentSize }) => {
|
|
7
16
|
try {
|
|
8
17
|
// Simple HTML prettifier
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
export function registerPrettifyJavascript(server) {
|
|
3
|
+
server.registerTool("format_javascript", {
|
|
4
|
+
description: "Format and beautify JavaScript/CSS code",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
code: z.string().describe("JavaScript or CSS code to prettify"),
|
|
7
|
+
type: z.enum(["javascript", "css"]).describe("Type of code to format"),
|
|
8
|
+
indentSize: z.number().optional().default(2).describe("Number of spaces for indentation")
|
|
9
|
+
},
|
|
10
|
+
// VS Code compliance annotations
|
|
11
|
+
annotations: {
|
|
12
|
+
title: "Format Javascript",
|
|
13
|
+
description: "Format and beautify JavaScript/CSS code",
|
|
14
|
+
readOnlyHint: false
|
|
15
|
+
}
|
|
7
16
|
}, async ({ code, type, indentSize }) => {
|
|
8
17
|
try {
|
|
9
18
|
let formatted = code;
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { CronExpressionParser } from 'cron-parser';
|
|
3
|
-
export function
|
|
4
|
-
server.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
export function registerGenerateCrontab(server) {
|
|
4
|
+
server.registerTool("generate_crontab", {
|
|
5
|
+
description: "Generate crontab expressions",
|
|
6
|
+
inputSchema: {
|
|
7
|
+
minute: z.string().describe("Minute (0-59, *, */n, n-m)").optional(),
|
|
8
|
+
hour: z.string().describe("Hour (0-23, *, */n, n-m)").optional(),
|
|
9
|
+
dayOfMonth: z.string().describe("Day of month (1-31, *, */n, n-m)").optional(),
|
|
10
|
+
month: z.string().describe("Month (1-12, *, */n, n-m)").optional(),
|
|
11
|
+
dayOfWeek: z.string().describe("Day of week (0-7, *, */n, n-m)").optional(),
|
|
12
|
+
},
|
|
13
|
+
// VS Code compliance annotations
|
|
14
|
+
annotations: {
|
|
15
|
+
title: "Generate Crontab",
|
|
16
|
+
description: "Generate crontab expressions",
|
|
17
|
+
readOnlyHint: false
|
|
18
|
+
}
|
|
10
19
|
}, async ({ minute = "*", hour = "*", dayOfMonth = "*", month = "*", dayOfWeek = "*" }) => {
|
|
11
20
|
try {
|
|
12
21
|
const cronExpression = `${minute} ${hour} ${dayOfMonth} ${month} ${dayOfWeek}`;
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
export function registerGenerateMarkdownToc(server) {
|
|
3
|
+
server.registerTool("generate_markdown_toc", {
|
|
4
|
+
description: "Generate a table of contents from Markdown headers",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
markdown: z.string().describe("Markdown content to generate TOC from"),
|
|
7
|
+
maxLevel: z.number().optional().default(6).describe("Maximum header level to include (1-6)"),
|
|
8
|
+
generateAnchors: z.boolean().optional().default(true).describe("Whether to generate anchor links")
|
|
9
|
+
},
|
|
10
|
+
// VS Code compliance annotations
|
|
11
|
+
annotations: {
|
|
12
|
+
title: "Generate Markdown Toc",
|
|
13
|
+
description: "Generate a table of contents from Markdown headers",
|
|
14
|
+
readOnlyHint: false
|
|
15
|
+
}
|
|
7
16
|
}, async ({ markdown, maxLevel, generateAnchors }) => {
|
|
8
17
|
// Extract headers from markdown
|
|
9
18
|
const headerRegex = /^(#{1,6})\s+(.+)$/gm;
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
export function registerTestRegex(server) {
|
|
3
|
+
server.registerTool("test_regex", {
|
|
4
|
+
description: "Test regular expressions against text",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
pattern: z.string().describe("Regular expression pattern"),
|
|
7
|
+
text: z.string().describe("Text to test against the regex"),
|
|
8
|
+
flags: z.string().optional().describe("Regex flags (g, i, m, s, u, y)"),
|
|
9
|
+
},
|
|
10
|
+
// VS Code compliance annotations
|
|
11
|
+
annotations: {
|
|
12
|
+
title: "Test Regex",
|
|
13
|
+
description: "Test regular expressions against text",
|
|
14
|
+
readOnlyHint: false
|
|
15
|
+
}
|
|
7
16
|
}, async ({ pattern, text, flags }) => {
|
|
8
17
|
try {
|
|
9
18
|
const regex = new RegExp(pattern, flags);
|
package/build/tools/docker/{docker-compose-to-docker-run → convert_docker_compose_to_run}/index.js
RENAMED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import yaml from "js-yaml";
|
|
3
3
|
export function registerDockerComposeToRun(server) {
|
|
4
|
-
server.
|
|
5
|
-
|
|
4
|
+
server.registerTool("convert_docker_compose_to_run", {
|
|
5
|
+
description: "Convert Docker Compose files to docker run commands",
|
|
6
|
+
inputSchema: {
|
|
7
|
+
content: z.string().describe("Docker Compose file content to convert"),
|
|
8
|
+
},
|
|
9
|
+
// VS Code compliance annotations
|
|
10
|
+
annotations: {
|
|
11
|
+
title: "Convert Docker Compose To Run",
|
|
12
|
+
description: "Convert Docker Compose files to docker run commands",
|
|
13
|
+
readOnlyHint: false
|
|
14
|
+
}
|
|
6
15
|
}, async ({ content }) => {
|
|
7
16
|
if (!content?.trim()) {
|
|
8
17
|
return {
|
package/build/tools/docker/{docker-run-to-docker-compose → convert_docker_run_to_compose}/index.js
RENAMED
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import yaml from "js-yaml";
|
|
3
3
|
export function registerDockerRunToCompose(server) {
|
|
4
|
-
server.
|
|
5
|
-
|
|
4
|
+
server.registerTool("convert_docker_run_to_compose", {
|
|
5
|
+
description: "Convert docker run commands to Docker Compose format",
|
|
6
|
+
inputSchema: {
|
|
7
|
+
commands: z.string().describe("Docker run commands to convert (one per line)"),
|
|
8
|
+
},
|
|
9
|
+
// VS Code compliance annotations
|
|
10
|
+
annotations: {
|
|
11
|
+
title: "Convert Docker Run To Compose",
|
|
12
|
+
description: "Convert docker run commands to Docker Compose format",
|
|
13
|
+
readOnlyHint: false
|
|
14
|
+
}
|
|
6
15
|
}, async ({ commands }) => {
|
|
7
16
|
if (!commands?.trim()) {
|
|
8
17
|
return {
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import yaml from "js-yaml";
|
|
3
|
-
export function
|
|
4
|
-
server.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
export function registerGenerateTraefik(server) {
|
|
4
|
+
server.registerTool("generate_traefik_compose", {
|
|
5
|
+
description: "Generate Traefik Docker Compose configuration",
|
|
6
|
+
inputSchema: {
|
|
7
|
+
domain: z.string().optional().describe("Domain for Traefik services (default: example.com)"),
|
|
8
|
+
email: z.string().optional().describe("Email for Let's Encrypt (default: admin@example.com)"),
|
|
9
|
+
network: z.string().optional().describe("Docker network name (default: traefik)"),
|
|
10
|
+
serviceName: z.string().optional().describe("Example service name (default: webapp)"),
|
|
11
|
+
serviceImage: z.string().optional().describe("Example service image (default: nginx:latest)"),
|
|
12
|
+
},
|
|
13
|
+
// VS Code compliance annotations
|
|
14
|
+
annotations: {
|
|
15
|
+
title: "Generate Traefik Compose",
|
|
16
|
+
description: "Generate Traefik Docker Compose configuration",
|
|
17
|
+
readOnlyHint: false
|
|
18
|
+
}
|
|
10
19
|
}, async ({ domain = 'example.com', email = 'admin@example.com', network = 'traefik', serviceName = 'webapp', serviceImage = 'nginx:latest' }) => {
|
|
11
20
|
try {
|
|
12
21
|
const compose = {
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
export function
|
|
2
|
-
server.
|
|
1
|
+
export function registerReferenceDocker(server) {
|
|
2
|
+
server.registerTool("show_docker_reference", {
|
|
3
|
+
description: "Get Docker commands reference and cheatsheet",
|
|
4
|
+
inputSchema: {},
|
|
5
|
+
// VS Code compliance annotations
|
|
6
|
+
annotations: {
|
|
7
|
+
title: "Show Docker Reference",
|
|
8
|
+
description: "Get Docker commands reference and cheatsheet",
|
|
9
|
+
readOnlyHint: true
|
|
10
|
+
}
|
|
11
|
+
}, async () => {
|
|
3
12
|
const reference = `# Docker Quick Reference
|
|
4
13
|
|
|
5
14
|
## Installation & Setup
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import yaml from "js-yaml";
|
|
3
|
-
export function
|
|
4
|
-
server.
|
|
5
|
-
|
|
3
|
+
export function registerValidateCompose(server) {
|
|
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",
|
|
6
|
+
inputSchema: {
|
|
7
|
+
content: z.string().describe("Docker Compose file content to validate"),
|
|
8
|
+
},
|
|
9
|
+
// VS Code compliance annotations
|
|
10
|
+
annotations: {
|
|
11
|
+
title: "Validate Docker Compose",
|
|
12
|
+
description: "Validate Docker Compose syntax and configuration",
|
|
13
|
+
readOnlyHint: false
|
|
14
|
+
}
|
|
6
15
|
}, async ({ content }) => {
|
|
7
16
|
if (!content?.trim()) {
|
|
8
17
|
return {
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
export function registerConvertTextBinary(server) {
|
|
3
|
+
server.registerTool("convert_text_to_binary", {
|
|
4
|
+
description: "Convert text to binary and vice versa",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
input: z.string().describe("Text to convert to binary, or binary to convert to text"),
|
|
7
|
+
operation: z.enum(["encode", "decode"]).describe("Operation: encode text to binary or decode binary to text"),
|
|
8
|
+
},
|
|
9
|
+
// VS Code compliance annotations
|
|
10
|
+
annotations: {
|
|
11
|
+
title: "Convert Text To Binary",
|
|
12
|
+
description: "Convert text to binary and vice versa",
|
|
13
|
+
readOnlyHint: false
|
|
14
|
+
}
|
|
6
15
|
}, async ({ input, operation }) => {
|
|
7
16
|
try {
|
|
8
17
|
if (operation === "encode") {
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
2
|
+
export function registerDecodeBase64(server) {
|
|
3
|
+
server.registerTool("decode_base64", {
|
|
4
|
+
description: 'Decode Base64 text back to original text. Example: "SGVsbG8gV29ybGQ=" → "Hello World"',
|
|
5
|
+
inputSchema: {
|
|
6
|
+
text: z.string().min(1).regex(/^[A-Za-z0-9+/]*={0,2}$/, "Invalid Base64 format").describe("Base64 text to decode"),
|
|
7
|
+
},
|
|
8
|
+
// VS Code compliance annotations
|
|
9
|
+
annotations: {
|
|
10
|
+
title: "Decode Base64",
|
|
11
|
+
description: "Decode Base64 text back to original text",
|
|
12
|
+
readOnlyHint: false
|
|
13
|
+
}
|
|
5
14
|
}, async ({ text }) => {
|
|
6
15
|
try {
|
|
7
16
|
const decoded = Buffer.from(text, 'base64').toString('utf-8');
|
|
@@ -16,6 +25,7 @@ export function registerBase64Decode(server) {
|
|
|
16
25
|
}
|
|
17
26
|
catch (error) {
|
|
18
27
|
return {
|
|
28
|
+
isError: true,
|
|
19
29
|
content: [
|
|
20
30
|
{
|
|
21
31
|
type: "text",
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
2
|
+
export function registerDecodeHtml(server) {
|
|
3
|
+
server.registerTool("decode_html", {
|
|
4
|
+
description: "Decode HTML entities",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
text: z.string().describe("HTML encoded text to decode"),
|
|
7
|
+
},
|
|
8
|
+
// VS Code compliance annotations
|
|
9
|
+
annotations: {
|
|
10
|
+
title: "Decode Html",
|
|
11
|
+
description: "Decode HTML entities",
|
|
12
|
+
readOnlyHint: false
|
|
13
|
+
}
|
|
5
14
|
}, async ({ text }) => {
|
|
6
15
|
const decoded = text
|
|
7
16
|
.replace(/&/g, '&')
|
|
@@ -1,7 +1,16 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export function
|
|
3
|
-
server.
|
|
4
|
-
|
|
2
|
+
export function registerDecodeUrl(server) {
|
|
3
|
+
server.registerTool("decode_url", {
|
|
4
|
+
description: "URL decode text",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
text: z.string().describe("URL encoded text to decode"),
|
|
7
|
+
},
|
|
8
|
+
// VS Code compliance annotations
|
|
9
|
+
annotations: {
|
|
10
|
+
title: "Decode Url",
|
|
11
|
+
description: "URL decode text",
|
|
12
|
+
readOnlyHint: false
|
|
13
|
+
}
|
|
5
14
|
}, async ({ text }) => {
|
|
6
15
|
try {
|
|
7
16
|
const decoded = decodeURIComponent(text);
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export function registerEncodeBase64(server) {
|
|
3
|
+
server.registerTool("encode_base64", {
|
|
4
|
+
description: 'Encode text to Base64 format. Example: "Hello World" → "SGVsbG8gV29ybGQ="',
|
|
5
|
+
inputSchema: {
|
|
6
|
+
text: z.string().min(1).describe("Text to encode to Base64"),
|
|
7
|
+
},
|
|
8
|
+
// VS Code compliance annotations
|
|
9
|
+
annotations: {
|
|
10
|
+
title: "Encode Base64",
|
|
11
|
+
description: "Encode text to Base64 format",
|
|
12
|
+
readOnlyHint: false
|
|
13
|
+
}
|
|
14
|
+
}, async ({ text }) => {
|
|
15
|
+
try {
|
|
16
|
+
const encoded = Buffer.from(text, 'utf-8').toString('base64');
|
|
17
|
+
return {
|
|
18
|
+
content: [
|
|
19
|
+
{
|
|
20
|
+
type: "text",
|
|
21
|
+
text: `Base64 encoded: ${encoded}`,
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
return {
|
|
28
|
+
isError: true,
|
|
29
|
+
content: [
|
|
30
|
+
{
|
|
31
|
+
type: "text",
|
|
32
|
+
text: `Error encoding to Base64: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|