wrenchpilot/it-tools-mcp
요약
121개 이상의 IT 유틸리티를 제공하는 Model Context Protocol(MCP) 서버 프로젝트입니다. 인코딩, 해싱, 네트워크 도구 등을 AI 에이전트가 사용할 수 있도록 지원하며, 현재는 유지 관리되지 않는 학습용 프로젝트입니다.
핵심 포인트
- 121개 이상의 IT 도구 및 유틸리티를 MCP 서버로 제공
- 인코딩, 디코딩, 텍스트 조작, 네트워크 유틸리티 지원
- VS Code 및 Docker를 통한 간편한 설치 및 실행 가능
- 상세한 로깅 레벨 제어 및 MCP 사양 구현
- 현재 프로젝트는 Deprecated 상태로 참조용으로만 사용 권장
경고
이 프로젝트는 더 이상 사용되지 않으며(deprecated) 유지 관리되지 않습니다.
이 프로젝트는 AI 보조 개발(AI-assisted development)과 Model Context Protocol (MCP)을 탐구하기 위한 학습용 연습으로 구축되었습니다. 더 이상의 업데이트, 버그 수정 또는 풀 리퀘스트(pull requests)는 수락되지 않습니다. 저장소는 참조용으로만 유지됩니다.
IT 유틸리티를 갖춘 활발하게 유지 관리되는 MCP 서버가 필요한 경우, 커뮤니티의 대안을 찾아보시기 바랍니다.
📝 참고: 이 README의 축약 버전은 글자 수 제한으로 인해 Docker Hub에 자동으로 동기화됩니다.
개발자, 시스템 관리자 및 IT 전문가들이 흔히 사용하는 121개 이상의 IT 도구 및 유틸리티에 대한 액세스를 제공하는 포괄적인 Model Context Protocol (MCP) 서버입니다. 이 서버는 인코딩/디코딩(encoding/decoding), 텍스트 조작(text manipulation), 해싱(hashing), 네트워크 유틸리티(network utilities) 및 기타 많은 일반적인 개발 및 IT 작업을 위한 완전한 도구 세트를 노출합니다.
빠른 설치:
설치:
- VS Code를 엽니다.
Ctrl+Shift+P를 누릅니다.
(Mac의 경우 Cmd+Shift+P) - "MCP"를 입력하고 "MCP: Add Server"를 선택합니다.
- "NPM Package"를 선택하고 다음을 입력합니다:
it-tools-mcp
또는 VS Code의 settings.json에 수동으로 추가하십시오:
{
"mcp": {
"servers": {
...
{
"mcp": {
"servers": {
...
docker run -it --rm wrenchpilot/it-tools-mcp:latest
# UUID 생성
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"generate_uuid","arguments":{}}}' | \
docker run -i --rm wrenchpilot/it-tools-mcp:latest
이 서버는 다음과 같은 기능을 통해 완전한 MCP 로깅(logging) 지원을 포함합니다:
debug(0): 상세 디버그 정보
info(1): 일반 정보 메시지
notice(2): 일반적이지만 중요한 이벤트
warning(3): 경고 조건
error(4): 에러 조건
critical(5): 심각한 조건
alert(6): 즉각적인 조치가 필요한 상황
emergency(7): 시스템 사용 불가
logging_setLevel: 런타임에 최소 로깅 레벨을 변경합니다.
logging_status: 현재 로깅 구성 및 사용 가능한 레벨을 확인합니다.
개발 모드 (Development Mode): 기본적으로 디버그 (Debug) 레벨로 설정되며, 강화된 콘솔 출력을 제공합니다.
운영 모드 (Production Mode): 기본적으로 정보 (Info) 레벨로 설정되며, MCP 준수를 위해 깔끔한 출력을 제공합니다.
자동 폴백 (Automatic Fallback): MCP 전송 (transport)이 준비되지 않았을 때 콘솔 로깅을 수행합니다.
# 현재 로깅 상태 확인
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"logging_status","arguments":{}}}' | npx it-tools-mcp
# 로그 레벨을 디버그로 변경
...
이 서버는 고급 유틸리티를 포함하여 완전한 MCP 2025-06-18 사양을 구현합니다:
상태 확인 (Health Checking): ping 요청을 사용하여 연결 상태를 확인합니다.
자동 응답 (Automatic Response): MCP 사양에 따라 서버가 빈 결과로 즉시 응답합니다.
연결 모니터링 (Connection Monitoring): 주기적인 상태 확인 (health checks)을 구현합니다.
장기 실행 작업 (Long-Running Operations): 시간이 소요되는 작업에 대한 진행 상황 업데이트를 수신합니다.
진행 토큰 (Progress Tokens): 진행 알림을 활성화하기 위해 요청에 _meta.progressToken을 포함합니다.
알림 (Notifications): 서버가 현재 상태와 함께 notifications/progress를 전송합니다.
우아한 취소 (Graceful Cancellation): 진행 중인 요청을 중단하려면 notifications/cancelled를 전송합니다.
리소스 정리 (Resource Cleanup): 요청이 취소되면 서버가 리소스를 적절히 해제합니다.
경쟁 상태 처리 (Race Condition Handling): 타이밍 엣지 케이스 (edge cases)에 대한 견고한 처리를 제공합니다.
LLM 통합 (LLM Integration): 서버는 sampling/createMessage를 사용하여 클라이언트로부터 LLM 완성을 요청할 수 있습니다.
모델 선호도 (Model Preferences): 모델 선택 힌트 및 기능 우선순위(비용, 속도, 지능)를 지원합니다.
콘텐츠 유형 (Content Types): 샘플링 요청에서 텍스트, 이미지 및 오디오 콘텐츠를 지원합니다.
에이전트 워크플로 (Agentic Workflows): 중첩된 LLM 호출을 통해 AI 기반 도구 작업을 활성화합니다.
클라이언트 제어 (Client Control): 클라이언트는 모델 액세스 및 사용자 승인에 대해 완전한 제어권을 유지합니다.
# ping으로 연결 상태 테스트
echo '{"jsonrpc":"2.0","id":1,"method":"ping"}' | npx it-tools-mcp
# 진행 상황 추적을 포함한 요청
...
이 MCP 서버는 14개 카테고리에 걸쳐 121개 이상의 도구를 제공합니다:
🤖 Ansible 도구 (Ansible Tools) (5개 도구): Vault 암호화/복호화 (encryption/decryption), 인벤토리 파서 (inventory parser), 플레이북 검증기 (playbook validator), 레퍼런스 (reference)
🎨 색상 도구 (Color Tools) (2개 도구): Hex ↔ RGB 변환
📝 데이터 형식 (Data Format) (12개 도구): JSON, XML, YAML, SQL, TOML, Markdown ↔ HTML 변환, 전화번호 형식 지정 (phone formatting)
💻 개발 도구 (Development Tools) (6개 도구): 정규표현식 (Regex) 테스트, cron 생성, 리스트 변환, 코드 프리티파이어 (code prettifiers), 마크다운 목차 (markdown TOC)
🐳 Docker 도구 (Docker Tools) (5개 도구): Compose 검증, 변환 도구 (conversion tools), Traefik 생성기, 레퍼런스
🔧 인코딩 및 디코딩 (Encoding & Decoding) (8개 도구): Base64, URL, HTML 엔티티 (HTML entities), 텍스트-투-바이너리 (text-to-binary)
🔍 포렌식 도구 (Forensic Tools) (3개 도구): 파일 유형 식별 (file type identification), 세이프링크 디코딩 (safelink decoding), URL fanger
🆔 ID 및 코드 생성기 (ID & Code Generators) (4개 도구): UUID, ULID, QR 코드, SVG 플레이스홀더 (placeholders)
🔢 수학 및 계산 (Math & Calculations) (6개 도구): 수식 평가 (expression evaluation), 진법 변환 (base conversion), 온도, 백분율, Unix 타임스탬프, 로마 숫자
🌐 네트워크 및 시스템 (Network & System) (23개 도구): IPv4/IPv6 서브넷 (subnets), URL 파싱, MAC 주소, ps, top, cat, head, tail, grep, ping, nslookup, telnet, dig, ssh, scp, curl, IBAN 검증
⚡ 물리학 (Physics) (3개 도구): 각도, 에너지, 전력 단위 변환
🔐 보안 및 암호화 (Security & Crypto) (12개 도구): 해싱 (Hashing) (MD5, SHA1, SHA256, SHA512), HMAC, JWT, bcrypt, 비밀번호, 토큰, OTP, BIP39
✨ 텍스트 처리 (Text Processing) (19개 도구): 대소문자 변환 (case conversion), 통계 (stats), 차이점 비교 (diff), ASCII 아트, NATO 알파벳, 슬러기파이 (slugify), 유니코드 (Unicode)
🛠️ 유틸리티 도구 (Utility Tools) (7개 도구): 이메일 정규화 (email normalization), MIME 타입, HTTP 상태 코드, 장치 정보, CSS 프리티파이어 (CSS prettifier), rem/px 변환기
보안 비밀번호 해싱 및 창의적인 ASCII 아트 생성을 위해 VS Code Copilot Chat에서 IT Tools MCP 서버를 사용하는 예시입니다.
| 도구 (Tool) | 설명 (Description) | 매개변수 (Parameters) |
|---|---|---|
| Ansible 도구 (Ansible Tools) | ||
parse_ansible_inventory | Ansible 인벤토리 파싱 (Parse Ansible inventory) | inventory: string |
generate_ansible_inventory | Ansible 인벤토리 생성 (Generate Ansible inventory) | hosts: string[] , groups?: Record<string, string[]> , variables?: Record<string, any> |
validate_ansible_playbook | Ansible 플레이북 YAML 유효성 검사 (Validate Ansible playbook YAML) | playbook: string |
show_ansible_reference | Ansible 구문 및 모듈 참조 (Ansible syntax and module reference) | query?: string |
decrypt_ansible_vault | Ansible Vault 데이터 복호화 (Decrypt Ansible Vault data) | data: string , password: string |
encrypt_ansible_vault | Ansible Vault로 데이터 암호화 (Encrypt data with Ansible Vault) | data: string , password: string |
| 색상 도구 (Color Tools) | ||
convert_hex_to_rgb | HEX를 RGB로 변환 (Convert HEX to RGB) | hex: string |
convert_rgb_to_hex | RGB를 HEX로 변환 (Convert RGB to HEX) | r: number , g: number , b: number |
| 데이터 형식 (Data Format) | ||
convert_html_to_markdown | HTML을 Markdown으로 변환 (Convert HTML to Markdown) | html: string |
compare_json | JSON 객체 비교 (Compare JSON objects) | json1: string , json2: string |
format_json | JSON 형식 지정 및 유효성 검사 (Format and validate JSON) | json: string , indent?: number |
minify_json | JSON 축소 (Minify JSON) | json: string |
convert_json_to_csv | JSON을 CSV로 변환 (Convert JSON to CSV) | json: string , delimiter?: string |
convert_json_to_toml | JSON을 TOML로 변환 (Convert JSON to TOML) | json: string |
convert_markdown_to_html | Markdown을 HTML로 변환 (Convert Markdown to HTML) | markdown: string |
format_phone | 전화번호 파싱 및 형식 지정 (Parse and format phone numbers) | phoneNumber: string , countryCode?: string |
format_sql | SQL 형식 지정 (Format SQL) | sql: string , `dialect?: 'sql' |
convert_toml_to_json | TOML을 JSON으로 변환 (Convert TOML to JSON) | toml: string |
format_xml | XML 형식 지정 (Format XML) | xml: string , indent?: number |
format_yaml | YAML 형식 지정 (Format YAML) | yaml: string |
| 개발 도구 (Development Tools) | ||
generate_crontab |
크론 표현식 생성 (Generate cron expressions) | minute?: string, hour?: string, dayOfMonth?: string, month?: string, dayOfWeek?: string |
format_html |
HTML 형식 지정 및 예쁘게 만들기 (Format and prettify HTML) | html: string, indent?: number |
format_javascript |
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 |
Markdown용 목차 생성 (Generate table of contents for Markdown) | markdown: string, maxDepth?: number |
test_regex |
정규 표현식 테스트 (Test regular expressions) | pattern: string, text: string, flags?: string |
Docker 도구 (Docker Tools) |
||
convert_docker_compose_to_run |
Compose를 Docker run 명령으로 변환 (Convert Compose to Docker run command) | compose: string, service?: string |
validate_docker_compose |
Docker Compose YAML 유효성 검사 (Validate Docker Compose YAML) | compose: string |
show_docker_reference |
Docker 명령어 및 구문 참조 (Docker command and syntax reference) | query?: string |
convert_docker_run_to_compose |
Docker run을 Compose로 변환 (Convert Docker run to Compose) | command: string |
generate_traefik_compose |
Traefik Docker Compose 생성 (Generate Traefik Docker Compose) | domain: string, service: string, port?: number, network?: string |
인코딩 및 디코딩 (Encoding & Decoding) |
||
decode_base64 |
Base64 텍스트 디코드 (Decode Base64 text) | text: string |
encode_base64 |
텍스트를 Base64로 인코딩 (Encode text to Base64) | text: string |
decode_html |
HTML 엔티티 디코드 (Decode HTML entities) | text: string |
encode_html |
HTML 엔티티 인코딩 (Encode HTML entities) | text: string |
encode_html_entities |
확장된 HTML 엔티티 인코딩/디코딩 (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 텍스트 디코드 (URL decode text) | text: string |
encode_url |
URL 텍스트 인코딩 (URL encode text) | text: string} |
Forensic Tools (포렌식 도구) |
||
identify_file_type |
콘텐츠로부터 파일 유형 식별 (Identify file type from content) | data: string , filename?: string |
decode_safelink |
Microsoft SafeLinks 디코딩 (Decode Microsoft SafeLinks) | url: string |
fang_url |
분석을 위한 URL Fang 및 Defang (Fang and defang URLs for analysis) | text: string , operation: 'fang' | 'defang' |
ID & Code Generators (ID 및 코드 생성기) |
||
generate_qr_code |
모든 콘텐츠에 대한 QR 코드 생성 (Generate QR codes for any content) | text: string , size?: number - URL, WiFi (WIFI:T:WPA;S:network;P:password;;), 연락처 정보 등을 지원합니다. |
generate_svg_placeholder |
SVG 플레이스홀더 생성 (Generate SVG placeholder) | width?: number , height?: number , text?: string , backgroundColor?: string , textColor?: string |
generate_ulid |
ULID 생성 (Generate ULID) | 없음 |
generate_uuid |
UUID v4 생성 (Generate UUID v4) | 없음 |
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 클라이언트 (GET, POST 등) (HTTP client (GET, POST, etc.)) | url: string , method?: string , headers?: Record<string, string> , body?: string |
dig |
DNS 쿼리 (사용자 정의 유형) (DNS query (custom type)) | target: string , type?: string |
grep |
파일 내 패턴 검색 (Search for pattern in file) | file: string , pattern: string |
head |
파일의 처음 N개 라인 표시 (Show first N lines of file) | file: string , lines?: number |
validate_iban |
IBAN 검증 (Validate IBAN) | iban: string |
calculate_ip_subnet |
IPv4 서브넷 계산 (Calculate IPv4 subnet) | 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 |
실행 중인 프로세스 목록 표시 | None |
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 기준) | None |
parse_url |
URL 구성 요소 파싱 | url: string |
물리학 (Physics) |
||
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'
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기