Atlas / MCP servers / wrenchpilot / IT Tools

IT ToolsBLOCK

mcp/wrenchpilot/it-tools

A comprehensive Model Context Protocol (MCP) server that provides access to over 100 IT tools and utilities commonly used by developers, system administrators, and IT professionals. Inspired by https://github.com/CorentinTh/it-tools

Verdict
BLOCK
Grade
F
Trust score
50 /100
Exposed tools
119 117r · 2w · 0d
Transport
stdio
License
MIT
Stars
22
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[!WARNING] This project is deprecated and no longer maintained. It was built as a learning exercise to explore AI-assisted development and the Model Context Protocol (MCP). No further updates, bug fixes, or pull requests will be accepted. The repository is kept for reference only. If you need an actively maintained MCP server with IT utilities, look for community alternatives.

[](https://github.com/wrenchpilot/it-tools-mcp/actions/workflows/main.yml) [](https://hub.docker.com/r/wrenchpilot/it-tools-mcp) [](https://hub.docker.com/r/wrenchpilot/it-tools-mcp) [](https://www.npmjs.com/package/it-tools-mcp) [](https://www.npmjs.com/package/it-tools-mcp) [](https://github.com/wrenchpilot/it-tools-mcp/releases) [](https://github.com/wrenchpilot/it-tools-mcp/blob/main/LICENSE) [](https://github.com/wrenchpilot/it-tools-mcp/issues) [](https://github.com/wrenchpilot/it-tools-mcp/commits/main) [](https://hub.docker.com/r/wrenchpilot/it-tools-mcp) [](https://github.com/wrenchpilot/i

Read from source at commit 6482048f6d3cOBSERVED · 2026-10-10
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code (npm)
claude mcp add it-tools-mcp -- npx -y [email protected]
claude-code (oci)
claude mcp add it-tools-mcp:v5.10.9 -- docker run -i --rm docker.io/wrenchpilot/it-tools-mcp:v5.10.9:None
03

Exposed tools (119)

117 read · 2 write · 0 destructive.

ToolRiskDescription
analyze_distinct_wordsread
analyze_text_statsread
calculate_ip_subnetread
calculate_ipv4_subnetread
calculate_ipv6_subnetread
calculate_percentageread
capitalize_textread
catread
compare_jsonread
compare_textread
convert_angleread
convert_cidr_to_ip_rangeread
convert_docker_compose_to_runwrite
convert_docker_run_to_composewrite
convert_energyread
convert_hex_to_rgbread
convert_html_to_markdownread
convert_ip_range_to_cidrread
convert_json_to_csvread
convert_json_to_tomlread
convert_listread
convert_markdown_to_htmlread
convert_number_baseread
convert_powerread
convert_rem_pxread
convert_rgb_to_hexread
convert_roman_numeralsread
convert_temperatureread
convert_text_to_binaryread
convert_text_to_camelcaseread
convert_text_to_kebabcaseread
convert_text_to_lowercaseread
convert_text_to_natoread
convert_text_to_pascalcaseread
convert_text_to_unicoderead
convert_text_to_uppercaseread
convert_toml_to_jsonread
convert_unix_timestampread
curlread
decode_base64read
decode_htmlread
decode_jwtread
decode_safelinkread
decode_urlread
decrypt_ansible_vaultread
digread
encode_base64read
encode_htmlread
encode_html_entitiesread
encode_urlread
encrypt_ansible_vaultread
evaluate_mathread
fang_urlread
format_cssread
format_htmlread
format_javascriptread
format_jsonread
format_phoneread
format_sqlread
format_xmlread
format_yamlread
generate_ansible_inventoryread
generate_ascii_artread
generate_basic_authread
generate_bip39read
generate_crontabread
generate_hmacread
generate_ipv6_ularead
generate_lorem_ipsumread
generate_mac_addressread
generate_markdown_tocread
generate_numeronymread
generate_otpread
generate_passwordread
generate_qr_coderead
generate_random_portread
generate_svg_placeholderread
generate_tokenread
generate_traefik_composeread
generate_ulidread
generate_uuidread
grepread
hash_bcryptread
hash_md5read
hash_sha1read
hash_sha256read
hash_sha512read
headread
identify_file_typeread
logging_setLevelread
logging_statusread
lookup_http_statusread
lookup_mime_typesread
lookup_port_numbersread
minify_jsonread
normalize_emailread
nslookupread
obfuscate_stringread
parse_ansible_inventoryread
parse_urlread
pingread
psread
scpread
search_emojiread
show_ansible_referenceread
show_device_inforead
show_docker_referenceread
show_unicode_namesread
slugify_textread
sshread
system_inforead
tailread
telnetread
test_regexread
text_snakecaseread
topread
validate_ansible_playbookread
validate_docker_composeread
validate_ibanread
04

Trust audit

BLOCKgrade F · trust 50/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (4 observation(s))
Network
declared (7 observation(s))
Shell
declared (5 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (16)

HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/tools/ansible/generate_ansible_inventory/index.ts:38
parsed = yaml.load(inventory);
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/tools/ansible/parse_ansible_inventory/index.ts:38
parsed = yaml.load(inventory);
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/tools/ansible/validate_ansible_playbook/index.ts:35
parsed = yaml.load(playbook);
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/tools/data_format/format_yaml/index.ts:22
const parsed = YAML.load(yaml);
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
src/tools/docker/convert_docker_compose_to_run/index.ts:32
const parsed = yaml.load(content) as any;
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/tools/network/scp/index.ts:13
path.join(home, '.ssh', 'id_rsa'),
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/tools/network/scp/index.ts:14
path.join(home, '.ssh', 'id_ed25519'),
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/tools/network/ssh/index.ts:13
path.join(home, '.ssh', 'id_rsa'),
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
src/tools/network/ssh/index.ts:14
path.join(home, '.ssh', 'id_ed25519'),
Why it matters. touches a credential store
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
src/tools/text/search_emoji/index.ts:30
"dog": ["🐶", "🐕", "🦮", "🐕🦺"],
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
tests/all-tools-test.mjs:62
{ jsonrpc: "2.0", id: 29, method: "tools/call", params: { name: "decode_jwt", arguments: { token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2
LOWInventory / provenance · inv.hidden_file · CWE-1104
.gitmessage
.gitmessage
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/tools/crypto/hash_md5/index.ts:20
const hash = createHash('md5');
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
src/tools/crypto/hash_sha1/index.ts:20
const hash = createHash('sha1');
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
tests/all-tools-test.mjs:14
const sshPrivateKey = fs.existsSync(os.homedir() + '/.ssh/id_rsa') ? fs.readFileSync(os.homedir() + '/.ssh/id_rsa', 'utf8') : undefined;
Why it matters. touches a credential store
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@iarna/toml, @modelcontextprotocol/sdk, @types/js-yaml, @types/papaparse, @types/qrcode, bcryptjs, bip39, color
Why it matters. 49 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-10 · audit v0.4.1 · source sha 6482048f6d3cfull audit observations/trust-audit/mcp-server/wrenchpilot__it-tools.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-106482048f6d3cBLOCKF50first audit
06

Questions

What is the IT Tools MCP server?

A comprehensive Model Context Protocol (MCP) server that provides access to over 100 IT tools and utilities commonly used by developers, system administrators, and IT professionals. Inspired by https://github.com/CorentinTh/it-tools

What tools does IT Tools expose?

119 in total: 117 read-only, 2 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is IT Tools safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (50/100) and found 9 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does IT Tools need?

No credential environment variables were found in its source, so it appears to need none.

How does IT Tools run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as it-tools-mcp at 5.10.9.

How current is this page?

The grade is for one exact copy of the source (6482048f6d3c), read on 2026-10-10. The repository is watched and re-audited when it changes.

Advertisement