mcpField
G
grpc-go

grpc-go

本地服务
github.com/grpc开发工具23.1k今天更新

关于 grpc-go

gRPC-Go 是 gRPC 的 Go 语言实现,面向构建 Go 服务的开发者,提供开源 RPC 框架及其 API,并侧重移动端和 HTTP/2。

主要功能

  1. 01gRPC 的 Go 语言实现
  2. 02开源 RPC 框架
  3. 03面向移动端和 HTTP/2
  4. 04Go API 与文档
  5. 05示例和性能基准

适用场景

  1. 01用 Go 构建 RPC 服务
  2. 02连接 Go 客户端与服务端
  3. 03查阅 gRPC API 和示例

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

gRPC-Go

GoDoc GoReportCard codecov

gRPC 的 Go 实现:一种高性能、开源的通用 RPC 框架,优先支持移动设备和 HTTP/2。更多信息请参阅 [Go gRPC 文档][],也可以直接查看[快速入门][]。

前置条件

  • Go:任意一个最新的两个主要版本发行版。

安装

只需在代码中添加以下导入,然后 go [build|run|test] 便会自动获取所需的依赖项:

import "google.golang.org/grpc"

注意:如果你在中国尝试访问 grpc-go,请参阅下方的 常见问题。

了解更多

常见问题

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 查询。 如果是这种情况,可以考虑增大 MaxConnectionAgeGrace, 以便较长的 RPC 调用能够完成。

此问题可能较难调试,因为错误发生在客户端,但连接关闭的根本原因在服务端。请在 __客户端和服务端__都启用日志记录,查看是否存在传输错误。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。