🔥

TypeScript Language ServerをMCPで使いたい(asdf使ってる人向け)

に公開

前提

  • メインはRoo Code + Cloude 3.7 Sonnetでコードを書いている
  • Claude Desktop + Filesystem MCP Serverでもコードを書いている
    • エディタから得られる情報がないのでRoo Codeと比べてつらい

やったこと

MCP Language Serverを入れた。

go install github.com/isaacphi/mcp-language-server@latest

TypeScript Language Serverを入れた。

npm install -g typescript typescript-language-server

claude_desktop_config.jsonにlanguage-serverの設定を追加した。

{
  "mcpServers": {
    "language-server": {
      "command": "go",
      "args": [
        "run",
        "github.com/isaacphi/mcp-language-server@latest",
        "--workspace",
        "/Users/hoge/workspace",
        "--lsp",
        "/Users/hoge/.asdf/shims/typescript-language-server",
        "--",
        "--stdio"
      ],
      "env": {
        "DEBUG": "1"
      }
    }
  }
}

goが見つからないと怒られた。goはasdfを使って管理しているのでそれが原因のようだった。
雑に環境変数を直接記述したところ動いた。

{
  "mcpServers": {
    "language-server": {
      "command": "go",
      "args": [
        "run",
        "github.com/isaacphi/mcp-language-server@latest",
        "--workspace",
        "/Users/hoge/workspace/umitron-www-navy",
        "--lsp",
        "/Users/hoge/.asdf/shims/typescript-language-server",
        "--",
        "--stdio"
      ],
      "env": {
        "HOME": "/Users/hoge",
        "PATH": "/Users/hoge/.asdf/shims:/usr/bin:/bin",
        "ASDF_DIR": "/opt/homebrew/opt/asdf/libexec",
        "ASDF_DATA_DIR": "/Users/hoge/.asdf",
        "ASDF_GOLANG_VERSION": "1.23.6",
        "DEBUG": "1"
      }
    }
}

最後に

もっといいやり方あったら教えて欲しいです。

Discussion