Tools

GitHub Copilot CLI に LSP サーバーを設定する

投稿日:2026年6月27日 更新日:

はじめに

LSP のないコーディングエージェントにとって、コードはただのテキストです。grep と推測で型やシグネチャを組み立てるため、第三者ライブラリの定義を取り違えることがあります。LSP(Language Server Protocol)を使うと、エージェントはコードを「意味」として扱えるようになります。
GitHub Copilot CLI では、 .github/lsp.json に LSP サーバーを設定すると、定義ジャンプや参照検索といったコード理解の機能が使えるようになります。この記事では、その設定方法と動作確認の手順をまとめます。

LSPとは

LSP(Language Server Protocol)は、エディタと言語サーバーの間の通信を定めたオープンな規格です。もともとは VS Code のために作られ、現在は多くのエディタやツールで使われています。
言語サーバーは、その言語に特化した機能を提供するプロセスです。たとえば TypeScript には typescript-language-server 、Python には pyright があり、定義の検索や型情報の提供などを担います。
エディタと言語サーバーが分離していることで、ツールごとに言語対応を作り込む必要がなくなります。Copilot CLI もこの仕組みを利用して、言語サーバーを通じてコードを解析します。

LSPでできること

LSP サーバーを設定すると、Copilot CLI は次のような操作を、テキスト検索ではなく言語サーバー経由で行えるようになります。

  • 定義へのジャンプ(関数やクラスがどこで定義されているか)
  • 参照の検索(あるシンボルがどこで使われているか)
  • ホバー(型情報やドキュメントの取得)
  • リネーム(プロジェクト全体でのシンボル名の変更)
  • 実装へのジャンプ、ファイル内のシンボル一覧、呼び出し関係の取得

これらは型情報にもとづくため、テキスト検索よりも正確です。ジェネリクスやオーバーロードのように、文字列の一致だけでは追いきれない情報も解決できます。結果が構造化されているぶん、やり取りするトークンも少なく済みます。
LSP サーバーが利用できる場合、Copilot CLI は自動的にそちらを使います。設定さえしておけば、こちらから明示的に指示する必要はありません。

言語サーバーのインストール

言語サーバーは、言語ごとに用意されたコマンドです。インストールの方法はいくつかあります。
もっとも手軽なのは、 lsp-setup という skill を使う方法です。これは github/awesome-copilot リポジトリで公開されているコミュニティ製の skill で、言語をたずねたうえで、サーバーのインストールと設定ファイルの生成までを行います。
自分でインストールする場合は、グローバルに入れる方法があります。TypeScript の場合は次のようになります。

Python の場合は pyright を使います。

グローバルインストールをせず、 npx で都度実行することもできます。後述の設定でコマンドを npx にすると、 .github/lsp.json をコミットしておくだけで、各メンバーは事前のインストールなしに利用できます。

設定ファイルの配置

Copilot CLI は、2つの場所から LSP の設定を読み込みます。

  • ~/.copilot/lsp-config.json … ユーザー全体(すべてのプロジェクトに適用)
  • .github/lsp.json … プロジェクト単位(リポジトリの利用者全員に適用)

プロジェクトで共有する場合は .github/lsp.json に置きます。 lsp-setup skill は配置先の選択肢として「リポジトリのルートの lsp.json 」も挙げますが、ルート直下に置いたところ読み込まれず、 .github/ に移すと動作しました。公式ドキュメントでも、プロジェクト単位の設定は .github/lsp.json と記載されています。
設定ファイルは次の構造になっています。

lspServers の下に、サーバーごとの定義を置きます。 command は起動するコマンド、 args はその引数、 fileExtensions は拡張子と言語 ID の対応です。サーバー名(ここでは typescript )には、英数字とアンダースコア、ハイフンが使えます。
上の例では command に npx を指定しています。これにより、 typescript-language-server をグローバルにインストールしていなくても起動できます。ただし、初めて実行するときはパッケージのダウンロードが走るため、起動に時間がかかることがあります。あらかじめ一度 npx typescript-language-server --stdio を実行してキャッシュしておくか、 args の先頭に -y を加えておくと、対話的な確認で止まらずに済みます。
Python を追加する場合は、 lspServers の下に並べて書きます。

上の TypeScript では npx を使いましたが、グローバルにインストールしてあれば、このようにコマンドを直接指定することもできます。

/lsp コマンドでの動作確認

設定したサーバーの状態は、 /lsp コマンドで確認できます。

  • /lsp (または /lsp show )… 設定されているサーバーの一覧と状態
  • /lsp test <サーバー名> … サーバーが正しく起動するかのテスト
  • /lsp reload … 設定ファイルの再読み込み

設定ファイルを変更したあとは、 /lsp reload で再読み込みするか、 /exit で Copilot CLI を終了して起動し直します。そのうえで /lsp test typescript を実行すると、サーバーが起動できるかを確認できます。起動に成功すると、その旨と PID が表示されます。

さいごに

.github/lsp.json に LSP サーバーを設定することで、Copilot CLI が定義ジャンプや参照検索といったコード理解の機能を使えるようになりました。設定ファイルはリポジトリにコミットできるため、チーム全体で同じ設定を共有できます。 npx を使えば、各メンバーが事前にサーバーをインストールする必要もありません。

おすすめ書籍

直感 LLM ―ハンズオンで動かして学ぶ大規模言語モデル入門 実践 LLMアプリケーション開発 ―プロトタイプを脱却し、実用的な実装に迫るための包括的な手引き LLM入門:しくみから学ぶ生成AIの基礎: “使うだけ”から卒業するための、易しいけど深く言語モデルを探求する本 (LLMマスターシリーズ)

blog-page_footer_336




blog-page_footer_336




-Tools
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。

関連記事

Gitでやっちまったときに使えるコマンド

はじめに Gitコマンドで失敗してしまうこともあると思います。 今回はそんなときに私が使うコマンドをまとめていきたいと思います。 コミットを修正したい コミットしたけど、修正したい。 またはコミットメ ...

VSCodeのAgentでMCPを活用しよう

はじめに 今回は、VSCodeでCopilot Agentをより活用するために、MCPについて調べました。 VSCodeでのMCP Serverの設定 他のツールと同じように、 mcp.jsonで定義 ...

【Unity】Standard Assetsでエラーが出た時の対応

はじめに こんにちは、suzukiです。本日はunityのStandard AssetsをImportした際に、発生する。エラーの対処方法についてまとめました。 Standard Assetsのエラー ...

Agent Client Protocolってどんなプロトコル?

はじめに AIコーディングエージェントが一気に広まったことにより、エンジニアは多数の選択肢を持つことになりました。 今や、さまざまなコードエディタなどでAIエージェントを使用できますが、各エディタごと ...

Claude Code が書きがちな Python コードを読めるようになろう①

はじめに Claude Code などのコーディングエージェントは、タスクを進める途中で、その場で Python コードを書いてインラインで実行することがあります。gh の JSON 出力を整形したり ...

フォロー

blog-page_side_responsive

2026年6月
日 月 火 水 木 金 土
 123456
78910111213
14151617181920
21222324252627
282930  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。