IT Tools

Fornece acesso a mais de 70 ferramentas e utilitários de TI para desenvolvedores e profissionais de TI, incluindo ferramentas de codificação, manipulação de texto e rede.

Documentação

Servidor MCP IT Tools

[!WARNING] Este projeto está descontinuado e não é mais mantido.

Foi criado como um exercício de aprendizado para explorar o desenvolvimento assistido por IA e o Model Context Protocol (MCP). Nenhuma atualização adicional, correção de bugs ou pull requests serão aceitos. O repositório é mantido apenas para referência.

Se você precisar de um servidor MCP mantido ativamente com utilitários de TI, procure alternativas da comunidade.

CI/CD Pipeline Docker Pulls Docker Image Size NPM Version NPM Downloads GitHub Release License GitHub Issues GitHub Last Commit Docker Platform GitHub Stars

📝 Nota: Uma versão condensada deste README é sincronizada automaticamente para o Docker Hub devido a limites de caracteres.

Um servidor abrangente do Model Context Protocol (MCP) que fornece acesso a mais de 121 ferramentas e utilitários de TI comumente usados por desenvolvedores, administradores de sistemas e profissionais de TI. Este servidor expõe um conjunto completo de ferramentas para codificação/decodificação, manipulação de texto, hash, utilitários de rede e muitas outras tarefas comuns de desenvolvimento e TI.

Histórico de Estrelas

Star History Chart

📦 Instalação e Configuração

Uso com VS Code

Instalação Rápida:

Install in VS Code Install in VS Code Insiders

Instalação:

  1. Abra o VS Code
  2. Pressione Ctrl+Shift+P (ou Cmd+Shift+P no Mac)
  3. Digite "MCP" e selecione "MCP: Add Server"
  4. Escolha "NPM Package" e digite: it-tools-mcp

Ou adicione manualmente ao seu settings.json do VS Code:

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"
        ]
      }
  }
}

Modo Interativo

docker run -it --rm wrenchpilot/it-tools-mcp:latest

Uso Programático

# 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

📝 Recursos de Logging MCP

Este servidor inclui suporte completo de logging MCP com os seguintes recursos:

Níveis de Log

  • debug (0): Informações detalhadas de depuração
  • info (1): Mensagens gerais de informação
  • notice (2): Eventos normais, mas significativos
  • warning (3): Condições de aviso
  • error (4): Condições de erro
  • critical (5): Condições críticas
  • alert (6): Ação deve ser tomada imediatamente
  • emergency (7): Sistema inutilizável

Ferramentas de Logging

  • logging_setLevel: Altera o nível mínimo de log em tempo de execução
  • logging_status: Visualiza a configuração atual de logging e os níveis disponíveis

Comportamento Sensível ao Ambiente

  • Modo de Desenvolvimento: Nível de depuração por padrão, saída aprimorada no console
  • Modo de Produção: Nível de informação por padrão, saída limpa para conformidade com MCP
  • Fallback Automático: Logging no console quando o transporte MCP não está pronto

Exemplos de Uso

# 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

🔧 Utilitários do Protocolo MCP

Este servidor implementa a especificação completa do MCP 2025-06-18, incluindo utilitários avançados:

Utilitário de Ping

  • Verificação de Saúde: Use requisições ping para verificar o status da conexão
  • Resposta Automática: O servidor responde prontamente com resultado vazio conforme a especificação MCP
  • Monitoramento de Conexão: Implemente verificações periódicas de saúde

Acompanhamento de Progresso

  • Operações de Longa Duração: Receba atualizações de progresso para tarefas demoradas
  • Tokens de Progresso: Inclua _meta.progressToken nas requisições para habilitar notificações de progresso
  • Notificações: O servidor envia notifications/progress com o status atual

Cancelamento de Requisições

  • Cancelamento Gracioso: Envie notifications/cancelled para abortar requisições em andamento
  • Limpeza de Recursos: O servidor libera recursos adequadamente quando requisições são canceladas
  • Tratamento de Condições de Corrida: Tratamento robusto de casos extremos de temporização

