mcpField
G
grpc-go

grpc-go

ローカル
github.com/grpc開発ツール23.1k1 日前に更新

grpc-go について

gRPC-Go は gRPC の Go 実装で、Go サービスを開発する人向けのオープンソース RPC フレームワークです。モバイルと HTTP/2 を重視し、Go API を提供します。

主な機能

  1. 01gRPC の Go 実装
  2. 02オープンソースの RPC フレームワーク
  3. 03モバイルと HTTP/2 を重視
  4. 04Go API とドキュメント
  5. 05サンプルと性能ベンチマーク

活用シーン

  1. 01Go での RPC サービス構築
  2. 02Go クライアントとサーバーの接続
  3. 03gRPC API とサンプルの参照

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

gRPC-Go

GoDoc GoReportCard codecov

gRPC の Go 実装です。モバイルと HTTP/2 を重視した、高性能なオープンソースの汎用 RPC フレームワークです。詳しくは [Go gRPC ドキュメント][]をご覧いただくか、[クイックスタート][]に直接進んでください。

前提条件

  • Go:最新のメジャーリリース 2 つのうち、いずれか。

インストール

以下のインポートをコードに追加するだけで、go [build|run|test] が必要な依存関係を自動的に取得します。

import "google.golang.org/grpc"

注: 中国から grpc-go にアクセスしようとしている場合は、以下の FAQ をご覧ください。

詳細情報

FAQ

I/O タイムアウトエラー

golang.org ドメインは、一部の国ではブロックされていることがあります。その場合、通常 go get は次のようなエラーを出力します。

$ go get -u google.golang.org/grpc
package google.golang.org/grpc: unrecognized import path "google.golang.org/grpc" (https fetch: Get https://google.golang.org/grpc?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

Go コードをビルドするには、いくつかの方法があります。

  • VPN を設定し、google.golang.org にアクセスします。

  • Go モジュールのサポートを使用する場合:go mod の replace 機能を使って、golang.org パッケージのエイリアスを作成できます。プロジェクトのディレクトリで次を実行してください。

    go mod edit -replace=google.golang.org/grpc=github.com/grpc/grpc-go@latest
    go mod tidy
    go mod vendor
    go build -mod=vendor
    

    また、golang.org 上でホストされているすべての推移的依存関係についても、同様の設定が必要です。詳しくは、golang/go issue #28652 をご覧ください。

コンパイルエラー、undefined: grpc.SupportPackageIsVersion

go get google.golang.org/grpc を使用して、gRPC-Go を最新バージョンに更新してください。

ログを有効にする方法

デフォルトのロガーは環境変数で制御されます。すべてのログを有効にするには、次のようにします。

$ export GRPC_GO_LOG_VERBOSITY_LEVEL=99
$ export GRPC_GO_LOG_SEVERITY_LEVEL=info
RPC がエラー "code = Unavailable desc = transport is closing" で失敗する

このエラーは、RPC が使用している接続が閉じられたことを意味します。原因としては、次のようなものが考えられます。

  1. トランスポート認証情報の設定ミス。ハンドシェイクに失敗した
  2. バイト列の破損。間にあるプロキシが原因の可能性があります
  3. サーバーのシャットダウン
  4. Keepalive パラメーターによって接続がシャットダウンした。たとえば、DNS ルックアップを発生させるために、サーバーが定期的に接続を終了するよう設定している場合です。この場合は、RPC 呼び出しをより長く完了できるように、MaxConnectionAgeGrace を大きくすることを検討してください。

エラーはクライアント側で発生する一方、接続が閉じられた根本原因はサーバー側にあるため、デバッグが難しい場合があります。__クライアントとサーバーの両方__でログを有効にし、トランスポートエラーがないか確認してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。