Editar líneas de archivo del servidor MCP
Un servidor MCP basado en TypeScript que proporciona herramientas para realizar ediciones precisas en líneas de archivos de texto dentro de directorios permitidos.
Características
Herramienta de edición principal
edit_file_lines
Realice ediciones lineales en un archivo mediante la coincidencia de patrones de cadenas o expresiones regulares. Cada edición puede:
- Reemplazar líneas enteras
- Reemplazar coincidencias de texto específicas conservando el formato de línea
- Utilice patrones de expresiones regulares para coincidencias complejas
- Manejar múltiples líneas y múltiples ediciones
- Vista previa de los cambios con el modo de ejecución en seco
Archivo de ejemplo ( src/components/App.tsx
):
Ejemplos de casos de uso
- Reemplazo de cuerda simple
Producción:
ID de estado: fcbf740a Utilice este ID con approved_edit para aplicar los cambios.
- Contenido de varias líneas con estructura preservada
Producción:
ID de estado: f2ce973f Utilice este ID con approved_edit para aplicar los cambios.
- Modificación compleja de la estructura JSX
Producción:
ID de estado: f1f1d27b Utilice este ID con approved_edit para aplicar los cambios.
- Actualización de la configuración con conservación de espacios en blanco
Producción:
ID de estado: 20e93c34 Utilice este ID con approved_edit para aplicar los cambios.
- Coincidencia flexible de espacios en blanco
Producción:
Herramientas adicionales
approve_edit
Aplique los cambios de un simulacro previo de edit_file_lines
. Esta herramienta ofrece un proceso de edición de dos pasos para mayor seguridad. A continuación, se muestra un ejemplo de flujo de trabajo:
- Primero, haz una edición en seco:
Producción:
ID de estado: fcbf740a Utilice este ID con approved_edit para aplicar los cambios.
- Luego, aprueba los cambios utilizando el ID del estado:
Producción:
- Verificar los cambios:
Producción:
Tenga en cuenta que, por razones de seguridad, las identificaciones estatales caducan poco después. Intentar usar una identificación estatal caducada o no válida generará un error:
Producción:
get_file_lines
Inspeccione líneas específicas de un archivo con líneas de contexto opcionales. Esta herramienta es útil para verificar el contenido de las líneas antes de realizar modificaciones.
Producción:
search_file
Busque patrones de texto o expresiones regulares en un archivo para encontrar números de línea específicos y su contexto. Esta herramienta es especialmente útil para localizar las líneas exactas que desea editar con edit_file_lines
.
Características:
- Búsqueda de texto simple con distinción entre mayúsculas y minúsculas opcional
- Compatibilidad con expresiones regulares
- Coincidencia de palabras completas
- Líneas de contexto configurables
- Devuelve números de línea, contenido y contexto circundante con números de línea
Argumentos:
Ejemplos de casos de uso:
- Búsqueda de texto simple:
Producción:
- Búsqueda de palabras completas que distingue entre mayúsculas y minúsculas:
Producción:
- Encontrar componentes JSX:
Producción:
Flujos de trabajo comunes:
- Buscar y luego editar:
- Encuentra todos los usos:
- Encuentre patrones de accesorios específicos:
Notas importantes
- Manejo de espacios en blanco
- La herramienta maneja de forma inteligente los espacios en blanco tanto en coincidencias de cadenas como de expresiones regulares.
- La sangría original se conserva en los reemplazos.
- Los espacios múltiples entre tokens se normalizan para que coincidan
- Coincidencia de patrones
- Las coincidencias de cadenas (
strMatch
) se normalizan con espacios en blanco - Los patrones de expresiones regulares (
regexMatch
) admiten la mirada hacia adelante y hacia atrás - No se pueden usar
strMatch
yregexMatch
en la misma edición - Se detectan y evitan los patrones de expresiones regulares superpuestos
- Las coincidencias de cadenas (
- Mejores prácticas
- Utilice siempre primero la ejecución en seco para verificar los cambios
- Revise la salida diff antes de aprobar los cambios
- Mantenga las operaciones de edición enfocadas y atómicas
- Utilice la coincidencia de patrones adecuada para su caso de uso
Desarrollo
Instalar dependencias:
Construir el servidor:
Para desarrollo con reconstrucción automática:
Pruebas
Ejecute el conjunto de pruebas:
Utilidades de prueba adicionales:
Script de herramientas de prueba
Pruebe las herramientas MCP directamente con archivos de muestra:
Este guión:
- Restablece los accesorios de prueba a un estado conocido
- Se conecta al servidor MCP
- Prueba cada herramienta en secuencia:
get_file_lines
edit_file_lines
(ejecución en seco)approve_edit
- Muestra la salida de cada operación.
- Verifica que los cambios se aplicaron correctamente
Script de reinicio de accesorios
Restablecer los accesorios de prueba a su estado original:
Utilice este script para:
- Restablecer los archivos de prueba a un estado conocido antes de realizar la prueba
- Limpiar después de pruebas fallidas
- Garantizar un entorno de prueba consistente
- Crear directorios de accesorios faltantes
Uso
El servidor requiere que se especifiquen uno o más directorios permitidos al iniciarse:
Todas las operaciones con archivos estarán restringidas a estos directorios por seguridad.
Variables de entorno
MCP_EDIT_STATE_TTL
: Tiempo de vida en milisegundos para los estados de edición (valor predeterminado: 60000). Los estados de edición expirarán después de este tiempo y deberán volver a crearse.
Instalación
Para utilizar con Claude Desktop, agregue la configuración del servidor:
En MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
En Windows: %APPDATA%/Claude/claude_desktop_config.json
Manejo de errores
La herramienta proporciona mensajes de error claros para problemas comunes:
- Coincidencia no encontrada
- Expresión regular no válida
- Varias ediciones en la misma línea
Consideraciones de seguridad
- Todas las operaciones con archivos están restringidas a directorios explícitamente permitidos
- Los enlaces simbólicos se validan para evitar escapar de directorios permitidos
- Se evita el recorrido del directorio principal
- La normalización de rutas se realiza para realizar comprobaciones de seguridad consistentes
- Se rechazan los números de línea y las posiciones de caracteres no válidos.
- La normalización del final de línea garantiza un comportamiento consistente en todas las plataformas
- Los estados de edición expiran después de 60 segundos por seguridad.
- Las aprobaciones de edición requieren una coincidencia exacta de la ruta del archivo y las ediciones
Depuración
Utilice el script Herramientas de prueba para probar las herramientas MCP directamente con archivos de ejemplo. El Inspector MCP podría ser útil, pero actualmente no admite el procesamiento de entradas que no sean valores de cadena.
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 MCP basado en TypeScript que proporciona herramientas para realizar ediciones precisas basadas en líneas en archivos de texto dentro de directorios permitidos.
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityTypeScript-based MCP server designed to enhance code editing experiences by providing features such as hover information, code completion, and diagnostics.Last updated -313MIT License
- AsecurityFlicenseAqualityA TypeScript-based MCP server that implements a simple notes system, enabling users to manage text notes with creation and summarization functionalities through structured prompts.Last updated -1289JavaScript
- AsecurityAlicenseAqualityA TypeScript MCP server port of Anthropic's filesystem editing tools, allowing file manipulation via client-approved operations without automated writes to prevent system harm.Last updated -55TypeScriptMIT License
- -securityFlicense-qualityA TypeScript-based MCP server that enables users to manage text notes and generate summaries, showcasing key MCP concepts like resource representation and LLM integration.Last updated -1,667JavaScript