Project Files Read-only MCP
Project Files Read-only MCP
Un servicio MCP de sistema de archivos local, de solo lectura y con múltiples directorios raíz. Solo expone a los clientes MCP los directorios de proyecto registrados explícitamente, y ofrece capacidades limitadas de navegación de directorios, búsqueda de nombres de archivo, lectura de texto y extracción de contenido de DOCX, PDF y XLSX.
El servicio no registra herramientas de escritura, edición, copia, movimiento, eliminación o ejecución de comandos. Es adecuado para entregar de forma segura unos pocos archivos de proyectos locales a clientes compatibles con MCP como ChatGPT para su lectura, evitando al mismo tiempo exponer todo el directorio de usuario o el disco.
Este es un proyecto comunitario independiente, no es un producto oficial de OpenAI ni representa un respaldo de OpenAI a su seguridad o compatibilidad.
La dirección del proyecto es github.com/13030109506/project-files-readonly-mcp.
Funciones
El servicio expone de forma fija 9 herramientas de solo lectura.
Herramienta | Propósito |
| Lista los directorios raíz de la lista blanca |
| Lee metadatos de archivos o directorios |
| Lista entradas no sensibles y no enlazadas de un directorio |
| Búsqueda recursiva por nombre de archivo |
| Lee texto, Markdown, CSV, código fuente, etc. por fragmentos |
| Lee por lotes hasta 10 archivos de texto |
| Extrae texto plano de DOCX por párrafos |
| Extrae texto de PDF por páginas |
| Lee XLSX por hoja de cálculo y ventana de filas y columnas |
Todas las herramientas están marcadas como de solo lectura y no destructivas. Las pruebas de integración también verifican que la lista de herramientas no contenga capacidades de escritura, eliminación, movimiento, copia o ejecución de comandos.
Related MCP server: Local File Management MCP Server
Límites de seguridad
Solo acepta rutas absolutas registradas en
roots.json.Realiza una doble verificación de límites tanto del camino léxico como del resultado de
realpath.Rechaza rutas relativas, rutas UNC, rutas de dispositivos, ADS de Windows, escapes mediante enlaces simbólicos y puntos de unión.
Bloquea por defecto
.git,.env, archivos de credenciales, claves privadas, entornos virtuales y directorios de dependencias.Las respuestas de texto, directorios, búsquedas y documentos tienen límites de tamaño y cantidad.
Antes de analizar DOCX y XLSX, se verifican las rutas del paquete comprimido, el número de entradas, el volumen de expansión, la relación de compresión, el cifrado, las macros, ActiveX y los objetos incrustados.
Los documentos binarios se analizan en un Worker independiente con límites de tiempo y memoria.
Las fórmulas de XLSX no se ejecutan y no se accede a enlaces externos.
Una descripción más completa de los límites se encuentra en Modelo de seguridad. Estas protecciones reducen la superficie de invocación de MCP, pero no sustituyen a los permisos de la cuenta de Windows ni a la seguridad del host. Ejecuta este servicio solo en computadoras y clientes MCP de confianza.
Requisitos del entorno
Windows 10 o Windows 11
Node.js
22.13–22.xo Node.js24+npm
El
tunnel-clientopcional de OpenAI, solo necesario para conectarse al Secure MCP Tunnel de ChatGPT
Inicio rápido
Clona el proyecto.
git clone https://github.com/13030109506/project-files-readonly-mcp.git
Set-Location .\project-files-readonly-mcpInstala las dependencias.
npm ciCrea la configuración local. roots.json ya está incluido en .gitignore y no se enviará a Git.
Copy-Item .\roots.example.json .\roots.json
notepad .\roots.jsonCambia las rutas de ejemplo por los directorios de proyecto específicos que quieras autorizar. No configures todo el disco, el directorio de usuario, el Escritorio o Documentos.
{
"roots": [
{
"name": "my-project",
"path": "C:\\Projects\\my-project"
}
]
}Ejecuta las pruebas.
npm testInicio local.
npm startEl servicio usa STDIO y normalmente debe ser iniciado por el cliente MCP o el proceso Tunnel. Es normal que al ejecutarlo directamente no haya indicaciones interactivas.
También se pueden usar otros archivos de configuración mediante variables de entorno.
$env:MCP_PROJECT_ROOTS_CONFIG = 'D:\Config\project-files-roots.json'
npm startAñadir directorios raíz de proyecto
Detén primero el servicio MCP y luego ejecuta el siguiente comando.
.\add-project-root.ps1 -Path 'D:\Projects\another-project' -Name 'another-project'
npm testEl script rechazará todo el disco, el directorio de usuario, el Escritorio y Documentos. Después de modificar la configuración, debes reiniciar MCP o Tunnel; el servicio en ejecución no recarga los directorios raíz en caliente.
Conexión al Secure MCP Tunnel de ChatGPT
Primero descarga el tunnel-client oficial desde la página de configuración de Tunnel de OpenAI Platform. Este proyecto lo busca en el siguiente orden.
Variable de entorno
TUNNEL_CLIENT_PATHtunnel-client\tunnel-client.exedentro del proyectoPATHdel sistemaDirectorio de versiones locales en
%USERPROFILE%\Tools\OpenAI\tunnel-client
Después de crear el Tunnel, genera el perfil local.
.\configure-tunnel.ps1 -TunnelId 'tunnel_your_id'El script establece por defecto el puerto de comprobación de salud local en 127.0.0.1:8081 y guarda en el perfil una referencia a env:CONTROL_PLANE_API_KEY, sin almacenar la propia API Key.
La forma de inicio en primer plano es la siguiente. La Runtime API Key entra en el entorno del proceso actual mediante entrada oculta y se elimina al salir del Tunnel.
.\start-tunnel.ps1La creación del Secure MCP Tunnel de OpenAI, los permisos y los pasos de conexión con ChatGPT se rigen por la documentación oficial.
Inicio oculto tras el inicio de sesión de Windows
Para uso prolongado, se puede instalar una tarea programada para el usuario actual de Windows.
.\install-tunnel-autostart.ps1El instalador solo guarda la Runtime API Key cifrada con DPAPI del usuario actual y no escribe texto plano en los parámetros de la tarea, archivos del proyecto o registros. La tarea programada se inicia mediante un envoltorio VBS oculto, que primero ejecuta doctor, luego inicia el Tunnel y comprueba healthz y readyz.
Las ubicaciones de estado y registros son las siguientes.
Get-ScheduledTask -TaskName 'OpenAI Project Files Read Only Tunnel'
Invoke-WebRequest -UseBasicParsing http://127.0.0.1:8081/healthz
Invoke-WebRequest -UseBasicParsing http://127.0.0.1:8081/readyz%LOCALAPPDATA%\OpenAI\ProjectFilesReadOnly\tunnel-client.logEliminar la tarea y los archivos de clave cifrada.
.\remove-tunnel-autostart.ps1Instrucciones completas en Guía de operación de Tunnel en Windows.
Compatibilidad de archivos
Tipo | Compatibilidad |
TXT, Markdown, JSON, CSV, TSV, código fuente común | Lectura por fragmentos |
DOCX | Extracción de párrafos de texto plano |
Extracción de capa de texto, sin OCR | |
XLSX | Ventanas de filas y columnas y resultados de fórmulas en caché |
DOC, XLS, archivos de Office con macros habilitadas | Rechazados |
Archivos cifrados o protegidos con contraseña | Rechazados |
PDF de imágenes escaneadas | Sin OCR, puede devolver texto vacío |
Bases de datos y otros formatos binarios arbitrarios | No se analizan |
El contenido de los documentos siempre es entrada no confiable. Los clientes MCP no deben tratar el texto de los archivos como instrucciones del sistema.
Pruebas
npm testLas pruebas cubren el siguiente alcance.
Lectura dentro del directorio raíz y rechazo fuera de él
Rechazo de archivos sensibles
Rechazo de rutas relativas
Límites de enlaces simbólicos y puntos de unión de Windows
Lista de herramientas de solo lectura y anotaciones
Lectura de CSV, DOCX, PDF, XLSX
Rechazo de contenido activo de Office y paquetes comprimidos anómalos
Formatos de documentos, paginación, hojas de cálculo y límites de respuesta
Estructura del proyecto
server.mjs MCP 工具注册与文本读取
path-guard.mjs 路径、白名单和敏感文件边界
document-reader.mjs 安全读取与 Worker 调度
document-worker.mjs DOCX、PDF、XLSX 内容提取
archive-guard.mjs Office 压缩包检查
roots.example.json 可提交的配置示例
*-test.mjs 安全、文档和集成测试
*.ps1 / *.vbs / *.cmd Windows Tunnel 与计划任务脚本Divulgación responsable
Si encuentras escapes de ruta, lecturas no autorizadas, fugas de información sensible o problemas de análisis de documentos, no publiques públicamente material de reproducción con archivos sensibles reales. El procedimiento se describe en SECURITY.md.
Licencia
El proyecto utiliza MIT License.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables AI agents to read and understand local Mendix project structure and logic by connecting directly to the .mpr file via MCP. Allows querying microflows, entities, attributes, and modules in read-only mode without requiring cloud access.41
- FlicenseNot gradedqualityDmaintenanceEnables file system operations such as listing, reading, and creating files within a scoped local project directory. It provides a secure way to manage local files through standardized MCP tools built with FastMCP.
- AlicenseNot gradedqualityCmaintenanceEnables Claude Web to securely inspect, search, and modify local project files through a sandboxed MCP server with atomic writes, path traversal protection, and sensitive file blocking.MIT
- AlicenseNot gradedqualityBmaintenanceA security-first, read-only MCP server that lets clients browse and read text, PDF, and XLSX files from an explicit allowlist of local folders, with strict path and secret protections.MIT
Related MCP Connectors
Read-only Remote MCP for externally grounded AI agent trust receipts.
Give AI agents secure access to ZERNO project briefs, tasks, and context over remote MCP.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/13030109506/project-files-readonly-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server