-
Notifications
You must be signed in to change notification settings - Fork 60
Open
Description
I have a nvim setup that looks like: nvim -> CodeCompanion -> MCPHub -> mcp-launguage-server -> golsp. The pipeline works because :MCPHub allows me to run diagnostics on a file (i.e. if I give it a full path it will display proper diagnostics on it).
However, 'definition' doesn't work. I did some digging around and the MCPHub Logs show this (beginning and end of log, nothing before):
[07:27:00] language-server stderr: 2025/05/19 08:05:49.115068 [DEBUG][core] Executing definition for symbol: qsPb.QueryRequest\n2025/05/19 08:05:49.115092 [DEBUG][lsp] Making call: method=workspace/symbol id=2
[07:27:00] language-server stderr: 2025/05/19 08:05:49.115161 [DEBUG][lsp] Sending message: method=workspace/symbol id=2\n2025/05/19 08:05:49.115169 [DEBUG][wire] -> Sending: {"jsonrpc":"2.0","id":2,"method":"workspace/symbol","params":{"query":"qsPb.QueryRequest","workDoneToken":null}}\n2025/05/19 08:05:49.115183 [DEBUG][lsp] Waiting for response to request ID: 2\n2025/05/19 08:05:49.115684 [DEBUG][wire] <- Header: Content-Length: 38\n2025/05/19 08:05:49.115704 [DEBUG][wire] <- Received: {"jsonrpc":"2.0","result":null,"id":2}\n2025/05/19 08:05:49.115723 [DEBUG][lsp] Received response for ID: 2\n2025/05/19 08:05:49.115727 [DEBUG][lsp] Sending response for ID 2 to handler\n2025/05/19 08:05:49.115736 [DEBUG][lsp] Received response for request ID: 2
As you can see, it's doing a "workspace/symbol" to detect where the symbol is defined. However, the spec (as I understand it) requires a "didOpen" method first (so gopls can go around reading the files, etc).
My MCP configuration (~/.config/mcphub/servers.json) is as follows:
"nativeMCPServers": [
],
"mcpServers": {
"language-server": {
"custom_instructions": {
"disabled": false
},
"args": [
"--workspace",
"<my path>",
"--lsp",
"/usr/bin/gopls"
],
"disabled": false,
"command": "/home/john/go/bin/mcp-language-server",
"env": {
"PATH": "/usr/local/go/bin:/home/john/go/bin",
"LOG_LEVEL": "DEBUG"
},
"disabled_tools": [
]
}
}
}
What am I doing wrong?
isaacphi
Metadata
Metadata
Assignees
Labels
No labels