hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Uses Express.js to implement a REST API server with endpoints for file operations and LLM queries.
Implemented as a Node.js application for server-side functionality.
Integrates with Ollama as a local LLM provider for context-aware querying. Allows users to send prompts to Ollama models with context from local files.
Procesador de contexto de modelo (MCP) de contexto de archivo
Descripción general
File Context MCP es una aplicación basada en TypeScript que proporciona una API para consultar Modelos de Lenguaje Grandes (LLM) con contexto de archivos locales. Es compatible con múltiples proveedores de LLM (Ollama y Together.ai) y puede procesar diversos tipos de archivos para generar respuestas contextuales.
Características principales
1. Navegación por el sistema de archivos
- Recorrido dinámico de archivos y directorios
- Soporte para múltiples tipos de archivos (
.txt
,.md
,.ts
,.json
, etc.) - Manejo seguro de caminos con sanitización
2. Procesamiento del contexto
- Formato de contexto inteligente para consultas LLM
- Truncamiento de contexto para manejar archivos grandes
- Agregación de contenido de archivos para consultas de directorio
3. Soporte multimodelo
- Integración de Ollama (local)
- Integración de Together.ai (nube)
- Diseño de interfaz de modelo extensible
Arquitectura
Componentes principales
- Servidor (server.ts)
- Implementación de la API REST de Express.js
- Manejo de carga/eliminación de archivos con multer
- Validación y enrutamiento de solicitudes
- Integración de OpenAPI/Swagger
- Herramientas del sistema de archivos (core/fileSystem.ts)
- Operaciones con archivos y directorios
- Lectura y análisis de contenido
- Recorrido de directorios
- Eliminación segura de archivos
- Manejo de errores en operaciones con archivos
- Interfaz del modelo (core/modelInterface.ts)
- Compatibilidad con varios proveedores de LLM (Ollama, Together.ai)
- Formato de respuesta y manejo de errores
- Parámetros del modelo configurables
- Interfaz de consulta unificada
- Módulos de utilidad
fileUtils
: detección de tipo de archivo, saneamiento de ruta, formato de tamañopromptUtils
: Formato de contexto, truncamiento inteligentevalidators
: validación de rutas, consultas y modeloslogger
: Registro estructurado con niveles
- Configuración (config/config.ts)
- Gestión de variables ambientales
- Claves API y puntos finales
- Configuración del modelo
- Configuración del servidor
- Especificación de API (recursos/file-context-api.yml)
- Documentación de OpenAPI 3.0
- Esquemas de solicitud/respuesta
- Documentación de puntos finales
- Definiciones de respuesta de error
Puntos finales de API
1. Lista de archivos
2. Subir archivo
3. Eliminar archivo
4. Consulta con contexto
Configuración y configuración
- Variables de entorno
- Instalación
Instalación mediante herrería
Para instalar File Context MCP para Claude Desktop automáticamente a través de Smithery :
- Ejecutar la aplicación
Cómo funciona
- Flujo de procesamiento de archivos
- Solicitud recibida → Validación de ruta → Lectura de archivo → Extracción de contenido
- El manejo de directorios incluye la lectura recursiva de archivos
- Filtrado de contenido según el tipo de archivo
- Las cargas de archivos se validan por tipo y tamaño.
- Eliminación segura de archivos con validación de ruta
- Procesamiento de contexto
- El contenido del archivo se agrega
- El contexto está formateado con límites claros
- Los contextos grandes se truncan de forma inteligente
- El formato de las indicaciones añade estructura para la comprensión del LLM
- Integración de modelos
- Interfaz unificada para diferentes proveedores de LLM
- Manejo de errores y normalización de respuestas
- Parámetros del modelo configurables
Características de seguridad
- Saneamiento de caminos
- Prevención de ataques de cruce de directorios
- Validación y normalización de rutas
- Comprobación segura del tipo de archivo
- Seguridad de carga de archivos
- Validación del tipo de archivo
- Límites de tamaño de archivo (5 MB máximo)
- Almacenamiento seguro de archivos
- Eliminación segura de archivos
- Validación de entrada
- Validación del contenido de la consulta
- Verificación del tipo de modelo
- Verificación de la estructura de la ruta
- Validación del contenido del archivo
Tipos de archivos admitidos
La aplicación admite los siguientes tipos de archivos basados en texto:
- Documentación:
.txt
,.md
- Archivos de código:
.js
,.ts
,.jsx
,.tsx
,.py
,.java
,.cpp
,.c
,.h
- Configuración:
.json
,.yaml
,.yml
,.env
- Archivos web:
.html
,.css
- Archivos de datos:
.csv
,.xml
,.log
La validación del tipo de archivo se aplica durante:
- Subidas de archivos
- Procesamiento del contexto
- Operaciones de lectura de archivos
Tamaño máximo de archivo: 5 MB por archivo
Manejo de errores
La aplicación implementa un manejo integral de errores:
- Errores del sistema de archivos
- Errores de respuesta de la API
- Errores de entrada no válida
- Errores específicos del modelo
- Errores de carga/eliminación de archivos
Desarrollo
Estructura del proyecto
Añadiendo nuevas funciones
- Nuevos tipos de archivos
- Agregar extensiones a
fileUtils.isTextFile()
- Implementar controladores específicos si es necesario
- Agregar extensiones a
- Nuevos proveedores de modelos
- Extender la clase
ModelInterface
- Agregar proveedor a
validators.isValidModel()
- Implementar el manejo de errores específico del proveedor
- Extender la clase
Pruebas
Colección del Cartero
El proyecto incluye una colección de Postman ( postman/File-Context-MCP.postman_collection.json
) para probar todos los endpoints de la API. Para usarla:
- Importar la colección
- Cartero abierto
- Haga clic en el botón "Importar"
- Seleccione o arrastre el
File-Context-MCP.postman_collection.json
- Solicitudes disponiblesCopy
- Prueba de operaciones de archivos
- Lista de archivos : ver el contenido del directorio de almacenamiento
- Subir archivo : utilice form-data con la clave "archivo" y seleccione un archivo de texto
- Consulta de archivos : Analice el contenido de un solo archivo con LLM
- Analizar directorio : procesar múltiples archivos con LLM
- Consultas de ejemploCopy
- Guía de carga de archivos
- Utilice la solicitud "Carga de archivos"
- Seleccione "form-data" en la pestaña Cuerpo
- Agregar clave "archivo" con tipo "Archivo"
- Elija un archivo de texto compatible (consulte Tipos de archivos compatibles)
- Tamaño máximo de archivo: 5 MB
Pruebas manuales
- Utilice los archivos de prueba proporcionados en
/storage
- Pruebe diferentes tipos de archivos y consultas
- Verificar las respuestas del modelo y el manejo de errores
- Límites de tamaño de archivo de prueba y restricciones de tipo
Configuración del entorno
Asegúrese de:
- Tener el servidor en ejecución (
npm run dev
) - Configurar variables de entorno
- Tener Ollama ejecutándose localmente (para el modelo Ollama)
- Establecer la clave API de Together.ai (para el modelo Together)
Consideraciones futuras
- Cómo gestionar archivos grandes de forma eficiente
- Ampliación de los tipos de archivos admitidos
- Optimización del procesamiento del contexto
- Agregar soporte de transmisión para las respuestas
- Implementación de limitación de velocidad y almacenamiento en caché
Este proyecto demuestra prácticas modernas de TypeScript/Node.js con un enfoque en la modularidad, la seguridad de tipos y el manejo de errores, al tiempo que proporciona una interfaz flexible para las interacciones LLM con el contexto basado en archivos.
This server cannot be installed
Este servidor proporciona una API para consultar modelos de lenguaje grandes utilizando el contexto de archivos locales y admite varios modelos y tipos de archivos para obtener respuestas conscientes del contexto.
- Overview
- Core Features
- Architecture
- API Endpoints
- Setup and Configuration
- How It Works
- Security Features
- Supported File Types
- Error Handling
- Development
- Testing
- Future Considerations