godoc-mcp

local-only server

The server can only run on the client’s local machine because it depends on local resources.

godoc-mcp

概要

godoc-mcp Go ドキュメントへの効率的なアクセスを提供する Model Context Protocol (MCP) サーバーです。ソースファイル全体を読み込むことなくパッケージドキュメントに直接アクセスできるため、LLM が Go プロジェクトを理解できるようになります。godoc godoc-mcp 、Go パッケージの理解と利用に必要なトークンの数を大幅に削減することで、LLM を用いた Go 開発のパフォーマンスを大幅に向上させます。

はじめる

go install github.com/mrjoshuak/godoc-mcp@latest

godoc-mcp を使用する理由

一言で言えば、 godoc-mcp LLM が Go プロジェクトを理解するためのよりトークン効率の高い方法を提供します。

従来のファイル読み取りアプローチでは、LLM が単一のパッケージを理解するために、多くの場合多数のソース ファイル全体を処理する必要があります。godoc godoc-mcpにはいくつかの利点があります。

  1. トークン効率: 必要なドキュメントのみを返すため、トークンの使用量が大幅に削減されます。
  2. 構造化された情報: 一貫性があり、構造化された形式で公式パッケージドキュメントを提供します
  3. プロジェクトナビゲーション: プロジェクト構造のスマートな処理により、LLMはマルチパッケージプロジェクトを理解することができます。
  4. 統合対応: 他のMCPサーバーと連携し、高レベルと詳細の両方のコード分析を可能にします。
  5. パフォーマンス: キャッシュと最適化されたトークンの使用によりgodoc-mcp Go 開発のための高速で効率的なツールになります。
  6. ローカル: ドキュメントにアクセスするためにインターネット接続は必要ありません

godoc-mcpを使用すると、LLM はソースファイル全体を読み込むことなく、必要な情報を正確に取得できます。LLM が取得できる情報の詳細レベルは以下のとおりです。

  • エクスポートされたシンボル1つのドキュメント
  • 1つのシンボルの完全なソース
  • エクスポートされたすべてのシンボルのリスト(簡潔なドキュメント)
  • エクスポートされていないシンボルを含むすべてのシンボルのリスト
  • パッケージの完全なドキュメント
  • パッケージのソース全体

これによりgodoc-mcp LLM がこれまでのどのプログラミング言語よりもコンテキストについてはるかに多くの詳細を理解できるようになるため、LLM を使用する Go 開発者にとって不可欠なツールになります。

特徴

サーバーは次のことを行います。

  1. Goファイルのあるディレクトリの場合: パッケージドキュメントを返す
  2. Goファイルがないディレクトリの場合: サブディレクトリ内の利用可能なGoパッケージを一覧表示します
  3. インポートパスの場合: 標準ライブラリまたはサードパーティのパッケージドキュメントを返します
  • 効率的なドキュメントアクセス: 最小限のトークン使用で公式のGoドキュメントを取得します
  • スマート パッケージ検出: Go ファイルのないディレクトリを指定すると、サブディレクトリ内の利用可能な Go パッケージが一覧表示されます。
  • 柔軟なパスサポート:
    • ローカルファイルパス(例:"/full/path/to/mypackage")
    • インポートパス(例:「io」、「github.com/user/repo」)
  • 自動モジュールコンテキスト:
    • 必要に応じて一時的な Go プロジェクトを作成します
    • 外部パッケージのモジュールコンテキストを自動的に設定します
    • パッケージドキュメントに手動モジュール設定は不要
    • 一時的なプロジェクトのクリーンアップを処理します
  • モジュール対応: 作業ディレクトリのコンテキストを通じてサードパーティ パッケージのドキュメントをサポートします (つまり、作業ディレクトリからgo docを実行します)
  • パフォーマンスの最適化:
    • 組み込みのレスポンスキャッシュ
    • 集中的なドキュメント検索による効率的なトークン使用
    • 応答サイズに関するメタデータ
    • 標準ライブラリと外部パッケージのスマートな処理

godoc-mcp 、コーディング作業中にドキュメントを提供するだけでなく、Go プロジェクトやパッケージの探索にも使用できます。一般的なプロンプトの例をいくつか示します。

プロジェクトの理解

「/path/to/some/project にある Go プロジェクトを見ています。どんなパッケージが含まれていて、何をするのでしょうか?」

パッケージインターフェースの理解

「io パッケージはどのようなインターフェースを提供しますか? 特に読み取りに関連するものに興味があります。」

実装ガイダンス

「io.Readerインターフェースを実装する必要があります。そのドキュメントと、知っておくべき関連型を教えてください。」

APIの使用

「/path/to/some/project にあるリソースタイプのドキュメントを見せてください。作成方法と使用方法を理解する必要があります。」

図書館の探索

「github.com/gorilla/mux を使用する /path/to/some/project にいます。Router タイプのドキュメントを見せてください。」

方法の発見

「http.Request タイプではどのようなメソッドが利用できますか? 標準ライブラリの HTTP ハンドラーを使用しています。」

集中学習

「/path/to/project/server パッケージでサーバー タイプを構成する方法を説明します。」

パッケージの閲覧

「新しい Go プロジェクト ディレクトリに複数のパッケージが表示されています。それぞれの機能について教えていただけますか?」

使用法

Claude デスクトップ アプリに追加するには:

{ "mcpServers": { # other MCP servers ... "godoc": { "command": "/path/to/godoc-mcp", "args": [], "env": { "GOPATH": "/path/to/go", "GOMODCACHE": "/path/to/go/pkg/mod" } } } }

MCP 対応の LLM (Claude など) に接続すると、godoc-mcp はget_docツールに次のパラメータを提供します。

  • path : Go パッケージまたはファイルへのパス(インポートパスまたはファイルパス)
  • target (オプション):ドキュメント化する特定のシンボル(関数、型など)
  • cmd_flags (オプション): 追加のgo docコマンドフラグ
  • working_dir (オプション): モジュール対応ドキュメントの作業ディレクトリ (指定しない場合は、一時プロジェクトが自動的に作成されます)

LLM が活用できる高度なcmd_flags値:

  • -all : エクスポートされていないシンボルを除いて、パッケージのすべてのドキュメントを表示します。
  • -u : エクスポートされていないシンボルを表示する
  • -src : ドキュメントの代わりにソースコードを表示する

トラブルシューティング

  • ローカルパスの場合は、Go ソースファイルが含まれているか、Go パッケージを含むディレクトリを指していることを確認してください。
  • モジュール関連のエラーが表示される場合は、MCP サーバー構成で GOPATH および GOMODCACHE 環境変数が正しく設定されていることを確認してください。
  • サーバーは外部パッケージのモジュールコンテキストを自動的に処理しますが、特別なケースで必要な場合は特定のworking_dirを指定することもできます。

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

-
security - not tested
A
license - permissive license
-
quality - not tested

godoc-mcp 、Goドキュメントへの効率的なアクセスを提供するModel Context Protocol(MCP)サーバーです。ソースファイル全体を読み込むことなくパッケージドキュメントに直接アクセスできるため、LLM(法務・法学・言語学)はGoプロジェクトをより深く理解できます。

  1. Overview
    1. Getting Started
      1. Why Use godoc-mcp?
        1. Features
          1. Examples
        2. Usage
          1. Troubleshooting
            1. License
              ID: hh2kf8og63