# language-server-mcp MCP Server

A Model Context Protocol (MCP) server providing language support for code editing.

This is a TypeScript-based MCP server designed to enhance code editing experiences by providing features such as hover information, code completion, and diagnostics. It demonstrates core MCP concepts by providing:

- Language-specific tools for code analysis and manipulation
- Integration with the Model Context Protocol for seamless communication

<a href="https://glama.ai/mcp/servers/t4zp3tna7x"><img width="380" height="200" src="https://glama.ai/mcp/servers/t4zp3tna7x/badge" alt="language-server-mcp MCP server" /></a>

## Features

### Language Support
- Provides hover information for symbols in code
- Offers code completion suggestions
- Reports diagnostic information (errors, warnings)
- Only tested with typescript, theoretically should support Python. Would love to add additional language servers or be more agnostic if possible.

### MCP Integration
- Implements the MCP protocol for communication with clients
- Exposes language features as MCP tools

### Tools
- `get_hover`: Get hover information for a position in a document
  - Takes languageId, filePath, content, line, and character as required parameters
- `get_completions`: Get completion suggestions for a position in a document
  - Takes languageId, filePath, content, line, and character as required parameters
- `get_diagnostics`: Get diagnostic information for a document
  - Takes languageId, filePath, and content as required parameters

## Development

Install dependencies:
```bash
npm install
```

Build the server:
```bash
npm run build
```

For development with auto-rebuild:
```bash
npm run watch
```

## Installation

To use with Claude Desktop, add the server config:

On MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
On Windows: `%APPDATA%/Claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "language-server-mcp": {
      "command": "/path/to/language-server-mcp/build/index.js"
    }
  }
}
```

### Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector), which is available as a package script:

```bash
npm run inspector
```

The Inspector will provide a URL to access debugging tools in your browser.
