JL

jonrad/lsp-mcp

Developer tools

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기

192 stars 29 forks 품질 67 트렌드 17MIT

jonrad/lsp-mcp는 https://github.com/jonrad/lsp-mcp.에서 가져온 MCP 서버 후보입니다.

개요

jonrad/lsp-mcp는 https://github.com/jonrad/lsp-mcp.에서 가져온 MCP 서버 후보입니다.

개요(AI 번역)

LLM/AI 에이전트에게 언어 서버 프로토콜(LSP) 서버의 기능을 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이로 인해 AI는 코드베이스에서 언어 인식 컨텍스트를 얻을 수 있습니다.

  • LSP MCP
  • 예시
  • 경고
  • 특징
  • 퀵 스타트
  • 클로드 데스크톱
  • 도커 사용 (권장)
  • npx 사용
  • 커서
  • MCP CLI 클라이언트
  • ABC (서문)
  • MCP가 뭐야?
  • LSP가 뭐야?
  • 개발
  • 의존성
  • 판결
  • 로드맵
  • 참고문헌

예시

입력:

출력물:

경고

이건 유색인종 주(POC) 주에서 일어났습니다.

특징

  • 여러 개의 LSP(다중 프로그래밍 언어 지원)를 동시에 사용하는 경우, 예제 설정 참조
  • LSP JSON 스키마에서 지원되는 LSP 메서드를 동적으로 생성, json 스키마 참조

퀵 스타트

클로드 데스크탑

도커 사용 (권장)

claude_desktop_config.json(MCP 문서에 설명된 대로)를 다음과 같이 수정하세요:

도커 -v /local_dir:/remote_dir를 전달하여 컨테이너와 일부 파일을 공유하는 것이 좋습니다. 그 후 Claude에게 /remote_dir/ 의 파일에 대해 물어볼 수 있습니다.

NPX 사용 중

참고: Claude Desktop은 NPX에 대해 까다로운 것 같습니다.

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.

README

원문 README의 일부입니다. 원문 보기.

LSP MCP

An Model Context Protocol (MCP) server that provides LLMs/AI Agents with the capabilities of a language server protocol (LSP) server. This gives the AI the ability to get language aware context from the codebase.

Example

Input:

Use lsp to give me insights into the following typescript code:

let foo = "bar";
function x() {
  let foo = 123;
  console.log(foo);
}
x();
console.log(foo);

Output:

I'll use LSP (Language Server Protocol) to analyze your TypeScript code. Let me break down what's happening:
Here's what the code does and the insights from LSP analysis:

1. Variable Shadowing:

There are two variables named foo:

A global foo (string type) initialized with the value "bar"
A local foo (number type) inside the function x() initialized with the value 123

2. Execution Flow:

First, the global foo is declared and assigned the value "bar"
When function x() is called, the local foo variable is declared and assigned 123
The console.log(foo) inside the function outputs 123 (the local variable)
After the function finishes, console.log(foo) outputs "bar" (the global variable)

3. Scope Isolation:

The LSP confirms that TypeScript correctly identifies the different types:

The global foo is a string type
The local foo inside the function is a number type

Changes to the local foo don't affect the global foo

This is a classic example of variable shadowing in JavaScript/TypeScript, where a local variable with the same name as a global variable takes precedence within its scope.

Warning

This is in a POC state.

Features

  • Multiple LSPs (Multiple programming language support) at the same time, see sample config
  • Dynamically generates supported LSP method from LSP JSON Schema, see json schema

Quick Start

Claude Desktop

Modify claude_desktop_config.json (As described in the MCP Docs) with the following:

{
  "mcpServers": {
    "lsp": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "docker.io/jonrad/lsp-mcp:0.3.1"]
    }
  }
}
GitHub에서 전체 README 보기

설치

docker run -i --rm docker.io/jonrad/lsp-mcp:0.3.1
MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →

설정

{ "mcpServers": { "lsp": { "command": "docker", "args": ["run", "-i", "--rm", "docker.io/jonrad/lsp-mcp:0.3.1"] } } }