Servidor MCP del sistema de archivos
Potencie a sus agentes de IA con capacidades de sistema de archivos robustas e independientes de la plataforma.
Este servidor de Protocolo de Contexto de Modelo (MCP) proporciona una interfaz segura y confiable para que los agentes de IA interactúen con el sistema de archivos local. Permite leer, escribir, actualizar y administrar archivos y directorios, con el respaldo de una base TypeScript lista para producción que incluye registro completo, gestión de errores y medidas de seguridad.
Tabla de contenido
- Descripción general
- Características
- Instalación
- Configuración
- Uso con clientes MCP
- Herramientas disponibles
- Estructura del proyecto
- Desarrollo
- Licencia
Descripción general
El Protocolo de Contexto de Modelo (MCP) es un marco estándar que permite a los modelos de IA interactuar de forma segura con herramientas externas y fuentes de datos (recursos). Este servidor implementa el estándar MCP para exponer las operaciones esenciales del sistema de archivos como herramientas, lo que permite a los agentes de IA:
- Leer y analizar el contenido de los archivos.
- Crear, modificar o sobrescribir archivos.
- Administrar directorios y rutas de archivos.
- Realizar actualizaciones específicas dentro de los archivos.
Creado con TypeScript, el servidor enfatiza la seguridad de tipos, la modularidad y el manejo robusto de errores, lo que lo hace adecuado para una integración confiable en flujos de trabajo de IA.
Arquitectura
El servidor emplea una arquitectura en capas para mayor claridad y facilidad de mantenimiento:
- Capa API : maneja la comunicación MCP, valida entradas usando Zod y desinfecta rutas.
- Servicios principales : administra la configuración, el registro, los informes de errores, el estado de la sesión (como el directorio de trabajo predeterminado) y la instancia principal del servidor MCP.
- Implementación de herramientas : contiene la lógica específica para cada herramienta del sistema de archivos, aprovechando utilidades compartidas.
Características
- Operaciones de archivos integrales : herramientas para leer, escribir, enumerar, eliminar, mover y copiar archivos y directorios.
- Actualizaciones específicas : la herramienta
update_file
permite operaciones precisas de búsqueda y reemplazo dentro de archivos, admitiendo texto simple y expresiones regulares. - Gestión de rutas consciente de la sesión : la herramienta
set_filesystem_default
establece un directorio de trabajo predeterminado para resolver rutas relativas durante una sesión. - Seguridad ante todo : La limpieza de rutas integrada previene ataques de cruce de directorios. La restricción opcional de directorios base mejora la seguridad.
- Base robusta : incluye utilidades de nivel de producción para:
- Registro estructurado y consciente del contexto.
- Manejo de errores estandarizado con códigos de error específicos.
- Generación de ID único para seguimiento de solicitudes.
- Sanitización de entrada.
- Limitación de velocidad opcional (archivo de utilidad creado pero aún no integrado).
- Seguridad de tipos : totalmente implementado en TypeScript para mejorar la confiabilidad y la facilidad de mantenimiento.
Instalación
Pasos
- Clonar el repositorio:
- Instalar dependencias:
- Construir el proyecto:Esto compila el código TypeScript a JavaScript en el directorio
dist/
y convierte el script principal en ejecutable. El ejecutable se ubicará endist/index.js
.
Configuración
Configurar el servidor usando variables de entorno:
FS_BASE_DIRECTORY
(opcional, recomendado por seguridad ):- Si se establece como una ruta absoluta, todas las operaciones con archivos realizadas por el servidor se limitarán estrictamente a este directorio y sus subdirectorios. Esto impide que el agente de IA acceda a archivos fuera del alcance previsto.
- Ejemplo:
FS_BASE_DIRECTORY=/Users/casey/safe-agent-files
LOG_LEVEL
(opcional):- Controla el nivel de detalle de los registros. Opciones:
error
,warn
,info
,http
,verbose
,debug
ysilly
. - El valor predeterminado es
info
.
- Controla el nivel de detalle de los registros. Opciones:
LOG_DIR
(opcional):- Especifica el directorio donde se almacenarán los archivos de registro (
combined.log
,error.log
). - El valor predeterminado es
./logs
relativo al directorio de ejecución del servidor.
- Especifica el directorio donde se almacenarán los archivos de registro (
Uso con clientes MCP
Para permitir que un cliente MCP (como un asistente de IA) utilice este servidor:
- Ejecutar el servidor: Inicie el servidor desde su terminal:
- Configurar el cliente: Agregue el servidor a la configuración de su cliente MCP. El método exacto depende del cliente, pero normalmente implica especificar:
- Comando:
node
- Argumentos: La ruta absoluta al ejecutable del servidor creado (por ejemplo,
/path/to/filesystem-mcp-server/dist/index.js
). - Variables de entorno (opcional): configure
FS_BASE_DIRECTORY
,LOG_LEVEL
oLOG_DIR
según sea necesario.
Ejemplo de configuración de MCP (conceptual):
- Comando:
Una vez configurado y en funcionamiento, el cliente detectará el servidor y sus herramientas disponibles.
Herramientas disponibles
El servidor expone las siguientes herramientas para la interacción del sistema de archivos:
Herramienta | Descripción |
---|---|
set_filesystem_default | Establece una ruta absoluta predeterminada para la sesión actual. Las rutas relativas utilizadas en las llamadas subsiguientes a la herramienta se resolverán con esta ruta predeterminada. Se restablece al reiniciar el servidor. |
read_file | Lee todo el contenido de un archivo especificado como texto UTF-8. Acepta rutas relativas (resueltas con respecto a la predeterminada) o absolutas. |
write_file | Escribe contenido en un archivo específico. Si no existe, lo crea (y los directorios principales necesarios) o lo sobrescribe si existe. Acepta rutas relativas o absolutas. |
update_file | Realiza operaciones de búsqueda y reemplazo específicas dentro de un archivo existente mediante una matriz de bloques {search, replace} . Ideal para cambios localizados. Admite búsquedas de texto plano o expresiones regulares ( useRegex: true ) y reemplazo de todas las ocurrencias ( replaceAll: true ). Acepta rutas relativas o absolutas. El archivo debe existir. |
list_files | Enumera archivos y directorios dentro de una ruta especificada. Las opciones incluyen listado recursivo ( includeNested: true ) y limitación del número de entradas ( maxEntries ). Devuelve una estructura de árbol formateada. Acepta rutas relativas o absolutas. |
delete_file | Elimina permanentemente un archivo específico. Acepta rutas relativas o absolutas. |
delete_directory | Elimina permanentemente un directorio. Use recursive: true para eliminar directorios no vacíos y su contenido (¡úselo con precaución!). Acepta rutas relativas o absolutas. |
create_directory | Crea un nuevo directorio en la ruta especificada. Por defecto ( create_parents: true ), también crea los directorios principales necesarios. Acepta rutas relativas o absolutas. |
move_path | Mueve o renombra un archivo o directorio de una ruta de origen a una de destino. Acepta rutas relativas o absolutas para ambas. |
copy_path | Copia un archivo o directorio de una ruta de origen a una de destino. Para directorios, copia recursivamente por defecto ( recursive: true ). Acepta rutas relativas o absolutas. |
Consulte los archivos de registro de herramientas ( src/mcp-server/tools/*/registration.ts
) para obtener esquemas de entrada/salida detallados (esquema Zod/JSON).
Estructura del proyecto
El código base está organizado para mayor claridad y facilidad de mantenimiento:
Para obtener una vista detallada y en vivo de la estructura actual, ejecute: npm run tree
Nota para desarrolladores: Este repositorio incluye un archivo .clinerules . Esta hoja de referencia proporciona a tu asistente de programación LLM información esencial sobre patrones de código base, ubicaciones de archivos y ejemplos de uso. ¡Manténla actualizada a medida que el servidor evoluciona!
Licencia
Este proyecto está licenciado bajo la Licencia Apache 2.0. Consulte el archivo de LICENCIA para más detalles.
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Un servidor de protocolo de contexto de modelo que proporciona a los agentes de IA acceso seguro a las operaciones del sistema de archivos local, lo que permite leer, escribir y administrar archivos a través de una interfaz estandarizada.
Related MCP Servers
- AsecurityFlicenseAqualityA Model Context Protocol server that allows secure execution of pre-approved commands, enabling AI assistants to safely interact with the user's system.Last updated -1318JavaScript
- -securityFlicense-qualityA Model Context Protocol server that enables role-based context management for AI agents, allowing users to establish specific instructions, maintain partitioned memory, and adapt tone for different agent roles in their system.Last updated -TypeScript
- -securityFlicense-qualityA comprehensive Model Context Protocol server implementation that enables AI assistants to interact with file systems, databases, GitHub repositories, web resources, and system tools while maintaining security and control.Last updated -16TypeScript
- -securityFlicense-qualityA Model Context Protocol server that extends AI capabilities by providing file system access and management functionalities to Claude or other AI assistants.Last updated -3TypeScript