
IT Tools
STDIOComprehensive IT tools server with 87 utilities for developers and IT professionals.
Comprehensive IT tools server with 87 utilities for developers and IT professionals.
📝 Note: A condensed version of this README is automatically synced to Docker Hub due to character limits.
A comprehensive Model Context Protocol (MCP) server that provides access to over 121 IT tools and utilities commonly used by developers, system administrators, and IT professionals. This server exposes a complete set of tools for encoding/decoding, text manipulation, hashing, network utilities, and many other common development and IT tasks.
Quick Install:
Install:
Ctrl+Shift+P
(or Cmd+Shift+P
on Mac)it-tools-mcp
Or manually add to your VS Code settings.json
:
{ "mcp": { "servers": { "it-tools": { "command": "npx", "args": ["it-tools-mcp"], "env": {} } } } }
{ "mcp": { "servers": { "it-tools": { "command": "docker", "args": [ "run", "-i", "--rm", "--init", "--security-opt", "no-new-privileges:true", "--cap-drop", "ALL", "--read-only", "--user", "1001:1001", "--memory=256m", "--cpus=0.5", "--name", "it-tools-mcp", "wrenchpilot/it-tools-mcp:latest" ] } } }
docker run -it --rm wrenchpilot/it-tools-mcp:latest
# Generate a UUID echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"generate_uuid","arguments":{}}}' | \ docker run -i --rm wrenchpilot/it-tools-mcp:latest # Encode text to Base64 echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"encode_base64","arguments":{"text":"Hello World"}}}' | \ docker run -i --rm wrenchpilot/it-tools-mcp:latest
This server includes full MCP logging support with the following features:
logging_setLevel
: Change the minimum logging level at runtimelogging_status
: View current logging configuration and available levels# Check current logging status echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"logging_status","arguments":{}}}' | npx it-tools-mcp # Change log level to debug echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"logging_setLevel","arguments":{"level":"debug"}}}' | npx it-tools-mcp # Change log level to error (only show errors and above) echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"logging_setLevel","arguments":{"level":"error"}}}' | npx it-tools-mcp
This server implements the complete MCP 2025-06-18 specification including advanced utilities:
ping
requests to verify connection status_meta.progressToken
in requests to enable progress notificationsnotifications/progress
with current statusnotifications/cancelled
to abort in-progress requestssampling/createMessage
# Test connection health with ping echo '{"jsonrpc":"2.0","id":1,"method":"ping"}' | npx it-tools-mcp # Request with progress tracking echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"some_tool","arguments":{},"_meta":{"progressToken":"track123"}}}' | npx it-tools-mcp # Cancel a request (send as notification) echo '{"jsonrpc":"2.0","method":"notifications/cancelled","params":{"requestId":"2","reason":"User cancelled"}}' | npx it-tools-mcp # Test sampling capabilities echo '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"mcp_sampling_demo","arguments":{"message":"What is the capital of France?","modelPreference":"claude","systemPrompt":"You are a helpful assistant.","maxTokens":100}}}' | npx it-tools-mcp # Demo MCP utilities echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"mcp_utilities_demo","arguments":{"operation":"ping"}}}' | npx it-tools-mcp
This MCP server provides over 121 tools across 14 categories:
Examples of using the IT Tools MCP server with VS Code Copilot Chat for secure password hashing and creative ASCII art generation.
Tool | Description | Parameters |
---|---|---|
Ansible Tools | ||
parse_ansible_inventory | Parse Ansible inventory | inventory: string |
generate_ansible_inventory | Generate Ansible inventory | hosts: string[] , groups?: Record<string, string[]> , variables?: Record<string, any> |
validate_ansible_playbook | Validate Ansible playbook YAML | playbook: string |
show_ansible_reference | Ansible syntax and module reference | query?: string |
decrypt_ansible_vault | Decrypt Ansible Vault data | data: string , password: string |
encrypt_ansible_vault | Encrypt data with Ansible Vault | data: string , password: string |
Color Tools | ||
convert_hex_to_rgb | Convert HEX to RGB | hex: string |
convert_rgb_to_hex | Convert RGB to HEX | r: number , g: number , b: number |
Data Format | ||
convert_html_to_markdown | Convert HTML to Markdown | html: string |
compare_json | Compare JSON objects | json1: string , json2: string |
format_json | Format and validate JSON | json: string , indent?: number |
minify_json | Minify JSON | json: string |
convert_json_to_csv | Convert JSON to CSV | json: string , delimiter?: string |
convert_json_to_toml | Convert JSON to TOML | json: string |
convert_markdown_to_html | Convert Markdown to HTML | markdown: string |
format_phone | Parse and format phone numbers | phoneNumber: string , countryCode?: string |
format_sql | Format SQL | sql: string , dialect?: 'sql' | 'mysql' | 'postgresql' | 'sqlite' | 'mariadb' | 'db2' | 'plsql' | 'n1ql' | 'redshift' | 'spark' | 'tsql' | 'trino' | 'bigquery' (optional, default: 'sql') |
convert_toml_to_json | Convert TOML to JSON | toml: string |
format_xml | Format XML | xml: string , indent?: number |
format_yaml | Format YAML | yaml: string |
Development Tools | ||
generate_crontab | Generate cron expressions | minute?: string , hour?: string , dayOfMonth?: string , month?: string , dayOfWeek?: string |
format_html | Format and prettify HTML | html: string , indent?: number |
format_javascript | Format and prettify JavaScript | javascript: string , indent?: number |
convert_list | Convert list formats | list: string , inputFormat: 'comma' | 'semicolon' | 'newline' | 'space' | 'pipe' , outputFormat: 'comma' | 'semicolon' | 'newline' | 'space' | 'pipe' | 'json' | 'quoted' , trim?: boolean |
generate_markdown_toc | Generate table of contents for Markdown | markdown: string , maxDepth?: number |
test_regex | Test regular expressions | pattern: string , text: string , flags?: string |
Docker Tools | ||
convert_docker_compose_to_run | Convert Compose to Docker run command | compose: string , service?: string |
validate_docker_compose | Validate Docker Compose YAML | compose: string |
show_docker_reference | Docker command and syntax reference | query?: string |
convert_docker_run_to_compose | Convert Docker run to Compose | command: string |
generate_traefik_compose | Generate Traefik Docker Compose | domain: string , service: string , port?: number , network?: string |
Encoding & Decoding | ||
decode_base64 | Decode Base64 text | text: string |
encode_base64 | Encode text to Base64 | text: string |
decode_html | Decode HTML entities | text: string |
encode_html | Encode HTML entities | text: string |
encode_html_entities | Extended HTML entity encoding/decoding | text: string , operation: 'encode' | 'decode' |
convert_text_to_binary | Convert text to binary and vice versa | input: string , operation: 'encode' | 'decode' |
convert_text_to_unicode | Convert text to Unicode and vice versa | input: string , operation: 'encode' | 'decode' |
decode_url | URL decode text | text: string |
encode_url | URL encode text | text: string |
Forensic Tools | ||
identify_file_type | Identify file type from content | data: string , filename?: string |
decode_safelink | Decode Microsoft SafeLinks | url: string |
fang_url | Fang and defang URLs for analysis | text: string , operation: 'fang' | 'defang' |
ID & Code Generators | ||
generate_qr_code | Generate QR codes for any content | text: string , size?: number - Supports URLs, WiFi (WIFI:T:WPA;S:network;P:password;;), contact info, etc. |
generate_svg_placeholder | Generate SVG placeholder | width?: number , height?: number , text?: string , backgroundColor?: string , textColor?: string |
generate_ulid | Generate ULID | None |
generate_uuid | Generate UUID v4 | None |
Math & Calculations | ||
evaluate_math | Evaluate expressions | expression: string |
convert_number_base | Convert number bases | number: string , fromBase: number , toBase: number |
calculate_percentage | Calculate percentages | operation: 'percentage-of' | 'what-percentage' | 'percentage-change' , value1: number , value2: number |
convert_roman_numerals | Convert Roman numerals | input: string |
convert_temperature | Convert temperatures | temperature: number , from: 'celsius' | 'fahrenheit' | 'kelvin' , to: 'celsius' | 'fahrenheit' | 'kelvin' |
convert_unix_timestamp | Convert timestamps | input: string |
Network & System | ||
cat | Display file content | file: string |
curl | HTTP client (GET, POST, etc.) | url: string , method?: string , headers?: Record<string, string> , body?: string |
dig | DNS query (custom type) | target: string , type?: string |
grep | Search for pattern in file | file: string , pattern: string |
head | Show first N lines of file | file: string , lines?: number |
validate_iban | Validate IBAN | iban: string |
calculate_ip_subnet | Calculate IPv4 subnet | ip: string , cidr: number |
calculate_ipv4_subnet | Enhanced IPv4 subnet calc | cidr: string |
generate_ipv6_ula | Generate IPv6 ULA | globalId?: string |
generate_mac_address | Generate MAC address | prefix?: string , separator?: ':' | '-' |
nslookup | DNS lookup (A/AAAA/CNAME) | target: string |
ping | Ping a host | target: string , count?: number |
ps | List running processes | None |
generate_random_port | Generate random ports | count?: number , min?: number , max?: number , exclude?: number[] |
scp | Copy files to/from remote host (SFTP) | target: string , user: string , direction: 'upload'|'download' , localPath: string , remotePath: string , privateKey?: string |
ssh | SSH command execution | target: string , user: string , command: string |
tail | Show last N lines of file | file: string , lines?: number |
telnet | Test TCP connectivity | target: string , port: number |
top | Show top processes (by CPU) | None |
parse_url | Parse URL components | url: string |
Physics | ||
convert_angle | Convert angle units | value: number , from: 'degrees' | 'radians' | 'gradians' , to: 'degrees' | 'radians' | 'gradians' |
convert_energy | Convert energy units | value: number , from: 'joules' | 'calories' | 'kwh' | 'btu' , to: 'joules' | 'calories' | 'kwh' | 'btu' |
convert_power | Convert power units | value: number , from: 'watts' | 'kilowatts' | 'horsepower' | 'btu_per_hour' , to: 'watts' | 'kilowatts' | 'horsepower' | 'btu_per_hour' |
Security & Crypto | ||
generate_basic_auth | Generate Basic Auth header | username: string , password: string |
hash_bcrypt | Generate/verify bcrypt hash | password: string , rounds?: number , hash?: string |
generate_bip39 | Generate BIP39 mnemonic | wordCount?: '12' | '15' | '18' | '21' | '24' |
hash_md5 | Generate MD5 hash | text: string |
hash_sha1 | Generate SHA1 hash | text: string |
hash_sha256 | Generate SHA256 hash | text: string |
hash_sha512 | Generate SHA512 hash | text: string |
generate_hmac | Generate HMAC | message: string , key: string , algorithm?: 'sha1' | 'sha256' | 'sha512' |
decode_jwt | Decode JWT token | token: string |
generate_otp | Generate TOTP codes | secret: string , digits?: number , period?: number |
generate_password | Generate secure password | length?: number , includeUppercase?: boolean , includeLowercase?: boolean , includeNumbers?: boolean , includeSymbols?: boolean |
generate_token | Generate secure token | length?: number , charset?: 'alphanumeric' | 'hex' | 'base64' | 'custom' , customChars?: string |
Text Processing | ||
generate_ascii_art | Generate ASCII art | text: string , font?: string (supports 295+ figlet fonts) |
analyze_distinct_words | Extract unique words from text | text: string , caseSensitive?: boolean |
search_emoji | Search emojis | query: string |
generate_lorem_ipsum | Generate Lorem Ipsum | type?: 'words' | 'sentences' | 'paragraphs' , count?: number |
generate_numeronym | Generate numeronyms | text: string |
slugify_text | Convert to URL slug | text: string , separator?: string , lowercase?: boolean |
obfuscate_string | Obfuscate text | text: string , method?: 'html-entities' | 'unicode' | 'base64' |
convert_to_camelcase | Convert to camelCase | text: string |
capitalize_text | Capitalize words | text: string |
compare_text | Compare texts | text1: string , text2: string |
convert_text_to_kebabcase | Convert to kebab-case | text: string |
convert_text_to_lowercase | Convert to lowercase | text: string |
convert_text_to_pascalcase | Convert to PascalCase | text: string |
text_snakecase | Convert to snake_case | text: string |
analyze_text_stats | Get text statistics | text: string |
convert_text_to_nato | Convert to NATO alphabet | text: string |
show_unicode_names | Convert text to Unicode character names | text: string |
convert_text_to_uppercase | Convert to uppercase | text: string |
Utility Tools | ||
format_css | Format and prettify CSS | css: string , indent?: number |
show_device_info | Get system information | None |
normalize_email | Normalize email addresses | email: string |
lookup_http_status | HTTP status reference | code?: number |
lookup_mime_types | Look up MIME types | input: string , lookupType?: 'extension-to-mime' | 'mime-to-extension' |
lookup_port_numbers | Look up port number assignments | port?: number , service?: string |
convert_rem_px | Convert between REM and PX units | value: number , conversion: 'rem-to-px' | 'px-to-rem' , baseFontSize?: number |
Built with TypeScript, Zod validation, and MCP SDK for robust, type-safe operation.
This project was developed using VS Code, Copilot Chat Agent, Playwright MCP, and the Claude Sonnet 4 Model, demonstrating the power of AI-assisted software development:
Key AI Contributions:
This showcases how AI can accelerate development while maintaining code quality, proper architecture, and comprehensive testing.
src/tools/
index.ts
npm run build
src/ ├── index.ts # Main MCP server with dynamic tool loading └── tools/ # Modular tool categories ├── ansible/ # 5 Ansible automation tools ├── color/ # 2 Color conversion tools ├── crypto/ # 9 Cryptographic & security tools ├── dataFormat/ # 12 Data format conversion tools ├── development/ # 6 Development utilities ├── docker/ # 5 Docker & containerization tools ├── encoding/ # 8 Encoding/decoding tools ├── forensic/ # 3 Digital forensics tools ├── idGenerators/ # 4 ID & code generation tools ├── math/ # 6 Mathematical operation tools ├── network/ # 23 Network utilities ├── physics/ # 3 Physics calculation tools ├── text/ # 19 Text manipulation tools └── utility/ # 7 General utility tools
Contributions are welcome! Please follow the guidelines below:
This project uses Conventional Commits for clear, consistent commit messages.
Version Management:
Examples:
git commit -m "feat: add new encryption tool" # → minor version bump git commit -m "fix: resolve base64 decoding issue" # → patch version bump git commit -m "docs: improve README examples" # → patch version bump git commit -m "feat!: breaking API change" # → major version bump # Version is automatically bumped and committed by git hooks # No manual npm version commands needed! git push
📖 See COMMIT_TEMPLATE_SETUP.md for setup instructions.
./setup-commit-template.sh
(recommended)The CI/CD pipeline will automatically:
MIT License - see LICENSE for details.
Inspired by IT Tools - online tools for developers.
This project incorporates select tools from the @sharevb fork which extends IT Tools with additional utilities and enhancements.