【ITニュース解説】Experiment with gopls MCP: Improving Agent Context for Go Development
2025年09月09日に「Dev.to」が公開したITニュース「Experiment with gopls MCP: Improving Agent Context for Go Development」について初心者にもわかりやすく解説しています。
ITニュース概要
AIがGo言語のコードを書く際、情報量が多すぎると性能が落ちる。これを解決する新技術「gopls MCP」は、AIに必要な情報だけを効率的に与える。実験の結果、このツールだけでは不十分で、AIへの的確な指示が最も重要だと判明した。(117文字)
ITニュース解説
AI(人工知能)を活用したプログラミング支援ツールが普及し、開発の効率は飛躍的に向上した。しかし、AIとの対話やコーディング作業には「コンテキストサイズ」という制約が存在する。コンテキストとは、AIが一度に記憶し処理できる情報量の上限を指す。人間との会話やコーディングが長くなるほど、AIが記憶すべき情報は増え続け、やがてコンテキストの上限を超えてしまう。その結果、AIは古い情報を忘れたり、文脈を正しく理解できなくなったりして、応答の質が低下する。これは「コンテキストの腐敗」と呼ばれ、AIを効果的に活用する上での大きな課題となっている。特に、外部のライブラリ(便利な機能をまとめた部品集)を使って開発を進める際、AIはそのライブラリの使い方を学ぶために大量のソースコードやドキュメントを読み込む必要がある。しかし、多くの場合、実際に必要なのはごく一部の情報であり、関連性の低い情報まで読み込むことは、貴重なコンテキストを無駄に消費することに繋がる。
この問題を解決するため、プログラミング言語Goの開発チームは「gopls MCP」という実験的な技術を開発した。goplsは、Go言語のコードを深く理解し、開発者を支援するための公式ツール(Language Server)である。MCP(Model Context Protocol)は、このgoplsが持つコード解析能力の一部を、AIが直接利用できるようにするための通信規約だ。MCPを通じて、AIはライブラリのソースコード全体を読み込むことなく、公開されている関数やその説明だけをピンポイントで取得したり、特定の関数がコードのどこで使われているかを効率的に検索したりできる。これにより、AIは必要な情報だけを的確に入手し、コンテキストの消費を最小限に抑えながら、より賢くコーディング作業を支援できると期待されている。
このgopls MCPが本当に効果的なのかを検証するため、ある開発者によって実験が行われた。実験では、彼自身が作成した比較的知名度の低い「babyapi」というライブラリを使い、AIエージェントに顧客管理システムを開発させるというタスクが与えられた。そして、「gopls MCPを使う場合」と「使わない場合」で、AIの挙動や生成したコードの品質、消費した情報量(トークン数)が比較された。
実験結果は、必ずしも当初の期待通りではなかった。まず、gopls MCPを使わない場合、ある開発環境(VS Code)のAIエージェントは、驚くべきことに自らWeb上の公式ドキュメントを探し出して内容を学習し、一度の試行で完璧なコードを生成した。これは、ライブラリのドキュメントに分かりやすいサンプルコードが豊富に含まれていたためだ。一方で、別の開発環境(Zed)のエージェントはドキュメントを参照せず、全くのデタラメなコードを生成してしまった。このことから、AIエージェント自体の性能や初期設定が結果に大きく影響することが示された。
次に、gopls MCPを使った場合、AIはMCPが提供する検索機能を繰り返し使用して目的の機能を探そうとしたが、うまく使いこなせず、多くの試行錯誤を重ねた。結果として、ドキュメントを丸ごと読んだ場合よりも多くの情報量を消費し、正しいコードを生成するまでに至らなかった。しかし、AIへの指示(プロンプト)を工夫し、「最初にMCPを使ってライブラリの概要を把握し、検索にはMCPの機能を使いなさい」と具体的に誘導したところ、状況は改善した。最終的に、ドキュメントを丸ごと読ませた場合よりも少ない情報量で、正しく動作するコードを生成することに成功したのである。
この実験から得られる結論は、gopls MCPは魔法の杖ではなく、あくまで開発を補助する一つの強力なツールであるということだ。そして、AIを使いこなす上で最も重要なのは、依然として人間による「的確な指示(プロンプト)」であるという事実が浮き彫りになった。AIが高度なツールを持っていても、その使い方を人間が具体的に指示しなければ、その能力を最大限に引き出すことはできない。gopls MCPの真価は、小規模でドキュメントが整備されたライブラリを使う場面よりも、むしろ大規模なプロジェクトや、複数のライブラリが複雑に絡み合う開発で発揮される可能性が高い。そうした状況では、関連情報だけをピンポイントで取得できるMCPの能力が、コンテキストの肥大化を防ぎ、開発の生産性を維持するために不可欠となるだろう。今後は、ドキュメントから関連性の高い部分だけをAIが自動で抽出するRAG(Retrieval Augmented Generation)といった技術とMCPを組み合わせることで、さらに効率的なAIによる開発支援が実現すると期待される。