RD

redpanda-data/protoc-gen-go-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

230 stars 37 forks Качество 58 Тренд 22Apache-2.0

redpanda-data/protoc-gen-go-mcp — это кандидат на MCP-сервер, импортированный из https://github.com/redpanda-data/protoc-gen-go-mcp.

Обзор

redpanda-data/protoc-gen-go-mcp — это кандидат на MCP-сервер, импортированный из https://github.com/redpanda-data/protoc-gen-go-mcp.

Обзор (машинный перевод)

protoc-gen-go-mcp — это плагин компилятора буферов протоколов, который генерирует серверы Model Context Protocol (MCP) для ваших API gRPC или ConnectRPC.

Он генерирует файлы *.pb.mcp.go для каждого сервиса protobuf, что позволяет делегировать обработчики напрямую на gRPC-серверы или клиенты. Внутри MCP использует JSON Schema для входов инструментов — protoc-gen-go-mcp автоматически генерирует эти схемы из ваших дескрипторов методов.

Генерируемый код — MCP-library-aggnostic: выбирайте modelcontextprotocol/go-sdk (официальный SDK) или mark3labs/mcp-go при создании сервера через тонкий адаптер — регенерация не требуется.

Особенности

  • Автоматически генерирует обработчики MCP из ваших .proto сервисов
  • Выводит схему JSON для входных методов
  • Подключение к серверам/клиентам gRPC или ConnectRPC
  • Лёгкая интеграция с buf
  • Выбор провайдера LLM во время выполнения — стандартные схемы, совместимые с MCP или OpenAI
  • MCP Library Agnotic — поддерживаются официальные go-sdk и mark3labs/mcp-go

Использование

Генерировать код

Добавьте запись в ваш buf.gen.yaml:

Вам также нужно сгенерировать стандартные файлы *.pb.go. protoc-gen-go-mcp по умолчанию использует отдельную подпапку {$servicename}mcp и импортирует '*pb.

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

protoc-gen-go-mcp

protoc-gen-go-mcp is a Protocol Buffers compiler plugin that generates Model Context Protocol (MCP) servers for your gRPC or ConnectRPC APIs.

It generates *.pb.mcp.go files for each protobuf service, enabling you to delegate handlers directly to gRPC servers or clients. Under the hood, MCP uses JSON Schema for tool inputs – protoc-gen-go-mcp auto-generates these schemas from your method input descriptors.

Generated code is MCP-library-agnostic: pick modelcontextprotocol/go-sdk (the official SDK) or mark3labs/mcp-go at server creation time through a thin adapter – no regeneration needed.

Features

  • Auto-generates MCP handlers from your .proto services
  • Outputs JSON Schema for method inputs
  • Wire up to gRPC or ConnectRPC servers/clients
  • Easy integration with buf
  • Runtime LLM provider selection – standard MCP or OpenAI-compatible schemas
  • MCP library agnostic – official go-sdk and mark3labs/mcp-go both supported

Usage

Generate code

Add entry to your buf.gen.yaml:

...
plugins:
  - local:
      - go
      - run
      - github.com/redpanda-data/protoc-gen-go-mcp/cmd/protoc-gen-go-mcp@latest
    out: ./gen/go
    opt: paths=source_relative

You need to generate the standard *.pb.go files as well. protoc-gen-go-mcp by defaults uses a separate subfolder {$servicename}mcp, and imports the *pb.go files – similar to connectrpc-go.

After running buf generate, you will see a new folder for each package with protobuf Service definitions:

tree pkg/testdata/gen/
gen
  go
    testdata
      test_service.pb.go
      testdataconnect/
        test_service.connect.go
      testdatamcp/
        test_service.pb.mcp.go

Setting up the MCP server

Generated code programs against the runtime.MCPServer interface. You choose the backing MCP library by importing the corresponding adapter package.

import (
    "github.com/modelcontextprotocol/go-sdk/mcp"
    "github.com/redpanda-data/protoc-gen-go-mcp/pkg/runtime/gosdk"
)

// Create server -- raw is *mcp.Server for transport, s is runtime.MCPServer for tools.
raw, s := gosdk.NewServer("my-server", "1.0.0")

testdatamcp.RegisterTestServiceHandler(s, &srv)

// Serve over stdio
raw.Run(ctx, &mcp.StdioTransport{})
Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →