MI

metoro-io/mcp-golang

Developer tools

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

1,2 тыс. stars 120 forks Качество 68 Тренд 23MIT

Запишите серверы Model Context Protocol в нескольких строках кода Go. Документы по адресу https://mcpgolang.com . Создано https://metoro.io

Обзор

MCP-Golang — это неофициальная реализация протокола Model Context Protocol в Go. Пишите MCP-серверы и клиенты в Golang с несколькими строками кода. - 🛡️ ** - Определите ваши аргументы инструмента как нативные структуры Go, пусть mcp-golang занимается остальное. Автоматическая генерация схем, десериализация, обработка ошибок и т.д. - 🚛 - Используйте встроенные транспорты (stdio для поддержки полнофункциональности, HTTP для бессостоятельной связи) или пишите свои собственные. - ⚡ - MCP-Golang генерирует все MCP-конечные точки для вас, кроме ваших инструментов, запросов и ресурсов. - 🧩 - Библиотека разделена на три компонента: транспорт, протокол и сервер/клиент. Используйте их все или берите то, что вам нужно. - 🔄 - Полная поддержка реализации как сервера, так и клиента через stdio transport. Установите с помощью go get github.com/metoro-io/mcp-golang Вы также можете создать сервер на базе HTTP, используя стандартный HTTP-транспорт или фреймворк Gin: Примечание: HTTP-транспорты не имеют статуса и не поддерживают двунаправленные функции, такие как уведомления.

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

MCP-Golang — это неофициальная реализация протокола Model Context Protocol в Go.

Пишите MCP-серверы и клиенты в Golang с несколькими строками кода.

Документы на https://mcpgolang.com

Основные моменты

  • 🛡️ Введите безопасность - Определите аргументы инструмента как нативные структуры Go, пусть mcp-golang занимается остальным. Автоматическая генерация схем, десериализация, обработка ошибок и т.д.
  • 🚛 Пользовательские транспорты — используйте встроенные транспорты (stdio для поддержки полнофункциональной поддержки, HTTP для бесстатусной связи) или пишите свои собственные.
  • ⚡ Низкий шаблон - mcp-golang генерирует все MCP-эндпоинты, кроме ваших инструментов, подсказок и ресурсов.
  • 🧩 Модульный - Библиотека разделена на три компонента: транспортный, протокольный и сервер/клиент. Используйте их все или берите то, что вам нужно.
  • 🔄 Двунаправленный — полная поддержка как серверных, так и клиентских реализаций через stdio transport.

Пример использования

Установка с помощью go get github.com/metoro-io/mcp-golang

Пример сервера

Пример HTTP-сервера

Вы также можете создать сервер на базе HTTP, используя стандартный HTTP-транспорт или фреймворк Gin:

Примечание: HTTP-транспорты не имеют статуса и не поддерживают двунаправленные функции, такие как уведомления.

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

README

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

mcp-golang

mcp-golang is an unofficial implementation of the Model Context Protocol in Go.

Write MCP servers and clients in golang with a few lines of code.

Docs at https://mcpgolang.com

Highlights

  • 🛡️Type safety - Define your tool arguments as native go structs, have mcp-golang handle the rest. Automatic schema generation, deserialization, error handling etc.
  • 🚛 Custom transports - Use the built-in transports (stdio for full feature support, HTTP for stateless communication) or write your own.
  • ⚡ Low boilerplate - mcp-golang generates all the MCP endpoints for you apart from your tools, prompts and resources.
  • 🧩 Modular - The library is split into three components: transport, protocol and server/client. Use them all or take what you need.
  • 🔄 Bi-directional - Full support for both server and client implementations through stdio transport.

Example Usage

Install with go get github.com/metoro-io/mcp-golang

Server Example

package main

import (
	"fmt"
	"github.com/metoro-io/mcp-golang"
	"github.com/metoro-io/mcp-golang/transport/stdio"
)

// Tool arguments are just structs, annotated with jsonschema tags
// More at https://mcpgolang.com/tools#schema-generation
type Content struct {
	Title       string  `json:"title" jsonschema:"required,description=The title to submit"`
	Description *string `json:"description" jsonschema:"description=The description to submit"`
}
type MyFunctionsArguments struct {
	Submitter string  `json:"submitter" jsonschema:"required,description=The name of the thing calling this tool (openai, google, claude, etc)"`
	Content   Content `json:"content" jsonschema:"required,description=The content of the message"`
}

func main() {
	done := make(chan struct{})

	server := mcp_golang.NewServer(stdio.NewStdioServerTransport())
Открыть полный README на GitHub

Установка

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

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

Конфигурация

{ "mcpServers": { "golang-mcp-server": { "command": "<your path to golang MCP server go executable>", "args": [], "env": {} } } }