Suporte a Amostragem

  • Integração com LLM: O servidor pode solicitar conclusões de LLM dos clientes usando sampling/createMessage
  • Preferências de Modelo: Suporte para dicas de seleção de modelo e prioridades de capacidade (custo, velocidade, inteligência)
  • Tipos de Conteúdo: Suporte para conteúdo de texto, imagem e áudio em requisições de amostragem
  • Fluxos de Trabalho Agênticos: Habilite operações de ferramentas com tecnologia de IA por meio de chamadas LLM aninhadas
  • Controle do Cliente: Os clientes mantêm controle total sobre o acesso ao modelo e a aprovação do usuário

Exemplos de Protocolo

# 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

🛠️ Categorias de Ferramentas

Este servidor MCP fornece mais de 121 ferramentas em 14 categorias:

  • ⚙️ Ferramentas Ansible (5 ferramentas): Criptografia/descriptografia de vault, parser de inventário, validador de playbook, referência
  • 🎨 Ferramentas de Cor (2 ferramentas): Conversão Hex ↔ RGB
  • 📝 Formato de Dados (12 ferramentas): Conversão JSON, XML, YAML, SQL, TOML, Markdown ↔ HTML, formatação de telefone
  • 🛠️ Ferramentas de Desenvolvimento (6 ferramentas): Teste de regex, geração de cron, conversão de listas, embelezadores de código, TOC de markdown
  • 🐳 Ferramentas Docker (5 ferramentas): Validação de compose, ferramentas de conversão, gerador Traefik, referência
  • 🔧 Codificação e Decodificação (8 ferramentas): Base64, URL, entidades HTML, texto-para-binário
  • 🔍 Ferramentas Forenses (3 ferramentas): Identificação de tipo de arquivo, decodificação de safelink, URL fanger
  • 🆔 Geradores de ID e Código (4 ferramentas): UUID, ULID, códigos QR, placeholders SVG
  • 🔢 Matemática e Cálculos (6 ferramentas): Avaliação de expressões, conversão de base, temperatura, porcentagens, timestamps Unix, numerais romanos
  • 🌐 Rede e Sistema (23 ferramentas): Sub-redes IPv4/IPv6, parsing de URL, endereços MAC, ps, top, cat, head, tail, grep, ping, nslookup, telnet, dig, ssh, scp, curl, validação IBAN
  • ⚡ Física (3 ferramentas): Conversões de unidades de ângulo, energia e potência
  • 🔐 Segurança e Criptografia (12 ferramentas): Hash (MD5, SHA1, SHA256, SHA512), HMAC, JWT, bcrypt, senhas, tokens, OTP, BIP39
  • ✨ Processamento de Texto (19 ferramentas): Conversão de maiúsculas/minúsculas, estatísticas, diff, arte ASCII, alfabeto NATO, slugify, Unicode
  • 🛠️ Ferramentas Utilitárias (7 ferramentas): Normalização de e-mail, tipos MIME, códigos de status HTTP, informações de dispositivo, embelezador CSS, conversor rem/px

📸 Exemplos de Capturas de Tela

Exemplo de Geração de Hash de Senha

Password Hash Example

Exemplo de Geração de Texto com Arte ASCII

ASCII Art Text Example

Exemplos de uso do servidor MCP IT Tools com o VS Code Copilot Chat para hash seguro de senhas e geração criativa de arte ASCII.

Ferramentas Disponíveis

