Tools

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

投稿日:

はじめに

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 )には、英数字とアンダースコア、ハイフンが使えます。
上の例では commandnpx を指定しています。これにより、 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
-

執筆者:

免責事項

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


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

暗号資産(仮想通貨)を個人で購入・売却した際の手数料の取り扱い

1 はじめに2 暗号資産の手数料の取り扱い2.1 購入時の手数料2.2 売却時の手数料2.3 手数料の消費税について3 手数料が含まれた暗号資産の仕訳3.1 暗号資産を現金で購入した場合3.2 暗号資 ...

VSCodeのAgentでMCPを活用しよう

1 はじめに2 VSCodeでのMCP Serverの設定2.1 グローバルとワークスペース2.2 MCP Serverの追加3 ユースケース1: Playwright MCPでテストコード生成4 ユ ...

元mac使いがUbuntuで理想の作業環境に近づけるためにやったこと

1 はじめに2 Ubuntuのインストール2.1 買ったもの2.2 インストールメディアの作成2.3 インストールメディアの起動3 キーボード・トラックパッド周りのカスタマイズ3.1 kinto.sh ...

Gitの初期設定と便利な設定

1 はじめに2 初期設定2.1 ユーザ情報の設定3 便りな設定4 Gitの基礎知識4.1 configは3段階4.2 現在の設定を確認する4.3 設定ファイルの保存場所5 参考6 さいごに はじめに ...

仮想通貨のレンディングについて仕組みと収支について

1 はじめに2 レンディングとは2.1 レンディングの手順2.2 仮想通貨でレンディングをするメリット2.3 仮想通貨でレンディングをするデメリット3 レンディングの収支3.1 レンディング報酬を受け ...

フォロー

blog-page_side_responsive

2026年6月
 123456
78910111213
14151617181920
21222324252627
282930  

アプリ情報

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