MCP Filesystem Server
Proporciona acceso seguro al sistema de archivos local a través del Model Context Protocol (MCP).
Documentación
Servidor de Sistema de Archivos MCP
Este servidor MCP proporciona acceso seguro al sistema de archivos local mediante el Protocolo de Contexto de Modelo (MCP).
Componentes
Recursos
- file://
- Nombre: Sistema de Archivos
- Descripción: Acceso a archivos y directorios en el sistema de archivos local
Herramientas
Operaciones de Archivos
-
read_file
- Lee el contenido completo de un archivo del sistema de archivos
- Parámetros:
path(obligatorio): Ruta del archivo a leer
-
read_multiple_files
- Lee el contenido de múltiples archivos en una sola operación
- Parámetros:
paths(obligatorio): Lista de rutas de archivos a leer
-
write_file
- Crea un archivo nuevo o sobrescribe un archivo existente con contenido nuevo
- Parámetros:
path(obligatorio): Ruta donde escribir el archivo,content(obligatorio): Contenido a escribir en el archivo
-
copy_file
- Copia archivos y directorios
- Parámetros:
source(obligatorio): Ruta de origen del archivo o directorio,destination(obligatorio): Ruta de destino
-
move_file
- Mueve o renombra archivos y directorios
- Parámetros:
source(obligatorio): Ruta de origen del archivo o directorio,destination(obligatorio): Ruta de destino
-
delete_file
- Elimina un archivo o directorio del sistema de archivos
- Parámetros:
path(obligatorio): Ruta del archivo o directorio a eliminar,recursive(opcional): Si se deben eliminar directorios de forma recursiva (predeterminado: false)
-
modify_file
- Actualiza un archivo buscando y reemplazando texto mediante coincidencia de cadenas o expresiones regulares
- Parámetros:
path(obligatorio): Ruta del archivo a modificar,find(obligatorio): Texto a buscar,replace(obligatorio): Texto de reemplazo,all_occurrences(opcional): Reemplazar todas las ocurrencias (predeterminado: true),regex(opcional): Tratar el patrón de búsqueda como expresión regular (predeterminado: false)
Operaciones de Directorios
-
list_directory
- Obtiene un listado detallado de todos los archivos y directorios en una ruta especificada
- Parámetros:
path(obligatorio): Ruta del directorio a listar
-
create_directory
- Crea un directorio nuevo o asegura que un directorio exista
- Parámetros:
path(obligatorio): Ruta del directorio a crear
-
tree
- Devuelve una representación JSON jerárquica de una estructura de directorios
- Parámetros:
path(obligatorio): Ruta del directorio a recorrer,depth(opcional): Profundidad máxima a recorrer (predeterminado: 3),follow_symlinks(opcional): Si se deben seguir enlaces simbólicos (predeterminado: false)
Búsqueda e Información
-
search_files
- Busca recursivamente archivos y directorios que coincidan con un patrón
- Parámetros:
path(obligatorio): Ruta inicial para la búsqueda,pattern(obligatorio): Patrón de búsqueda para comparar con nombres de archivos
-
search_within_files
- Busca texto dentro del contenido de archivos en árboles de directorios
- Parámetros:
path(obligatorio): Directorio inicial para la búsqueda,substring(obligatorio): Texto a buscar dentro del contenido de los archivos,depth(opcional): Profundidad máxima de directorios a buscar,max_results(opcional): Número máximo de resultados a devolver (predeterminado: 1000)
-
get_file_info
- Recupera metadatos detallados sobre un archivo o directorio
- Parámetros:
path(obligatorio): Ruta del archivo o directorio
-
list_allowed_directories
- Devuelve la lista de directorios a los que este servidor tiene permitido acceder
- Parámetros: Ninguno
Características
- Acceso seguro a directorios especificados
- Validación de rutas para prevenir ataques de traversal de directorios
- Resolución de enlaces simbólicos con comprobaciones de seguridad
- Detección de tipos MIME
- Soporte para archivos de texto, binarios e imágenes
- Límites de tamaño para contenido en línea y codificación base64
Primeros Pasos
Instalación
Usando Go Install
go install github.com/mark3labs/mcp-filesystem-server@latest
Uso
Como servidor independiente
Inicie el servidor MCP con directorios permitidos:
mcp-filesystem-server /path/to/allowed/directory [/another/allowed/directory ...]
Como biblioteca en su proyecto Go
package main
import (
"log"
"os"
"github.com/mark3labs/mcp-filesystem-server/filesystemserver"
)
func main() {
// Create a new filesystem server with allowed directories
allowedDirs := []string{"/path/to/allowed/directory", "/another/allowed/directory"}
fs, err := filesystemserver.NewFilesystemServer(allowedDirs)
if err != nil {
log.Fatalf("Failed to create server: %v", err)
}
// Serve requests
if err := fs.Serve(); err != nil {
log.Fatalf("Server error: %v", err)
}
}
Uso con el Protocolo de Contexto de Modelo
Para integrar este servidor con aplicaciones que admiten MCP:
{
"mcpServers": {
"filesystem": {
"command": "mcp-filesystem-server",
"args": ["/path/to/allowed/directory", "/another/allowed/directory"]
}
}
}
Docker
Ejecución con Docker
Puede ejecutar el servidor MCP de Sistema de Archivos usando Docker:
docker run -i --rm ghcr.io/mark3labs/mcp-filesystem-server:latest /path/to/allowed/directory
Configuración de Docker con MCP
Para integrar la imagen de Docker con aplicaciones que admiten MCP:
{
"mcpServers": {
"filesystem": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/mark3labs/mcp-filesystem-server:latest",
"/path/to/allowed/directory"
]
}
}
}
Si necesita que los cambios realizados dentro del contenedor se reflejen en el sistema de archivos del host, puede montar un volumen. Esto permite que el contenedor acceda y modifique archivos en el sistema host. Aquí hay un ejemplo:
{
"mcpServers": {
"filesystem": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--volume=/allowed/directory/in/host:/allowed/directory/in/container",
"ghcr.io/mark3labs/mcp-filesystem-server:latest",
"/allowed/directory/in/container"
]
}
}
}
Licencia
Consulte el archivo LICENCIA para obtener más detalles.