Skip to content

Definition not working because didOpen is not called #32

@jschwarz89

Description

@jschwarz89

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions