Mcp Filesystem Gitignore — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Filesystem Gitignore (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Un servidor MCP (Model Context Protocol) profesional que proporciona operaciones de sistema de archivos mientras respeta automáticamente los patrones de `.gitignore`.
Cuando Claude trabaja con proyectos que tienen venv/, node_modules/, o .git/, intentar leer todo el directorio puede:
Este servidor resuelve eso respetando .gitignore automáticamente, igual que Git. Claude solo ve lo que realmente importa: tu código.
venv/, node_modules/, __pycache__/, etc.#, @, y otros caracteres en nombres.gitignore con invalidación automática┌─────────────────────────────────────────────────────────────┐
│ MCP Protocol Layer │
│ (server.py - Adaptador que traduce MCP ↔ FileSystemService)│
└────────────────────┬────────────────────────────────────────┘
│
┌───────────────────▼────────────────────────────────────────┐
│ Business Logic Layer │
│(filesystem_service.py - Orquesta validación + operaciones) │
└──────┬──────────────────────────────┬──────────────────────┘
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────────┐
│ Path Validation │ │ .gitignore Manager │
│ (path_validator) │ │ (ignore_manager) │
│ │ │ │
│ - URL decoding │ │ - Pattern matching │
│ - Security check │ │ - Intelligent cache │
└──────────────────┘ └──────────────────────┘
│ │
└──────────────┬───────────────┘
│
┌──────────────▼──────────────────┐
│ Data Access Layer │
│ (filesystem_operations.py) │
│ │
│ - Pure I/O operations │
│ - No business logic │
└─────────────────────────────────┘Responsabilidades por capa:
server.py):filesystem_service.py):path_validator: Normaliza y valida paths (seguridad)ignore_manager: Cache y matching de .gitignorefilesystem_operations: I/O puro, sin lógica de negocioconfig.py: Configuración centralizadaerrors.py: Excepciones tipadasmodels.py: Dataclasses para type safetyBeneficios de esta arquitectura:
# 1. Clonar y navegar al proyecto
cd "C:\DesarrolloPython\MCP FileSystem"
# 2. Instalar dependencias de desarrollo
make.bat install-dev
# 3. Ejecutar tests para verificar
make.bat testEdita el archivo de configuración:
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"filesystem-gitignore": {
"command": "python",
"args": [
"-m",
"mcp_filesystem"
],
"env": {
"ALLOWED_DIRECTORIES": "C:\\DesarrolloPython;C:\\MisProyectos"
}
}
}
}Notas:
;:Reinicia Claude Desktop para aplicar cambios.
#### 1. read_file - Leer archivo de texto
read_file(path="C:\\DesarrolloPython\\proyecto\\src\\main.py")#### 2. write_file - Escribir archivo
write_file(
path="C:\\DesarrolloPython\\nuevo_archivo.py",
content="print('Hello, World!')"
)#### 3. list_directory - Listar contenido (no recursivo)
# Por defecto respeta .gitignore
list_directory(path="C:\\DesarrolloPython\\proyecto")
# Forzar mostrar TODO (incluso venv)
list_directory(path="C:\\DesarrolloPython\\proyecto", respect_gitignore=False)#### 4. directory_tree - Árbol recursivo
directory_tree(
path="C:\\DesarrolloPython\\proyecto",
max_depth=5,
respect_gitignore=True # Default
)#### 5. search_files - Buscar archivos
search_files(
path="C:\\DesarrolloPython",
pattern="config", # Case-insensitive
respect_gitignore=True
)#### 6. get_file_info - Información detallada
get_file_info(path="C:\\DesarrolloPython\\proyecto\\README.md")#### 7. create_directory - Crear directorio
create_directory(path="C:\\DesarrolloPython\\nuevo_proyecto\\src").gitignore?pathspec que implementa el mismo algoritmo que Git.gitignore se parsea una sola vez y se cachea.gitignore cambia (detecta por mtime).gitignore)/ al final de directorios (convención de Git)gitwildmatch para matching exactodirectory_tree limita profundidad máxima (default: 5)respect_gitignore flag (default: True)Comparación:
# ❌ Sin .gitignore (50k+ archivos en venv):
directory_tree("C:\\proyecto") # 🔥 Consume 100k+ tokens
# ✅ Con .gitignore (solo archivos de proyecto):
directory_tree("C:\\proyecto") # ✅ ~2k tokens../../../)# Ejecutar todos los tests
make.bat test
# Solo tests unitarios
make.bat test-unit
# Solo tests de integración
make.bat test-integration
# Con reporte de coverage
make.bat test-cov# Formatear código
make.bat format
# Linters
make.bat lint
# Limpiar archivos generados
make.bat cleanSolución: Configura la variable de entorno en Claude Desktop config.
Causa: El path no está en ALLOWED_DIRECTORIES
Solución: Agrega el directorio a la lista.
.gitignoreVerifica:
.gitignore en el directorio?respect_gitignore=True? (es el default)Solución:
.gitignoremax_depth en directory_tree# .gitignore recomendado para Python:
venv/
env/
__pycache__/
*.pyc
.git/
.pytest_cache/
.mypy_cache/
htmlcov/¡Las contribuciones son bienvenidas!
Antes de hacer PR:
make.bat test (todos los tests deben pasar)make.bat lint (sin warnings)make.bat format (código formateado)MIT License - Úsalo libremente.
Desarrollado con ❤️ para optimizar la interacción de Claude con proyectos reales
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.