IT工具MCP服务器
 ](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/issues) ](https://github.com/wrenchpilot/it-tools-mcp/commits/main) ](https://hub.docker.com/r/wrenchpilot/it-tools-mcp) ](https://github.com/wrenchpilot/it-tools-mcp/stargazers)
📝 备注:此README的压缩版本会自动同步到 由于字符限制。
一个全面的模型上下文协议(MCP)服务器,提供对开发人员、系统管理员和IT专业人员常用的121多种IT工具和实用程序的访问。该服务器提供了一套完整的工具,用于编码/解码、文本操作、哈希、网络实用程序以及许多其他常见的开发和IT任务。
星迹

📦 安装和设置
与VS代码一起使用
快速安装:
安装:
- 打开VS代码
- 按
Ctrl+Shift+P(或Cmd+Shift+P在Mac上) - 键入“MCP”并选择“MCP:添加服务器”
- 选择“NPM包”并输入:
it-tools-mcp
或者手动添加到您的VS代码中 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� MCP日志记录功能
此服务器包括完整的MCP日志支持,具有以下功能:
日志级别
- 调试 (0):详细的调试信息
- 信息 (1) :一般信息信息
- 通知 (2) :正常但重要的事件
- 警告 (3) :警告条件
- 错误 (4) :错误条件
- 关键的 (5) :临界条件
- 警报 (6) :必须立即采取行动
- 紧急情况 (7) :系统不可用
日志记录工具
logging_setLevel:更改运行时的最低日志记录级别logging_status:查看当前日志配置和可用级别
环境意识行为
- 开发模式:默认情况下为调试级别,增强的控制台输出
- 生产模式:默认情况下为信息级别,用于MCP合规性的干净输出
- 自动回退:MCP传输未就绪时的控制台日志记录
使用示例
# 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🔧 MCP协议实用程序
该服务器实现了完整的MCP 2025-06-18规范,包括高级实用程序:
Ping实用程序
- 健康检查:使用
ping请求验证连接状态 - 自动应答:服务器根据MCP规范迅速响应,结果为空
- 连接监控:实施定期健康检查
进度跟踪
- 长期运行操作:接收耗时任务的进度更新
- 进度令牌:包括
_meta.progressToken在请求中启用进度通知 - 通知:服务器发送
notifications/progress当前状态
请求取消
- 优雅的取消:发送
notifications/cancelled中止正在进行的请求 - 资源清理:取消请求时,服务器会正确释放资源
- 比赛状态处理:对时间边缘情况的稳健处理
采样支持
- LLM集成:服务器可以使用以下命令向客户端请求LLM完成
sampling/createMessage - 模型首选项:支持模型选择提示和能力优先级(成本、速度、智能)
- 内容类型:支持采样请求中的文本、图像和音频内容
- 代理工作流:通过嵌套LLM调用启用AI驱动的工具操作
- 客户端控制:客户对模型访问和用户批准保持完全控制
协议示例
# 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�🛠️ 工具类别
此MCP服务器提供 121工具 横跨 14个类别:
- � Ansible工具 (5个工具):保险库加密/解密、库存解析器、剧本验证器、参考
- 🎨 颜色工具 (2个工具):六角形↔ RGB转换
- 📝 数据格式 (12个工具):JSON、XML、YAML、SQL、TOML、Markdown↔ HTML转换、手机格式化
- �️ 开发工具 (6个工具):正则表达式测试、cron生成、列表转换、代码美化器、markdown TOC
- 🐳 Docker工具 (5个工具):编写验证、转换工具、Traefik生成器、参考
- 🔧 编码和解码 (8个工具):Base64、URL、HTML实体、文本到二进制
- 🔍 取证工具 (3个工具):文件类型识别、safelink解码、URL fanger
- 🆔 ID和代码生成器 (4个工具:UUID、ULID、二维码、SVG占位符
- 🔢 数学与计算 (6个工具):表达式求值、基数转换、温度、百分比、Unix时间戳、罗马数字
- 🌐 网络与系统 (23个工具):IPv4/IPv6子网、URL解析、MAC地址、ps、top、cat、head、tail、grep、ping、nslookup、telnet、dig、ssh、scp、curl、IBAN验证
- ⚡ 物理学 (3个工具):角度、能量和功率单位转换
- 🔐 安全与加密 (12个工具):哈希(MD5、SHA1、SHA256、SHA512)、HMAC、JWT、bcrypt、密码、令牌、OTP、BIP39
- ✨ 文本处理 (19个工具):大小写转换、统计数据、差异、ASCII艺术、北约字母表、slugify、Unicode
- 🛠️ 实用工具 (7个工具):电子邮件规范化、MIME类型、HTTP状态码、设备信息、CSS美化器、rem/px转换器
📸 屏幕截图示例
密码哈希生成示例
ASCII艺术文本生成示例
使用IT Tools MCP服务器和VS Code Copilot Chat进行安全密码哈希和创造性ASCII艺术生成的示例。
可用工具
| 工具 | 说明 | 参数 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Ansible工具 | ||||||||||||||
parse_ansible_inventory | 解析Ansible库存 | inventory: string | ||||||||||||
generate_ansible_inventory | 生成可靠的库存 | hosts: string[], groups?: Record, variables?: Record | ||||||||||||
validate_ansible_playbook | 验证Ansible剧本YAML | playbook: string | ||||||||||||
show_ansible_reference | 可理解的语法和模块引用 | query?: string | ||||||||||||
decrypt_ansible_vault | 解密可解析的Vault数据 | data: string, password: string | ||||||||||||
encrypt_ansible_vault | 使用Ansible Vault加密数据 | data: string, password: string | ||||||||||||
| 颜色工具 | ||||||||||||||
convert_hex_to_rgb | 将HEX转换为RGB | hex: string | ||||||||||||
convert_rgb_to_hex | 将RGB转换为HEX | r: number, g: number, b: number | ||||||||||||
| 数据格式 | ||||||||||||||
convert_html_to_markdown | 将HTML转换为Markdown | html: string | ||||||||||||
compare_json | 比较JSON对象 | json1: string, json2: string | ||||||||||||
format_json | 格式化和验证JSON | json: string, indent?: number | ||||||||||||
minify_json | 缩小JSON | json: string | ||||||||||||
convert_json_to_csv | 将JSON转换为CSV | json: string, delimiter?: string | ||||||||||||
convert_json_to_toml | 将JSON转换为TOML | json: string | ||||||||||||
convert_markdown_to_html | 将Markdown转换为HTML | markdown: string | ||||||||||||
format_phone | 解析和格式化电话号码 | phoneNumber: string, countryCode?: string | ||||||||||||
format_sql | 设置SQL格式 | sql: string, `dialect?: 'sql' \ | 'mysql' \ | 'postgresql' \ | 'sqlite' \ | 'mariadb' \ | 'db2' \ | 'plsql' \ | 'n1ql' \ | 'redshift' \ | 'spark' \ | 'tsql' \ | 'trino' \ | 'bigquery'` (可选,默认:“sql”) |
convert_toml_to_json | 将TOML转换为JSON | toml: string | ||||||||||||
format_xml | 格式化XML | xml: string, indent?: number | ||||||||||||
format_yaml | 格式化YAML | yaml: string | ||||||||||||
| 开发工具 | ||||||||||||||
generate_crontab | 生成cron表达式 | minute?: string, hour?: string, dayOfMonth?: string, month?: string, dayOfWeek?: string | ||||||||||||
format_html | 格式化和美化HTML | html: string, indent?: number | ||||||||||||
format_javascript | 格式化和美化JavaScript | javascript: string, indent?: number | ||||||||||||
convert_list | 转换列表格式 | list: string, `inputFormat: 'comma' \ | 'semicolon' \ | 'newline' \ | 'space' \ | 'pipe', outputFormat: 'comma' \ | 'semicolon' \ | 'newline' \ | 'space' \ | 'pipe' \ | 'json' \ | 'quoted', trim?: boolean` | ||
generate_markdown_toc | 为Markdown生成目录 | markdown: string, maxDepth?: number | ||||||||||||
test_regex | 测试正则表达式 | pattern: string, text: string, flags?: string | ||||||||||||
| Docker工具 | ||||||||||||||
convert_docker_compose_to_run | 将Compose转换为Docker run命令 | compose: string, service?: string | ||||||||||||
validate_docker_compose | 验证Docker编写YAML | compose: string | ||||||||||||
show_docker_reference | Docker命令和语法参考 | query?: string | ||||||||||||
convert_docker_run_to_compose | 将Docker run转换为Compose | command: string | ||||||||||||
generate_traefik_compose | 生成Traefik Docker Compose | domain: string, service: string, port?: number, network?: string | ||||||||||||
| 编码和解码 | ||||||||||||||
decode_base64 | 解码Base64文本 | text: string | ||||||||||||
encode_base64 | 将文本编码为Base64 | text: string | ||||||||||||
decode_html | 解码HTML实体 | text: string | ||||||||||||
encode_html | 对HTML实体进行编码 | text: string | ||||||||||||
encode_html_entities | 扩展HTML实体编码/解码 | text: string, `operation: 'encode' \ | 'decode'` | |||||||||||
convert_text_to_binary | 将文本转换为二进制,反之亦然 | input: string, `operation: 'encode' \ | 'decode'` | |||||||||||
convert_text_to_unicode | 将文本转换为Unicode,反之亦然 | input: string, `operation: 'encode' \ | 'decode'` | |||||||||||
decode_url | URL解码文本 | text: string | ||||||||||||
encode_url | URL编码文本 | text: string | ||||||||||||
| 取证工具 | ||||||||||||||
identify_file_type | 从内容中识别文件类型 | data: string, filename?: string | ||||||||||||
decode_safelink | 解码Microsoft安全链接 | url: string | ||||||||||||
fang_url | Fang和defang网址用于分析 | text: string, `operation: 'fang' \ | 'defang'` | |||||||||||
| ID和代码生成器 | ||||||||||||||
generate_qr_code | 为任何内容生成二维码 | text: string, size?: number -支持URL、WiFi(WiFi:T:WPA;S:网络;P:密码;)、联系信息等。 | ||||||||||||
generate_svg_placeholder | 生成SVG占位符 | width?: number, height?: number, text?: string, backgroundColor?: string, textColor?: string | ||||||||||||
generate_ulid | 生成ULID | 无 | ||||||||||||
generate_uuid | 生成UUID v4 | 无 | ||||||||||||
| 数学与计算 | ||||||||||||||
evaluate_math | 计算表达式 | expression: string | ||||||||||||
convert_number_base | 转换数字基数 | number: string, fromBase: number, toBase: number | ||||||||||||
calculate_percentage | 计算百分比 | `operation: 'percentage-of' \ | 'what-percentage' \ | 'percentage-change', value1: number, value2: number` | ||||||||||
convert_roman_numerals | 转换罗马数字 | input: string | ||||||||||||
convert_temperature | 转换温度 | temperature: number, `from: 'celsius' \ | 'fahrenheit' \ | 'kelvin', to: 'celsius' \ | 'fahrenheit' \ | 'kelvin'` | ||||||||
convert_unix_timestamp | 转换时间戳 | input: string | ||||||||||||
| 网络与系统 | ||||||||||||||
cat | 显示文件内容 | file: string | ||||||||||||
curl | HTTP客户端(GET、POST等) | url: string, method?: string, headers?: Record, body?: string | ||||||||||||
dig | DNS查询(自定义类型) | target: string, type?: string | ||||||||||||
grep | 在文件中搜索图案 | file: string, pattern: string | ||||||||||||
head | 显示文件的前N行 | file: string, lines?: number | ||||||||||||
validate_iban | 验证IBAN | iban: string | ||||||||||||
calculate_ip_subnet | 计算IPv4子网 | ip: string, cidr: number | ||||||||||||
calculate_ipv4_subnet | 增强的IPv4子网计算 | cidr: string | ||||||||||||
generate_ipv6_ula | 生成IPv6 ULA | globalId?: string | ||||||||||||
generate_mac_address | 生成MAC地址 | prefix?: string, `separator?: ':' \ | '-'` | |||||||||||
nslookup | DNS查询(A/AAAA/CCNAME) | target: string | ||||||||||||
ping | Ping主机 | target: string, count?: number | ||||||||||||
ps | 列出正在运行的进程 | 无 | ||||||||||||
generate_random_port | 生成随机端口 | count?: number, min?: number, max?: number, exclude?: number[] | ||||||||||||
scp | 将文件复制到远程主机(SFTP)或从远程主机复制文件 | target: string, user: string, `direction: 'upload'\ | 'download', localPath: string, remotePath: string, privateKey?: string` | |||||||||||
ssh | SSH命令执行 | target: string, user: string, command: string | ||||||||||||
tail | 显示文件的最后N行 | file: string, lines?: number | ||||||||||||
telnet | 测试TCP连接 | target: string, port: number | ||||||||||||
top | 显示顶级进程(按CPU) | 无 | ||||||||||||
parse_url | 解析URL组件 | url: string | ||||||||||||
| 物理学 | ||||||||||||||
convert_angle | 转换角度单位 | value: number, `from: 'degrees' \ | 'radians' \ | 'gradians', to: 'degrees' \ | 'radians' \ | 'gradians'` | ||||||||
convert_energy | 转换能量单位 | value: number, `from: 'joules' \ | 'calories' \ | 'kwh' \ | 'btu', to: 'joules' \ | 'calories' \ | 'kwh' \ | 'btu'` | ||||||
convert_power | 转换电源单元 | value: number, `from: 'watts' \ | 'kilowatts' \ | 'horsepower' \ | 'btu_per_hour', to: 'watts' \ | 'kilowatts' \ | 'horsepower' \ | 'btu_per_hour'` | ||||||
| 安全与加密 | ||||||||||||||
generate_basic_auth | 生成基本身份验证标头 | username: string, password: string | ||||||||||||
hash_bcrypt | 生成/验证bcrypt哈希 | password: string, rounds?: number, hash?: string | ||||||||||||
generate_bip39 | 生成BIP39助记符 | `wordCount?: '12' \ | '15' \ | '18' \ | '21' \ | '24'` | ||||||||
hash_md5 | 生成MD5哈希 | text: string | ||||||||||||
hash_sha1 | 生成SHA1哈希 | text: string | ||||||||||||
hash_sha256 | 生成SHA256哈希 | text: string | ||||||||||||
hash_sha512 | 生成SHA512哈希 | text: string | ||||||||||||
generate_hmac | 生成HMAC | message: string, key: string, `algorithm?: 'sha1' \ | 'sha256' \ | 'sha512'` | ||||||||||
decode_jwt | 解码JWT令牌 | token: string | ||||||||||||
generate_otp | 生成TOTP代码 | secret: string, digits?: number, period?: number | ||||||||||||
generate_password | 生成安全密码 | length?: number, includeUppercase?: boolean, includeLowercase?: boolean, includeNumbers?: boolean, includeSymbols?: boolean | ||||||||||||
generate_token | 生成安全令牌 | length?: number, `charset?: 'alphanumeric' \ | 'hex' \ | 'base64' \ | 'custom', customChars?: string` | |||||||||
| 文本处理 | ||||||||||||||
generate_ascii_art | 生成ASCII艺术 | text: string, font?: string (支持295多种figlet字体) | ||||||||||||
analyze_distinct_words | 从文本中提取独特的单词 | text: string, caseSensitive?: boolean | ||||||||||||
search_emoji | 搜索表情符号 | query: string | ||||||||||||
generate_lorem_ipsum 生成Lorem Ipsum。 `type?: 'words' \ | 'sentences' \ | 'paragraphs', count?: number` | ||||||||||||
generate_numeronym | 生成数字 | text: string | ||||||||||||
slugify_text | 转换为URL slug | text: string, separator?: string, lowercase?: boolean | ||||||||||||
obfuscate_string | 混淆文本 | text: string, `method?: 'html-entities' \ | 'unicode' \ | 'base64'` | ||||||||||
convert_to_camelcase | 转换为camelCase | text: string | ||||||||||||
capitalize_text | 将单词大写 | text: string | ||||||||||||
compare_text | 比较文本 | text1: string, text2: string | ||||||||||||
convert_text_to_kebabcase | 转换为烤肉箱 | text: string | ||||||||||||
convert_text_to_lowercase | 转换为小写 | text: string | ||||||||||||
convert_text_to_pascalcase | 转换为PascalCase | text: string | ||||||||||||
text_snakecase | 转换为snake_case | text: string | ||||||||||||
analyze_text_stats | 获取文本统计信息 | text: string | ||||||||||||
convert_text_to_nato | 转换为北约字母表 | text: string | ||||||||||||
show_unicode_names | 将文本转换为Unicode字符名 | text: string | ||||||||||||
convert_text_to_uppercase | 转换为大写 | text: string | ||||||||||||
| 实用工具 | ||||||||||||||
format_css | 格式化和美化CSS | css: string, indent?: number | ||||||||||||
show_device_info | 获取系统信息 | 无 | ||||||||||||
normalize_email | 规范电子邮件地址 | email: string | ||||||||||||
lookup_http_status | HTTP状态参考 | code?: number | ||||||||||||
lookup_mime_types | 查找MIME类型 | input: string, `lookupType?: 'extension-to-mime' \ | 'mime-to-extension'` | |||||||||||
lookup_port_numbers | 查找端口号分配 | port?: number, service?: string | ||||||||||||
convert_rem_px | 在REM和PX单元之间转换 | value: number, `conversion: 'rem-to-px' \ | 'px-to-rem', baseFontSize?: number` |
🏗️ 建筑与开发
建于 TypeScript, 黄道带 验证,以及 MCP-SDK 用于坚固、类型安全的操作。
🤖 人工智能辅助开发
该项目是使用 VS Code, Copilot聊天代理, 剧作家MCP,以及 克劳德十四行诗4模型,展示了人工智能辅助软件开发的力量:
- 智能代码生成:Claude Sonnet分析了需求并生成了全面的工具实现
- 模式验证:跨工具自动识别和解决JSON模式验证问题
- Docker优化:创建了生产就绪的Docker工作流和多阶段构建
- 文档:生成了包含示例和工具参考表的全面自述文件
- 测试:在整个代码库中实施了稳健的错误处理和验证
人工智能的主要贡献:
- 🔧 工具实施:所有在人工智能协助下设计和实施的工具
- 📦 Docker设置:使用GitHub Actions CI/CD管道完成容器化
- 🔍 架构清理:从所有工具定义中系统地删除不受支持的Zod关键字
- 📚 文档:包含使用示例和工具目录的全面自述文件
- 🚀 生产就绪:Docker Hub发布、徽章和专业部署设置
这展示了人工智能如何在保持代码质量、适当架构和全面测试的同时加速开发。
添加新工具
- 在以下相应类别中创建工具目录
src/tools/ - 使用Zod定义具有输入模式的工具
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🤝 贡献
欢迎投稿!请遵循以下指南:
提交消息格式
此项目使用 约定式提交 以获得清晰、一致的提交消息。
版本管理:
- 🤖 自动版本碰撞 -Git挂钩根据提交消息类型自动更新版本
- 🤖 自动发布 -CI/CD检测更改并自动发布
- 🏷️ Git标签 -基于常规提交消息自动创建
示例:
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📖 看 COMMIT_TEMPLATE_SETUP.md 有关设置说明。
开发流程
- 分叉存储库
- 跑
./setup-commit-template.sh(推荐) - 创建要素分支
- 根据项目结构进行更改
- 使用常规提交消息
- 提交拉取请求
CI/CD管道将自动:
- ✅ 构建并测试您的更改
- 🏷️ 基于提交消息的Bump版本(合并到main时)
- 📦 发布到Docker Hub和NPM
- 🚀 创建GitHub版本
📄 许可证
MIT许可证-请参阅 许可证 了解详情。
🔗 相关
灵感源自 IT工具 -开发人员的在线工具。
该项目整合了以下精选工具 @sharevb分叉 它通过附加的实用程序和增强功能扩展了IT工具。
