TypeScript MCP
Un servidor especializado en TypeScript que ofrece capacidades avanzadas de manipulación y análisis de código.
Documentación
lsmcp - Servidor MCP de Protocolo de Servicio de Lenguaje
Un servidor MCP (Protocolo de Contexto de Modelo) unificado que proporciona capacidades avanzadas de manipulación y análisis de código para múltiples lenguajes de programación mediante la integración del Protocolo de Servicio de Lenguaje.
- 🌍 Soporte Multi-Lenguaje
- 🔍 Análisis Semántico de Código
- 🤖 Optimizado para IA
Consulta examples/ para ver ejemplos funcionales de cada configuración de lenguaje soportada.
Requisitos
- Node.js 22.0.0 o superior (requerido para soporte SQLite integrado)
Inicio Rápido
# tsgo (reccommended)
npm add -D @mizchi/lsmcp @typescript/native-preview
npx @mizchi/lsmcp init -p tsgo
claude mcp add lsmcp npx -- -y @mizchi/lsmcp -p tsgo
# with manual --bin
claude mcp add lsmcp npx -- -y @mizchi/lsmcp --bin="<lsp-command>"
📖 Ejemplo de Uso con Claude
FLUJO DE TRABAJO RECOMENDADO
🎯 Flujo Principal: Vista General → Búsqueda → Detalles
1. get_project_overview # Understand the codebase
2. search_symbols # Find what you need
3. get_symbol_details # Deep dive into symbols
📋 Cuándo Usar Cada Herramienta
Exploración Inicial:
get_project_overview- Primera herramienta para entender cualquier base de códigolist_dir- Explorar la estructura de directoriosget_symbols_overview- Vista de alto nivel de los símbolos de archivos
Búsqueda de Código:
search_symbols- Búsqueda principal de funciones, clases, interfaceslsp_get_document_symbols- Listar todos los símbolos en un archivo específicolsp_get_workspace_symbols- Búsqueda alternativa en todo el espacio de trabajo
Comprensión de Código:
get_symbol_details- Información completa en una sola llamada (recomendado)lsp_get_definitions- Ir a la definición (usaincludeBody: truepara el código completo)lsp_find_references- Encontrar todos los usoslsp_get_hover- Información rápida de tipos
Calidad de Código:
lsp_get_diagnostics- Verificar erroreslsp_get_code_actions- Obtener correcciones disponibles
Modificación de Código:
lsp_rename_symbol- Renombrado seguro en toda la base de códigolsp_format_document- Formatear códigoreplace_range/replace_regex- Reemplazos de texto
Ejemplos de Flujos de Trabajo
1. EXPLORANDO UNA NUEVA BASE DE CÓDIGO
1. mcp__lsmcp__get_project_overview
→ Understand structure, main components, statistics
2. mcp__lsmcp__search_symbols --kind "class"
→ Find all classes in the project
3. mcp__lsmcp__get_symbol_details --symbol "MainClass"
→ Deep dive into specific class implementation
2. INVESTIGANDO UN ERROR
1. mcp__lsmcp__search_symbols --name "problematicFunction"
→ Locate the function
2. mcp__lsmcp__get_symbol_details --symbol "problematicFunction"
→ Understand its type, implementation, and usage
3. mcp__lsmcp__lsp_find_references --symbolName "problematicFunction"
→ See all places it's called
4. mcp__lsmcp__lsp_get_diagnostics --relativePath "path/to/file.ts"
→ Check for errors
3. REFACTORIZANDO CÓDIGO
1. mcp__lsmcp__search_symbols --name "oldMethodName"
→ Find the method to refactor
2. mcp__lsmcp__get_symbol_details --symbol "oldMethodName"
→ Understand current implementation and usage
3. mcp__lsmcp__lsp_rename_symbol --symbolName "oldMethodName" --newName "newMethodName"
→ Safely rename across codebase
4. mcp__lsmcp__lsp_format_document --relativePath "path/to/file.ts"
→ Clean up formatting
4. AÑADIENDO NUEVAS FUNCIONALIDADES
1. mcp__lsmcp__get_project_overview
→ Understand existing architecture
2. mcp__lsmcp__search_symbols --kind "interface"
→ Find relevant interfaces to implement
3. mcp__lsmcp__get_symbol_details --symbol "IUserService"
→ Understand interface requirements
4. mcp__lsmcp__lsp_get_completion --line 50
→ Get suggestions while writing new code
HERRAMIENTAS DE RESPALDO (USAR SOLO CUANDO SEA NECESARIO):
- ⚠️
Read- Solo cuando necesites ver archivos que no son de código o cuando las herramientas LSMCP fallen - ⚠️
Grep- Para búsquedas de patrones de texto en archivos - ⚠️
Glob- Solo cuando la búsqueda de archivos de LSMCP no funcione - ⚠️
LS- Solo para listados básicos de directorios cuando LSMCP falle - ⚠️ Comandos
Bash- Solo para operaciones que no son de código o solución de problemas
CUÁNDO USAR HERRAMIENTAS DE RESPALDO
Usa las herramientas estándar SOLO en estas situaciones:
- Archivos que no son de código: README, documentación, archivos de configuración
- Fallos de herramientas LSMCP: Cuando las herramientas LSMCP devuelvan errores o sin resultados
- Depuración: Cuando se solucionen problemas de por qué las herramientas LSMCP no funcionan
- Formatos de archivo especiales: Archivos que LSMCP no soporta
- Verificación rápida: Comprobación doble de resultados LSMCP cuando sea necesario
Sistema de Memoria
Tienes acceso a memorias de proyecto almacenadas en .lsmcp/memories/. Usa estas herramientas:
mcp__lsmcp__list_memories- Listar archivos de memoria disponiblesmcp__lsmcp__read_memory- Leer contenido de memoria específicomcp__lsmcp__write_memory- Crear o actualizar memoriasmcp__lsmcp__delete_memory- Eliminar un archivo de memoria
Las memorias contienen contexto importante del proyecto, convenciones y pautas que ayudan a mantener la consistencia.
Presets Disponibles
lsmcp incluye presets integrados para servidores de lenguaje populares:
tsgo- TypeScript (Recomendado)typescript- typescript-language-serverrust-analyzer- Rust Analysermoonbit- MoonBitfsharp- F# (fsautocomplete)deno- Deno TypeScript/JavaScriptgopls- Go (Servidor de lenguaje oficial de Go)hls- Haskell Language Server (requiere configuración de ghcup, consulta docs/HASKELL_SETUP.md)ocaml- OCaml Language Server
Configuración
.lsmcp/config.json
{
"$schema": "../node_modules/@mizchi/lsmcp/lsmcp.schema.json",
"preset": "tsgo",
"settings": {
"autoIndex": true,
"indexConcurrency": 10
}
}
Para un ejemplo completo de configuración, consulta examples/full-lsmcp-config.json.
Herramientas
lsmcp proporciona herramientas MCP integrales para análisis y manipulación de código:
Nota: Los nombres de herramientas listados a continuación son los nombres de herramientas MCP sin procesar (snake_case, por ejemplo, get_hover). Algunos clientes los muestran con un prefijo calificado por servidor (por ejemplo, mcplsmcpget_hover). Para convenciones de nomenclatura y límites de módulos, consulta docs/TOOL_REFERENCE.md.
Herramientas LSP Principales
- lsp_get_hover - Obtener información de tipos y documentación para símbolos
- lsp_find_references - Encontrar todas las referencias a un símbolo en toda la base de código
- lsp_get_definitions - Navegar a definiciones de símbolos con cuerpo de código opcional
- lsp_get_diagnostics - Verificar errores y advertencias en archivos
- lsp_get_all_diagnostics - Obtener diagnósticos para todo el proyecto
- lsp_get_document_symbols - Listar todos los símbolos en un archivo
- lsp_get_workspace_symbols - Buscar símbolos en todo el espacio de trabajo
- lsp_get_completion - Obtener sugerencias de autocompletado de código
- lsp_get_signature_help - Obtener sugerencias de parámetros para llamadas a funciones
- lsp_format_document - Formatear documentos completos usando el servidor de lenguaje
- lsp_rename_symbol - Renombrar símbolos en toda la base de código
- lsp_get_code_actions - Obtener correcciones rápidas y refactorizaciones disponibles
- lsp_delete_symbol - Eliminar un símbolo y opcionalmente todas sus referencias
- lsp_check_capabilities - Verificar las funciones LSP soportadas
Herramientas de Alto Nivel
- get_project_overview - Análisis rápido de estructura de proyecto y componentes
- search_symbols - Búsqueda rápida de símbolos usando índice preconstruido (crea índice automáticamente si es necesario)
- get_symbol_details - Obtener detalles completos sobre un símbolo (información flotante, definición, referencias)
Herramientas de Bibliotecas Externas
- index_external_libraries - Indexar archivos de declaración TypeScript de node_modules
- get_typescript_dependencies - Listar dependencias TypeScript disponibles
- search_external_library_symbols - Buscar símbolos en bibliotecas externas indexadas
- resolve_symbol - Resolver símbolos a sus definiciones en bibliotecas externas
- get_available_external_symbols - Obtener símbolos disponibles de bibliotecas importadas
- parse_imports - Analizar y examinar declaraciones de importación
Herramientas de Edición de Código
- replace_range - Reemplazar rangos de texto específicos en archivos
- replace_regex - Reemplazos avanzados basados en expresiones regulares
Herramientas del Sistema de Archivos
- list_dir - Listar directorios con soporte de gitignore
- get_symbols_overview - Vista general de símbolos de alto nivel por archivo
Gestión de Memoria
- list_memories - Listar memorias de proyecto
- read_memory - Leer contenido de memoria específico
- write_memory - Crear o actualizar memorias
- delete_memory - Eliminar memorias
Optimización del Rendimiento
LSMCP incluye varias optimizaciones de rendimiento:
- Indexación Incremental: Solo los archivos modificados se re-indexan
- Monitoreo de Memoria: Recolección automática de basura cuando el uso de memoria es alto
- Procesamiento por Lotes: Procesamiento eficiente concurrente de archivos
- Caché Inteligente: Caché de 15 minutos para datos de acceso frecuente
Opciones de configuración en .lsmcp/config.json:
{
"indexConcurrency": 5,
"maxFileSize": 10485760,
"enableWatchers": true,
"memoryLimit": 1024
}
Desarrollo
Consulta CONTRIBUTING.md para obtener instrucciones detalladas de configuración de desarrollo, pruebas y pautas de contribución.
# Quick start
pnpm install
pnpm build
pnpm test
# Run with memory monitoring
node --expose-gc dist/lsmcp.js
Registro de Depuración
LSMCP tiene sistemas de registro separados para el servidor MCP y el cliente LSP que se pueden controlar de forma independiente:
Registro del Servidor MCP
Habilita la salida de depuración del servidor MCP con cualquiera de las variables de entorno:
MCP_DEBUG=1 lsmcp # Enable MCP server debug logging
LSMCP_DEBUG=1 lsmcp # Alternative (backward compatible)
Registro del Cliente LSP
Habilita la salida de depuración del cliente LSP por separado:
LSP_DEBUG=1 lsmcp # Enable LSP client debug logging
Registro Combinado
Habilita la salida de depuración tanto de MCP como de LSP:
MCP_DEBUG=1 LSP_DEBUG=1 lsmcp
Licencia
MIT - Consulta el archivo LICENSE para más detalles.