
akhilraghav0/hamr
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
Структура Go для создания MCP-серверов. Тэги структуры - это ваша схема.
Обзор
hamr Build MCP-серверы в Go. Оптимизированы для стоимости токенов. MCP (Model Context Protocol) позволяет помощникам ИИ, таким как Claude, Cursor и Windsurf, вызывать внешние инструменты. Сервер MCP - это в основном плагин, который дает ИИ возможность делать вещи - запрашивать базу данных, проверять кластер Kubernetes, искать кодовую базу, все, что вам нужно. Проблема в том, что создание MCP-сервера в Go означает написание тонны шаблона. Вы должны вручную определять схемы JSON, обрабатывать обрамление JSON-RPC, анализировать и проверять входные данные, подключать транспорт, управлять ошибками — и вы в конечном итоге получите более 200 строк церемонии, прежде чем вы даже доберетесь до своей фактической логики. Хамр это исправляет. Вы пишете структуру Go для ввода, функцию для логики и одну строку для ее регистрации. hamr обрабатывает все остальное — генерацию схем, валидацию, транспортировку, промежуточное ПО, весь протокол. Тэги структуры - это ваша схема. Думайте об этом как о Cobra, но для MCP-серверов вместо приложений CLI. Вот так.
Обзор (машинный перевод)
гамр Создайте MCP-серверы в Go. Оптимизированы для стоимости токенов.
##Что это такое?
MCP (Model Context Protocol) позволяет помощникам ИИ, таким как Claude, Cursor и Windsurf, вызывать внешние инструменты. Сервер MCP - это в основном плагин, который дает ИИ возможность делать вещи - запрашивать базу данных, проверять кластер Kubernetes, искать кодовую базу, что вам нужно.
Проблема в том, что создание MCP-сервера в Go означает написание тонны шаблона. Вы должны вручную определять схемы JSON, обрабатывать обрамление JSON-RPC, анализировать и проверять входные данные, подключать транспорт, управлять ошибками — и вы в конечном итоге получите более 200 строк церемонии, прежде чем вы даже доберетесь до своей фактической логики.
Хамр это исправляет. Вы пишете структуру Go для ввода, функцию для логики и одну строку для ее регистрации. hamr обрабатывает все остальное — генерацию схем, валидацию, транспортировку, промежуточное ПО, весь протокол. Тэги структуры * являются * вашей схемой.
Думайте об этом как о Cobra, но для MCP-серверов вместо приложений CLI.
Покажите мне код
Вот полный рабочий MCP-сервер:
Вот так. Постройте его, направьте Claude Desktop на двоичный компьютер, и Claude теперь может позвонить в ваш поисковый инструмент.
Эта страница переведена автоматически. Технические детали смотрите в оригинале.
README
Показан фрагмент оригинального README. Открыть оригинал.
hamr Build MCP servers in Go. Optimized for token cost.
What is this?
MCP (Model Context Protocol) lets AI assistants like Claude, Cursor, and Windsurf call external tools. An MCP server is basically a plugin that gives AI the ability to do things — query your database, check your Kubernetes cluster, search your codebase, whatever you need.
The problem is that building an MCP server in Go means writing a ton of boilerplate. You have to manually define JSON schemas, handle JSON-RPC framing, parse and validate inputs, wire up transport, manage errors — and you end up with 200+ lines of ceremony before you even get to your actual logic.
hamr fixes that. You write a Go struct for your input, a function for your logic, and one line to register it. hamr handles everything else — schema generation, validation, transport, middleware, the whole protocol. Your struct tags are your schema.
Think of it like Cobra but for MCP servers instead of CLI apps.
Show me the code
Here’s a complete, working MCP server:
package main
import (
"context"
"log"
"github.com/AKhilRaghav0/hamr"
)
type SearchInput struct {
Query string `json:"query" desc:"search query"`
MaxResults int `json:"max_results" desc:"max results" default:"10"`
Format string `json:"format" desc:"output format" enum:"json,text,csv"`
}
func Search(ctx context.Context, input SearchInput) (string, error) {
// your actual search logic here
return "results for: " + input.Query, nil
}
func main() {
s := hamr.New("my-server", "1.0.0")
s.Tool("search", "Search for information", Search)
log.Fatal(s.Run())
}
Установка
This server does not publish a one-line install command.
Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →Конфигурация
{
"mcpServers": {
"my-server": {
"command": "/absolute/path/to/my-server"
}
}
}