MCP Custom Tools
Um servidor versátil com ferramentas para data/hora, gerenciamento de arquivos, informações do sistema, processamento de texto e operações web.
Documentação
Servidor MCP Custom Tools
Um servidor MCP (Model Context Protocol) personalizado com um conjunto completo de ferramentas para data/hora, manipulação de arquivos, informações do sistema, processamento de texto e operações web.
Características
- ✅ Servidor MCP completo implementado do zero
- ✅ Gerenciamento moderno de dependências com
pyproject.toml - ✅ 30+ ferramentas personalizadas organizadas por categorias
- ✅ Comunicação assíncrona com suporte para stdio
- ✅ Logging configurável e tratamento de erros robusto
- ✅ CLI integrado com opções flexíveis
Ferramentas Disponíveis
🕒 Data e Hora (datetime_tools)
current_time- Obter data e hora atualformat_timestamp- Formatar timestamp para formato legívelcalculate_age- Calcular idade a partir da data de nascimentodays_between- Calcular dias entre duas datasmonth_calendar- Gerar calendário mensal
📁 Manipulação de Arquivos (file_tools)
read_file- Ler conteúdo de arquivo (async/sync)file_info- Obter informações detalhadas do arquivolist_directory- Listar conteúdo do diretóriocalculate_hash- Calcular hash MD5/SHA256 de arquivosearch_files- Buscar arquivos por padrão
💻 Sistema (system_tools)
system_info- Informações gerais do sistemacpu_info- Informações detalhadas da CPUmemory_info- Informações de memória RAMdisk_info- Informações de discos e armazenamentonetwork_info- Informações de interfaces de redeprocess_list- Lista de processos em execuçãoenvironment_vars- Variáveis de ambiente do sistema
📝 Processamento de Texto (text_tools)
word_count- Contar palavras, linhas e caracteressearch_replace- Busca e substituição com regexextract_emails- Extrair endereços de emailextract_urls- Extrair URLs de textotext_analysis- Análise detalhada de textoencode_decode- Codificação/decodificação de textogenerate_hash- Gerar hash de textosplit_text- Dividir texto em chunks
🌐 Web (web_tools)
http_request- Realizar requisições HTTPparse_url- Parsear e analisar URLsbuild_url- Construir URLs a partir de componentesurl_encode_decode- Codificar/decodificar URLsvalidate_url- Validar formato e acessibilidadeextract_domain- Extrair informações de domínio
Instalação
Pré-requisitos
- Python 3.10+
- uv (gerenciador de pacotes e ambientes virtuais moderno)
Instalação a partir do código-fonte
# Clonar el repositorio
git clone <repository-url>
cd mcp-custom-tools
# Instalar uv (si no lo tienes)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Instalar dependencias y crear entorno virtual automáticamente
uv sync
# Instalar dependencias de desarrollo
uv sync --group dev
# Verificar instalación
uv run mcp-server --help
Uso
Executar o servidor
# Método recomendado - usando el script instalado
uv run mcp-server
# Con nivel de logging específico
uv run mcp-server --log-level DEBUG
# Con configuración personalizada
uv run mcp-server --log-level INFO --name "Mi Servidor MCP" --version "1.0.0"
# Método alternativo - usando módulo Python
uv run python -m mcp_custom_tools.server
# Con configuración personalizada usando módulo
uv run python -m mcp_custom_tools.server --log-level INFO --name "Custom Server"
Opções de CLI
--log-level- Nível de logging (DEBUG, INFO, WARNING, ERROR)--name- Nome do servidor MCP--version- Versão do servidor--help- Mostrar ajuda
⚠️ Importante: Usar sempre uv run
No Windows, os scripts instalados com uv não estão disponíveis globalmente no PATH. Sempre use:
# ✅ Correcto
uv run mcp-server
# ❌ Error - No funciona
mcp-server
Integração com clientes MCP
O servidor usa comunicação stdio e é compatível com qualquer cliente MCP padrão.
Configuração JSON:
{
"mcpServers": {
"mcp-custom-tools": {
"command": "uv",
"args": [
"run",
"mcp-server",
"--log-level",
"INFO"
],
"cwd": "/path/to/mcp-custom-tools"
}
}
}
Exemplos de caminhos por sistema operacional:
// Windows
"cwd": "C:\\Users\\TuUsuario\\mcp-custom-tools"
// macOS/Linux
"cwd": "/home/tuusuario/mcp-custom-tools"
// o
"cwd": "~/mcp-custom-tools"
Configuração para outros clientes MCP
Para outros clientes que suportem MCP, usar a seguinte configuração base:
{
"name": "mcp-custom-tools",
"command": ["uv", "run", "mcp-server"],
"args": ["--log-level", "INFO"],
"cwd": "/path/to/mcp-custom-tools"
}
Verificar a configuração
- Reinicie o Claude Desktop após modificar a configuração
- Abra uma nova conversa no Claude
- Verifique as ferramentas escrevendo: "Quais ferramentas você tem disponíveis?"
- Teste uma ferramenta como: "Que horas são agora?"
Solução de problemas
Se o comando 'mcp-server' não for reconhecido:
Este é o erro mais comum no Windows. O script é instalado no ambiente virtual, mas não está no PATH global.
# ❌ Error común
mcp-server
# Error: 'mcp-server' no se reconoce como comando
# ✅ Solución
uv run mcp-server
Se o servidor não conectar:
- Verificar se
"cwd"aponta para o diretório correto do projeto - Verificar uv: Verificar se o uv está instalado:
uv --version - Sincronizar projeto: Executar
uv syncno diretório do projeto - Revisar logs: Verificar logs no Claude Desktop (Ver > Ferramentas de desenvolvedor)
- Testar manualmente:
uv run mcp-server --log-level DEBUGa partir do diretório do projeto
Logs e debugging:
# Probar el servidor directamente
uv run mcp-server --log-level DEBUG
# Verificar herramientas disponibles
uv run python -c "from mcp_custom_tools.tools import get_available_tools; print(list(get_available_tools().keys()))"
# Verificar que uv funciona correctamente
uv run python --version
# Verificar instalación del paquete
uv run python -c "import mcp_custom_tools; print('Instalación OK')"
Desenvolvimento
Estrutura do Projeto
mcp-custom-tools/
├── src/
│ └── mcp_custom_tools/
│ ├── __init__.py
│ ├── server.py
│ └── tools/
│ ├── __init__.py
│ ├── datetime_tools.py
│ ├── file_tools.py
│ ├── system_tools.py
│ ├── text_tools.py
│ └── web_tools.py
├── pyproject.toml
├── README.md
└── .gitignore
Configuração de Desenvolvimento
# Instalar dependencias de desarrollo
uv sync --group dev
# Ejecutar linting
black src/
isort src/
flake8 src/
mypy src/
# Ejecutar tests
pytest
# Ejecutar tests con cobertura
pytest --cov=mcp_custom_tools
Adicionar Novas Ferramentas
- Criar nova função de ferramenta:
def my_new_tool(args: Dict[str, Any]) -> str:
"""Mi nueva herramienta."""
# Implementación
return "resultado"
- Registrar na função de registro:
def register_my_tools(tools: Dict[str, Dict[str, Any]]) -> None:
tools["my_tool"] = {
"description": "Descripción de mi herramienta",
"handler": my_new_tool,
"inputSchema": {
"type": "object",
"properties": {
"param": {"type": "string", "description": "Parámetro"}
},
"required": ["param"]
}
}
- Importar e registrar em
tools/__init__.py
Dependências
Principais
mcp- Protocolo MCP corehttpx- Requisições HTTP asyncaiofiles- Operações de arquivo asyncpsutil- Informações do sistemaclick- CLI framework
Desenvolvimento
black- Formatação de códigoisort- Ordenação de importsmypy- Type checkingflake8- Lintingpytest- Testing framework
Licença
Licença MIT - ver arquivo LICENSE para detalhes.
Contribuir
- Fork o projeto
- Criar branch de feature (
git checkout -b feature/AmazingFeature) - Commit das alterações (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abrir Pull Request
Suporte
Para reportar bugs ou solicitar funcionalidades, criar uma issue no GitHub.
Changelog
v1.0.0
- Implementação inicial do servidor MCP
- 30+ ferramentas personalizadas
- Gerenciamento com pyproject.toml
- CLI integrado
- Documentação completa