FerramentaDescriçãoParâmetros
Ferramentas Ansible
parse_ansible_inventoryAnalisar inventário Ansibleinventory: string
generate_ansible_inventoryGerar inventário Ansiblehosts: string[], groups?: Record<string, string[]>, variables?: Record<string, any>
validate_ansible_playbookValidar YAML de playbook Ansibleplaybook: string
show_ansible_referenceReferência de sintaxe e módulos Ansiblequery?: string
decrypt_ansible_vaultDescriptografar dados do Ansible Vaultdata: string, password: string
encrypt_ansible_vaultCriptografar dados com Ansible Vaultdata: string, password: string
Ferramentas de Cor
convert_hex_to_rgbConverter HEX para RGBhex: string
convert_rgb_to_hexConverter RGB para HEXr: number, g: number, b: number
Formato de Dados
convert_html_to_markdownConverter HTML para Markdownhtml: string
compare_jsonComparar objetos JSONjson1: string, json2: string
format_jsonFormatar e validar JSONjson: string, indent?: number
minify_jsonMinificar JSONjson: string
convert_json_to_csvConverter JSON para CSVjson: string, delimiter?: string
convert_json_to_tomlConverter JSON para TOMLjson: string
convert_markdown_to_htmlConverter Markdown para HTMLmarkdown: string
format_phoneAnalisar e formatar números de telefonephoneNumber: string, countryCode?: string
format_sqlFormatar SQLsql: string, dialect?: 'sql' | 'mysql' | 'postgresql' | 'sqlite' | 'mariadb' | 'db2' | 'plsql' | 'n1ql' | 'redshift' | 'spark' | 'tsql' | 'trino' | 'bigquery' (opcional, padrão: 'sql')
convert_toml_to_jsonConverter TOML para JSONtoml: string
format_xmlFormatar XMLxml: string, indent?: number
format_yamlFormatar YAMLyaml: string
Ferramentas de Desenvolvimento
generate_crontabGerar expressões cronminute?: string, hour?: string, dayOfMonth?: string, month?: string, dayOfWeek?: string
format_htmlFormatar e embelezar HTMLhtml: string, indent?: number
format_javascriptFormatar e embelezar JavaScriptjavascript: string, indent?: number
convert_listConverter formatos de listalist: string, inputFormat: 'comma' | 'semicolon' | 'newline' | 'space' | 'pipe', outputFormat: 'comma' | 'semicolon' | 'newline' | 'space' | 'pipe' | 'json' | 'quoted', trim?: boolean
generate_markdown_tocGerar sumário para Markdownmarkdown: string, maxDepth?: number
test_regexTestar expressões regularespattern: string, text: string, flags?: string
Ferramentas Docker
convert_docker_compose_to_runConverter Compose para comando Docker runcompose: string, service?: string
validate_docker_composeValidar YAML do Docker Composecompose: string
show_docker_referenceReferência de comandos e sintaxe Dockerquery?: string
convert_docker_run_to_composeConverter Docker run para Composecommand: string
generate_traefik_composeGerar Docker Compose do Traefikdomain: string, service: string, port?: number, network?: string
Codificação e Decodificação
decode_base64Decodificar texto Base64text: string
encode_base64Codificar texto para Base64text: string
decode_htmlDecodificar entidades HTMLtext: string
encode_htmlCodificar entidades HTMLtext: string
encode_html_entitiesCodificação/decodificação estendida de entidades HTMLtext: string, operation: 'encode' | 'decode'
convert_text_to_binaryConverter texto para binário e vice-versainput: string, operation: 'encode' | 'decode'
convert_text_to_unicodeConverter texto para Unicode e vice-versainput: string, operation: 'encode' | 'decode'
decode_urlDecodificar texto de URLtext: string
encode_urlCodificar texto em URLtext: string
Ferramentas Forenses
identify_file_typeIdentificar tipo de arquivo pelo conteúdodata: string, filename?: string
decode_safelinkDecodificar Microsoft SafeLinksurl: string
fang_urlFang e defang de URLs para análisetext: string, operation: 'fang' | 'defang'
Geradores de ID e Código
generate_qr_codeGerar códigos QR para qualquer conteúdotext: string, size?: number - Suporta URLs, WiFi (WIFI:T:WPA;S:network;P:password;;), informações de contato, etc.
generate_svg_placeholderGerar placeholder SVGwidth?: number, height?: number, text?: string, backgroundColor?: string, textColor?: string
generate_ulidGerar ULIDNenhum
generate_uuidGerar UUID v4Nenhum
Matemática e Cálculos
evaluate_mathAvaliar expressõesexpression: string
convert_number_baseConverter bases numéricasnumber: string, fromBase: number, toBase: number
calculate_percentageCalcular porcentagensoperation: 'percentage-of' | 'what-percentage' | 'percentage-change', value1: number, value2: number
convert_roman_numeralsConverter numerais romanosinput: string
convert_temperatureConverter temperaturastemperature: number, from: 'celsius' | 'fahrenheit' | 'kelvin', to: 'celsius' | 'fahrenheit' | 'kelvin'
convert_unix_timestampConverter timestampsinput: string
Rede e Sistema
catExibir conteúdo do arquivofile: string
curlCliente HTTP (GET, POST, etc.)url: string, method?: string, headers?: Record<string, string>, body?: string
digConsulta DNS (tipo personalizado)target: string, type?: string
grepPesquisar padrão em arquivofile: string, pattern: string
headMostrar primeiras N linhas do arquivofile: string, lines?: number
validate_ibanValidar IBANiban: string
calculate_ip_subnetCalcular sub-rede IPv4ip: string, cidr: number
calculate_ipv4_subnetCálculo aprimorado de sub-rede IPv4cidr: string
generate_ipv6_ulaGerar ULA IPv6globalId?: string
generate_mac_addressGerar endereço MACprefix?: string, separator?: ':' | '-'
nslookupConsulta DNS (A/AAAA/CNAME)target: string
pingPingar um hosttarget: string, count?: number
psListar processos em execuçãoNenhum
generate_random_portGerar portas aleatóriascount?: number, min?: number, max?: number, exclude?: number[]
scpCopiar arquivos de/para host remoto (SFTP)target: string, user: string, direction: 'upload'|'download', localPath: string, remotePath: string, privateKey?: string
sshExecução de comando SSHtarget: string, user: string, command: string
tailMostrar últimas N linhas do arquivofile: string, lines?: number
telnetTestar conectividade TCPtarget: string, port: number
topMostrar principais processos (por CPU)Nenhum
parse_urlAnalisar componentes de URLurl: string
Física
convert_angleConverter unidades de ângulovalue: number, from: 'degrees' | 'radians' | 'gradians', to: 'degrees' | 'radians' | 'gradians'
convert_energyConverter unidades de energiavalue: number, from: 'joules' | 'calories' | 'kwh' | 'btu', to: 'joules' | 'calories' | 'kwh' | 'btu'
convert_powerConverter unidades de potênciavalue: number, from: 'watts' | 'kilowatts' | 'horsepower' | 'btu_per_hour', to: 'watts' | 'kilowatts' | 'horsepower' | 'btu_per_hour'
Segurança e Criptografia
generate_basic_authGerar cabeçalho de autenticação básicausername: string, password: string
hash_bcryptGerar/verificar hash bcryptpassword: string, rounds?: number, hash?: string
generate_bip39Gerar mnemônico BIP39wordCount?: '12' | '15' | '18' | '21' | '24'
hash_md5Gerar hash MD5text: string
hash_sha1Gerar hash SHA1text: string
hash_sha256Gerar hash SHA256text: string
hash_sha512Gerar hash SHA512text: string
generate_hmacGerar HMACmessage: string, key: string, algorithm?: 'sha1' | 'sha256' | 'sha512'
decode_jwtDecodificar token JWTtoken: string
generate_otpGerar códigos TOTPsecret: string, digits?: number, period?: number
generate_passwordGerar senha seguralength?: number, includeUppercase?: boolean, includeLowercase?: boolean, includeNumbers?: boolean, includeSymbols?: boolean
generate_tokenGerar token segurolength?: number, charset?: 'alphanumeric' | 'hex' | 'base64' | 'custom', customChars?: string
Processamento de Texto
generate_ascii_artGerar arte ASCIItext: string, font?: string (suporta 295+ fontes figlet)
analyze_distinct_wordsExtrair palavras únicas de textotext: string, caseSensitive?: boolean
search_emojiPesquisar emojisquery: string
generate_lorem_ipsumGerar Lorem Ipsumtype?: 'words' | 'sentences' | 'paragraphs', count?: number
generate_numeronymGerar numerônimostext: string
slugify_textConverter para slug de URLtext: string, separator?: string, lowercase?: boolean
obfuscate_stringOfuscar textotext: string, method?: 'html-entities' | 'unicode' | 'base64'
convert_to_camelcaseConverter para camelCasetext: string
capitalize_textCapitalizar palavrastext: string
compare_textComparar textostext1: string, text2: string
convert_text_to_kebabcaseConverter para kebab-casetext: string
convert_text_to_lowercaseConverter para minúsculastext: string
convert_text_to_pascalcaseConverter para PascalCasetext: string
text_snakecaseConverter para snake_casetext: string
analyze_text_statsObter estatísticas de textotext: string
convert_text_to_natoConverter para alfabeto da OTANtext: string
show_unicode_namesConverter texto para nomes de caracteres Unicodetext: string
convert_text_to_uppercaseConverter para maiúsculastext: string
Ferramentas Utilitárias
format_cssFormatar e embelezar CSScss: string, indent?: number
show_device_infoObter informações do sistemaNone
normalize_emailNormalizar endereços de e-mailemail: string
lookup_http_statusReferência de status HTTPcode?: number
lookup_mime_typesConsultar tipos MIMEinput: string, lookupType?: 'extension-to-mime' | 'mime-to-extension'
lookup_port_numbersConsultar atribuições de números de portaport?: number, service?: string
convert_rem_pxConverter entre unidades REM e PXvalue: number, conversion: 'rem-to-px' | 'px-to-rem', baseFontSize?: number

