Skip to main content
Glama

Servidor de idiomas MCP

Pruebas Go Tarjeta de calificaciones Go GoDoc Versión Go

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

Related MCP server: Fetch MCP Server

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

Latest Blog Posts

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