Skip to main content
Glama

MCP Language Server

Servidor de idiomas MCP

Este es un servidor MCP que ejecuta y expone un servidor de idiomas a los LLM. No es un servidor de idiomas para MCP, sea lo que sea.

Manifestación

mcp-language-server ayuda a los clientes habilitados para MCP a navegar por las bases de código más fácilmente brindándoles acceso a herramientas semánticas como obtener definición, referencias, cambiar nombre y diagnósticos.

Manifestación

Configuración

  1. Instalar Go : siga las instrucciones en https://golang.org/doc/install
  2. Instalar o actualizar este servidor : go install github.com/isaacphi/mcp-language-server@latest
  3. Instalar un servidor de idioma : siga una de las guías a continuación
  4. Configure su cliente MCP : siga una de las guías a continuación
<p><strong>Note</strong>:</p> <ul> <li>Replace <code>/path/to/your/clangd_binary</code> with the actual path to your clangd executable.</li> <li><code>--compile-commands-dir</code> should point to the directory containing your <code>compile_commands.json</code> file (e.g., <code>./build</code>, <code>./cmake-build-debug</code>).</li> <li>Ensure <code>compile_commands.json</code> is generated for your project for clangd to work effectively.</li> </ul>

Herramientas

  • definition : recupera la definición completa del código fuente de cualquier símbolo (función, tipo, constante, etc.) de su base de código.
  • references : localiza todos los usos y referencias de un símbolo en todo el código base.
  • diagnostics : proporciona información de diagnóstico para un archivo específico, incluidas advertencias y errores.
  • hover : muestra documentación, sugerencias de tipo u otra información flotante para una ubicación determinada.
  • rename_symbol : cambia el nombre de un símbolo en todo el proyecto.
  • edit_file : Permite realizar múltiples ediciones de texto en un archivo según el número de línea. Ofrece una forma más fiable y económica de editar archivos que las herramientas de edición basadas en búsqueda y reemplazo.

Acerca de

Este código base utiliza código editado de gopls para gestionar la comunicación LSP. Consulte ATRIBUCIÓN para más detalles. Todo lo aquí expuesto está sujeto a una licencia de estilo BSD permisiva.

mcp-go se utiliza para la comunicación MCP. Gracias por su servicio.

Este software es beta. Si tiene algún problema o sugerencia, avíseme creando un problema.

Contribuyendo

Por favor, mantengan las relaciones públicas pequeñas y abran los problemas primero para cualquier cosa sustancial. La IA funciona bien siempre que se pruebe, pase las verificaciones y no huela mal.

Configuración

Clonar el repositorio:

git clone https://github.com/isaacphi/mcp-language-server.git cd mcp-language-server

Se incluye un archivo justfile para mayor comodidad:

just -l Available recipes: build # Build check # Run code audit checks fmt # Format code generate # Generate LSP types and methods help # Help install # Install locally snapshot # Update snapshot tests test # Run tests

Configure su Claude Desktop (o similar) para utilizar el binario local:

{ "mcpServers": { "language-server": { "command": "/full/path/to/your/clone/mcp-language-server/mcp-language-server", "args": [ "--workspace", "/path/to/workspace", "--lsp", "language-server-executable" ], "env": { "LOG_LEVEL": "DEBUG" } } } }

Reconstruir después de realizar cambios.

Explotación florestal

Al establecer la variable de entorno LOG_LEVEL en DEBUG, se habilita el registro detallado en stderr para todos los componentes, incluidos los mensajes hacia y desde el servidor de idioma y los registros del servidor de idioma.

Interacción LSP

  • internal/lsp/methods.go contiene el código generado para realizar llamadas al servidor de idioma conectado.
  • internal/protocol/tsprotocol.go contiene el código generado para los tipos LSP. Lo tomé prestado del código fuente de gopls . Gracias por su servicio.
  • LSP permite que los servidores de lenguaje devuelvan diferentes tipos para los mismos métodos. A Go no le gusta esto, por lo que existen algunas soluciones alternativas poco fiables en internal/protocol/interfaces.go .

Desarrollo local y pruebas instantáneas

Existe un conjunto de pruebas instantáneas que facilita enormemente la prueba de cambios en las herramientas. Estas ejecutan servidores de idiomas reales en espacios de trabajo simulados y capturan resultados y registros.

Necesitará tener los servidores de idioma instalados localmente para ejecutarlos. Existen pruebas para Go, Rust, Python y TypeScript.

integrationtests/ ├── tests/ # Tests are in this folder ├── snapshots/ # Snapshots of tool outputs ├── test-output/ # Gitignored folder showing the final state of each workspace and logs after each test run └── workspaces/ # Mock workspaces that the tools run on

Para actualizar las instantáneas, ejecute UPDATE_SNAPSHOTS=true go test ./integrationtests/...

-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Ejecuta un servidor de idiomas y proporciona herramientas para comunicarse con él. Los servidores de idiomas son excelentes en tareas con las que los LLM suelen tener dificultades, como comprender con precisión los tipos, comprender las relaciones y proporcionar referencias de símbolos precisas.

  1. Manifestación
    1. Configuración
      1. Herramientas
        1. Acerca de
          1. Contribuyendo
            1. Configuración
            2. Explotación florestal
            3. Interacción LSP
            4. Desarrollo local y pruebas instantáneas

          Related MCP Servers

          • -
            security
            A
            license
            -
            quality
            This is a server that lets your LLMs (like Claude) talk directly to your BigQuery data! Think of it as a friendly translator that sits between your AI assistant and your database, making sure they can chat securely and efficiently.
            Last updated -
            1
            241
            81
            JavaScript
            MIT License
          • A
            security
            A
            license
            A
            quality
            This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.
            Last updated -
            1
            54,491
            JavaScript
            MIT License
            • Linux
            • Apple
          • -
            security
            F
            license
            -
            quality
            A TypeScript-based server that provides a memory system for Large Language Models (LLMs), allowing users to interact with multiple LLM providers while maintaining conversation history and offering tools for managing providers and model configurations.
            Last updated -
            20
            JavaScript
            • Apple
          • -
            security
            F
            license
            -
            quality
            This server provides an API to query Large Language Models using context from local files, supporting various models and file types for context-aware responses.
            Last updated -
            1
            TypeScript

          View all related MCP servers

          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/isaacphi/mcp-language-server'

          If you have feedback or need assistance with the MCP directory API, please join our Discord server