🏗️ Arquitetura e Desenvolvimento

Construído com TypeScript, validação Zod e MCP SDK para operação robusta e type-safe.

🤖 Desenvolvimento Assistido por IA

Este projeto foi desenvolvido usando VS Code, Copilot Chat Agent, Playwright MCP e o Modelo Claude Sonnet 4, demonstrando o poder do desenvolvimento de software assistido por IA:

  • Geração Inteligente de Código: Claude Sonnet analisou requisitos e gerou implementações abrangentes de ferramentas
  • Validação de Schema: Identificou e resolveu automaticamente problemas de validação de schema JSON em todas as ferramentas
  • Otimização Docker: Criou fluxos de trabalho Docker prontos para produção e builds multi-estágio
  • Documentação: Gerou README abrangente com exemplos e tabelas de referência de ferramentas
  • Testes: Implementou tratamento robusto de erros e validação em todo o código

Principais Contribuições de IA:

  • 🔧 Implementação de Ferramentas: Todas as ferramentas projetadas e implementadas com assistência de IA
  • 📦 Configuração Docker: Containerização completa com pipeline CI/CD do GitHub Actions
  • 🔍 Limpeza de Schema: Remoção sistemática de palavras-chave Zod não suportadas de todas as definições de ferramentas
  • 📚 Documentação: README abrangente com exemplos de uso e catálogos de ferramentas
  • 🚀 Pronto para Produção: Publicação no Docker Hub, badges e configuração profissional de deploy

