mcp-language-server

t3ta/mcp-language-server

3.3

If you are the rightful owner of mcp-language-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A Model Context Protocol (MCP) server that manages multiple language servers for different programming languages within a single workspace.

The MCP Language Server is designed to integrate multiple language servers into a single workspace, providing a unified interface for language-specific tasks. This server is particularly beneficial for large projects that involve multiple programming languages, as it allows seamless communication with the appropriate language server based on file context or explicit language specification. By leveraging the strengths of language servers, the MCP Language Server enhances code understanding and manipulation capabilities, making it a valuable tool for developers working with complex codebases. The server supports a variety of language servers, including those for Python, TypeScript, Go, and Rust, and can be extended to support additional languages. It is built using Go and requires the installation of the respective language servers for the languages in use.

Features

  • Supports multiple language servers in a single process
  • Automatically routes requests based on file extensions or explicit language specification
  • Provides tools for code definition retrieval, reference finding, diagnostics, and more
  • Enables sophisticated code understanding and manipulation capabilities
  • Compatible with a wide range of language servers

Tools

  1. read_definition

    Retrieves the complete source code definition of a symbol.

  2. find_references

    Locates all usages and references of a symbol.

  3. get_diagnostics

    Provides diagnostic information for a specific file.

  4. get_codelens

    Retrieves code lens hints for a specific file.

  5. execute_codelens

    Runs a code lens action for a specific file.

  6. apply_text_edit

    Allows making multiple text edits to a file programmatically.