关于 it-tools-mcp
IT Tools MCP 服务提供 100 多项 IT 工具,涵盖编码解码、哈希、网络、文本处理与数据格式转换等功能,面向开发者和系统管理员。该项目已停止维护,仓库仅供参考。
主要功能
- 01编码解码与哈希计算
- 02JSON、YAML、XML 等格式转换与格式化
- 03子网、URL 与 MAC 地址等网络工具
- 04正则测试与 cron 表达式生成
- 05Docker Compose 校验与转换
- 06日志级别设置与协议工具
适用场景
- 01在 AI 客户端中快速完成 Base64 或 UUID 生成
- 02校验并转换 Docker Compose 配置
- 03将 JSON 转换为 CSV 或 TOML
MCP 相关
该项目是一个 MCP 服务,向客户端暴露约 121 个工具,并支持 ping、进度通知、请求取消与 sampling 等 MCP 协议功能。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
119收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| level | enum | 是 | 要报告的最低日志级别debug | info | notice | warning | error | critical | alert | emergency |
详细介绍
IT Tools MCP 服务
警告
此项目已弃用,不再维护。
此项目是一个学习练习,旨在探索 AI 辅助开发和 Model Context Protocol(MCP)。此后不会再接受任何更新、错误修复或拉取请求。此代码库仅供参考。
如果你需要包含 IT 实用工具且仍在积极维护的 MCP 服务,请寻找社区提供的替代方案。
📝 注意:由于字符数限制,此 README 的精简版会自动同步到 Docker Hub。
这是一个功能全面的 Model Context Protocol(MCP)服务,提供超过 121 种开发人员、系统管理员和 IT 专业人员常用的 IT 工具和实用程序。此服务提供了一整套工具,可用于编码/解码、文本处理、哈希、网络实用程序以及许多其他常见的开发和 IT 任务。
Star History
📦 安装与设置
在 VS Code 中使用
快速安装:
安装:
- 打开 VS Code
- 按
Ctrl+Shift+P(Mac 上按Cmd+Shift+P) - 输入“MCP”,然后选择“MCP: Add Server”
- 选择“NPM Package”,并输入:
it-tools-mcp
或者手动添加到 VS Code 的 settings.json:
Node
{
"mcp": {
"servers": {
"it-tools": {
"command": "npx",
"args": ["it-tools-mcp"],
"env": {}
}
}
}
}
Docker
{
"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 日志记录,具备以下功能:
日志级别
- debug (0):详细的调试信息
- info (1):常规信息消息
- notice (2):正常但重要的事件
- warning (3):警告情况
- error (4):错误情况
- critical (5):严重情况
- alert (6):必须立即采取行动
- emergency (7):系统无法使用
日志工具
logging_setLevel:在运行时更改最低日志级别logging_status:查看当前日志配置和可用级别
环境感知行为
- 开发模式:默认使用 debug 级别,增强控制台输出
- 生产模式:默认使用 info 级别,输出简洁,符合 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,中止正在进行的请求 - 资源清理:请求取消时,服务会妥善释放资源
- 竞态条件处理:稳健地处理时序边缘情况
采样支持
- 大模型集成:服务可以使用
sampling/createMessage向客户端请求大模型补全 - 模型偏好:支持模型选择提示和能力优先级(成本、速度、智能)
- 内容类型:支持采样请求中的文本、图像和音频内容
- Agent 工作流:通过嵌套的大模型调用,启用 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 服务在 14 个类别中提供了超过 121 个工具:
- � Ansible 工具(5 个工具):Vault 加密/解密、清单解析器、playbook 验证器、参考
- 🎨 颜色工具(2 个工具):Hex ↔ RGB 转换
- 📝 数据格式(12 个工具):JSON、XML、YAML、SQL、TOML、Markdown ↔ HTML 转换、电话号码格式化
- �️ 开发工具(6 个工具):正则表达式测试、cron 生成、列表转换、代码美化、Markdown 目录
- 🐳 Docker 工具(5 个工具):Compose 验证、转换工具、Traefik 生成器、参考
- 🔧 编码与解码(8 个工具):Base64、URL、HTML 实体、文本转二进制
- 🔍 取证工具(3 个工具):文件类型识别、安全链接解码、URL 混淆字符还原
- 🆔 ID 与代码生成器(4 个工具):UUID、ULID、QR 码、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 艺术、NATO 字母表、slugify、Unicode
- 🛠️ 实用工具(7 个工具):电子邮件规范化、MIME 类型、HTTP 状态码、设备信息、CSS 美化、rem/px 转换器
📸 截图示例
密码哈希生成示例

ASCII 艺术文本生成示例

使用 IT Tools MCP 服务与 VS Code Copilot Chat 进行安全密码哈希和创意 ASCII 艺术生成的示例。
可用工具
| Tool | 描述 | 参数 |
|---|---|---|
| Ansible 工具 | ||
parse_ansible_inventory | 解析 Ansible 清单 | inventory: string |
generate_ansible_inventory | 生成 Ansible 清单 | hosts: string[], groups?: Record<string, string[]>, variables?: Record<string, any> |
validate_ansible_playbook | 验证 Ansible playbook YAML | playbook: string |
show_ansible_reference | Ansible 语法和模块参考 | query?: string |
decrypt_ansible_vault | 解密 Ansible 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 Compose 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 SafeLinks | url: string |
fang_url | 为分析对 URL 进行还原和去武装 | text: string, operation: 'fang' | 'defang' |
| ID 与代码生成器 | ||
generate_qr_code | 为任意内容生成 QR 码 | text: string, size?: number - 支持 URL、WiFi(WIFI:T:WPA;S:network;P:password;;)、联系信息等。 |
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<string, string>, 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/CNAME) | 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 | 生成 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 | 转换为 kebab-case | 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 | 转换为 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、Zod 验证和 MCP SDK 构建,确保运行稳健且类型安全。
🤖 AI 辅助开发
本项目使用 VS Code、Copilot Chat Agent、Playwright MCP 和 Claude Sonnet 4 Model 开发,展现了 AI 辅助软件开发的强大能力:
- 智能代码生成:Claude Sonnet 分析需求并生成完整的工具实现
- Schema 验证:自动识别并解决各工具中的 JSON schema 验证问题
- Docker 优化:创建可用于生产环境的 Docker 工作流和多阶段构建
- 文档:生成包含示例和工具参考表的完整 README
- 测试:在整个代码库中实现稳健的错误处理和验证
AI 的主要贡献:
- 🔧 工具实现:所有工具均在 AI 协助下设计并实现
- 📦 Docker 配置:完整的容器化方案,包含 GitHub Actions CI/CD 流水线
- 🔍 Schema 清理:系统性地从所有工具定义中移除不受支持的 Zod 关键字
- 📚 文档:包含用法示例和工具目录的完整 README
- 🚀 可用于生产环境:Docker Hub 发布、徽章和专业的部署配置
这展示了 AI 如何加速开发,同时保持代码质量、合理的架构和全面的测试。
添加新工具
- 在
src/tools/下的相应类别中创建工具目录 - 在其
index.ts中使用 Zod 定义带有输入 schema 的工具 - 导出注册函数,以便动态加载
- 使用
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
🤝 贡献
本项目不再接受贡献。 本项目已归档,仅供参考。以下指南仅为保留历史记录而留存。
提交消息格式
本项目使用 Conventional Commits,以确保提交消息清晰且一致。
版本管理:
- 🤖 自动提升版本 - Git hooks 根据提交消息类型自动提升版本
- 🤖 自动发布 - CI/CD 自动检测变更并发布
- 🏷️ Git 标签 - 根据 Conventional Commits 提交消息自动创建
示例:
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 了解配置说明。
开发流程
- Fork 此仓库
- 运行
./setup-commit-template.sh(推荐) - 创建功能分支
- 按照项目结构进行更改
- 使用 Conventional Commits 提交消息
- 提交 Pull Request
CI/CD 流水线将自动:
- ✅ 构建并测试你的更改
- 🏷️ 根据提交消息提升版本(合并到 main 时)
- 📦 发布到 Docker Hub 和 NPM
- 🚀 创建 GitHub 发布版本
📄 许可证
MIT License - 详情请参阅 LICENSE。
🔗 相关项目
灵感来自 IT Tools——面向开发者的在线工具。
本项目采用了 @sharevb fork 中的部分工具。该分支在 IT Tools 的基础上扩展了更多实用工具并进行了增强。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。