Isso demonstra como a IA pode acelerar o desenvolvimento mantendo qualidade de código, arquitetura adequada e testes abrangentes.

Adicionando Novas Ferramentas

  1. Crie um diretório de ferramenta na categoria apropriada em src/tools/
  2. Defina a ferramenta com schema de entrada usando Zod em seu index.ts
  3. Exporte a função de registro para carregamento dinâmico
  4. Recompile com npm run build

Estrutura do Projeto

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

🤝 Contribuindo

Este projeto não está mais aceitando contribuições. Está arquivado apenas para fins de referência. As diretrizes abaixo são preservadas para contexto histórico.

Formato de Mensagem de Commit

Este projeto usa Conventional Commits para mensagens de commit claras e consistentes.

Gerenciamento de Versão:

  • 🤖 Incremento automático de versão - Git hooks incrementam versões automaticamente com base nos tipos de mensagem de commit
  • 🤖 Publicação automática - CI/CD detecta alterações e publica automaticamente
  • 🏷️ Tags Git - Criadas automaticamente com base em mensagens de commit convencionais

Exemplos:

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

📖 Veja COMMIT_TEMPLATE_SETUP.md para instruções de configuração.

Processo de Desenvolvimento

  1. Faça um fork do repositório
  2. Execute ./setup-commit-template.sh (recomendado)
  3. Crie um branch de funcionalidade
  4. Faça suas alterações seguindo a estrutura do projeto
  5. Use mensagens de commit convencionais
  6. Envie um Pull Request

O pipeline CI/CD automaticamente:

  • ✅ Compilará e testará suas alterações
  • 🏷️ Incrementará a versão com base nas mensagens de commit (ao mesclar na main)
  • 📦 Publicará no Docker Hub e NPM
  • 🚀 Criará releases no GitHub

📄 Licença

Licença MIT - veja LICENSE para detalhes.

🔗 Relacionados

Inspirado em IT Tools - ferramentas online para desenvolvedores.

Este projeto incorpora ferramentas selecionadas do fork @sharevb que estende o IT Tools com utilitários e melhorias adicionais.