使用说明
IT工具MCP服务器
[!警告] 此项目已弃用,不再维护。
它是为了探索人工智能辅助开发和模型上下文协议(MCP)而构建的学习练习。将不接受进一步的更新、错误修复或拉取请求。存储库仅供参考。
如果您需要一个带有IT实用程序的主动维护的MCP服务器,请寻找社区替代方案。
📝 备注:此README的压缩版本会自动同步到 Docker Hub 由于字符限制。
一个全面的模型上下文协议(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<string, string[]>, variables?: Record<string, any> |
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<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/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工具。