You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+13-1Lines changed: 13 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,11 +3,13 @@
3
3
A Model Context Protocol (MCP) server that runs a language server and provides tools for communicating with it.
4
4
5
5
## Motivation
6
+
6
7
Claude desktop with the [filesystem](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem) server feels like magic when working on small projects. This starts to fall apart after you add a few files and imports. With this project, I want to create that experience when working with large projects.
7
8
8
9
Language servers excel at tasks that LLMs often struggle with, such as precisely understanding types, understanding relationships, and providing accurate symbol references. This project aims to makes bring those tools to LLMs. LSP also seems like a clear inspiration for MCP so why not jam them together?
9
10
10
11
## Status
12
+
11
13
⚠️ Pre-beta Quality ⚠️
12
14
13
15
I have tested this server with the following language servers
@@ -20,6 +22,7 @@ I have tested this server with the following language servers
20
22
But it should be compatible with many more.
21
23
22
24
## Tools
25
+
23
26
-`read_definition`: Retrieves the complete source code definition of any symbol (function, type, constant, etc.) from your codebase.
24
27
-`find_references`: Locates all usages and references of a symbol throughout the codebase.
25
28
-`get_diagnostics`: Provides diagnostic information for a specific file, including warnings and errors.
@@ -32,14 +35,17 @@ Behind the scenes, this MCP server can act on `workspace/applyEdit` requests fro
32
35
Each tool supports various options for customizing output, such as including line numbers or additional context. See the tool documentation for detailed usage. Line numbers are necessary for `apply_text_edit` to be able to make accurate edits.
33
36
34
37
## About
38
+
35
39
This codebase makes use of edited code from [gopls](https://go.googlesource.com/tools/+/refs/heads/master/gopls/internal/protocol) to handle LSP communication. See ATTRIBUTION for details.
36
40
37
41
[mcp-golang](https://github.com/metoro-io/mcp-golang) is used for MCP communication.
38
42
39
43
## Prerequisites
40
-
Install Go: Follow instructions at https://golang.org/doc/install
44
+
45
+
Install Go: Follow instructions at <https://golang.org/doc/install>
41
46
42
47
Fetch or update this server:
48
+
43
49
```bash
44
50
go install github.com/isaacphi/mcp-language-server@latest
45
51
```
@@ -53,6 +59,7 @@ Install a language server for your codebase:
53
59
- Or use any language server
54
60
55
61
## Setup
62
+
56
63
Add something like the following configuration to your Claude Desktop settings (or similar MCP-enabled client):
57
64
58
65
```json
@@ -87,6 +94,7 @@ Replace:
87
94
-`DEBUG=1` is optional. See below.
88
95
89
96
## Development
97
+
90
98
Clone the repository:
91
99
92
100
```bash
@@ -126,19 +134,23 @@ Configure your Claude Desktop (or similar) to use the local binary:
126
134
}
127
135
}
128
136
```
137
+
129
138
Rebuild after making changes.
130
139
131
140
## Feedback
132
141
133
142
Include
143
+
134
144
```
135
145
env: {
136
146
"DEBUG": 1
137
147
}
138
148
```
149
+
139
150
To get detailed LSP and application logs. Please include as much information as possible when opening issues.
0 commit comments