I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

mcp-go-sdk
Este SDK proporciona una implementación de GO del Protocolo de control de la máquina (MCP), lo que permite la comunicación bidireccional entre clientes y servidores para la ejecución de herramientas, acceso a recursos y manejo rápido. Basado en onhttps: //github.com/modelcontextprotocolsdk
3 years
Works with Finder
1
Github Watches
1
Github Forks
1
Github Stars
MCP Go SDK
This SDK provides a Go implementation of the Model Context Protocol (MCP), enabling bidirectional communication between clients and servers for tool execution, resource access, and prompt handling.
Features
-
Transport Layer
- Multiple transport options (stdio, SSE, WebSocket)
- Bidirectional communication
- Configurable endpoints and settings
-
Server Implementation
- Tool registration and execution
- Resource pattern matching and access
- Prompt template rendering
- Session management
- Reflection-based handler invocation
-
Core Protocol Types
- JSON-RPC message handling
- MCP-specific types (tools, resources, prompts)
- Capabilities and initialization
Installation
go get github.com/SetiabudiResearch/mcp-go-sdk
Quick Start
Here's a simple example of creating an MCP server:
package main
import (
"context"
"log"
"github.com/SetiabudiResearch/mcp-go-sdk/pkg/mcp/server"
"github.com/SetiabudiResearch/mcp-go-sdk/pkg/mcp/transport"
)
func main() {
// Create a new server
srv := server.NewServer("Example Server")
// Add a tool
srv.AddTool("greet", func(name string) string {
return "Hello, " + name + "!"
}, "Greet a person")
// Create a session
session := server.NewSession(context.Background(), srv)
// Create and start a transport
t := transport.NewStdioTransport(session)
if err := t.Start(); err != nil {
log.Fatal(err)
}
}
Usage Guide
Creating a Server
// Create a new server with a name
srv := server.NewServer("My Server")
// Optionally configure server capabilities
srv.WithCapabilities(protocol.ServerCapabilities{
SupportsAsync: true,
})
Adding Tools
// Add a synchronous tool
srv.AddTool("myTool", func(arg1 string, arg2 int) (string, error) {
return fmt.Sprintf("Processed %s with %d", arg1, arg2), nil
}, "Tool description")
// Add an asynchronous tool
srv.AddAsyncTool("longRunningTool", func(params string) error {
// Long-running operation
return nil
}, "Async tool description")
Adding Resources
// Add a resource with pattern matching
srv.AddResource("files/{path}", func(path string) ([]byte, error) {
return ioutil.ReadFile(path)
}, "Access files")
// Resource patterns support multiple parameters
srv.AddResource("api/{version}/{endpoint}", func(version, endpoint string) (interface{}, error) {
return callAPI(version, endpoint)
}, "API access")
Adding Prompts
// Add a simple text prompt
srv.AddPrompt("confirm", func(action string) string {
return fmt.Sprintf("Are you sure you want to %s?", action)
}, "Confirmation prompt")
// Add a multi-message prompt
srv.AddPrompt("chat", func(context string) []protocol.PromptMessage {
return []protocol.PromptMessage{
{
Role: protocol.RoleAssistant,
Content: protocol.TextContent{
Type: "text",
Text: "How can I help you with " + context + "?",
},
},
}
}, "Chat prompt")
Transport Configuration
// Create a session
session := server.NewSession(context.Background(), srv)
// Stdio transport (for CLI applications)
t := transport.NewStdioTransport(session)
// WebSocket transport (for web applications)
t := transport.NewWebSocketTransport(session, transport.WithAddress(":8080"))
// Server-Sent Events transport (for web browsers)
t := transport.NewSSETransport(session, transport.WithAddress(":8080"))
// Start the transport
if err := t.Start(); err != nil {
log.Fatal(err)
}
Example Applications
See the examples directory for complete example applications:
- File Server: A complete file server implementation using MCP
- Calculator: A simple calculator service
- Chat Bot: An example chat bot using prompts
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
相关推荐
Confidential guide on numerology and astrology, based of GG33 Public information
A geek-themed horoscope generator blending Bitcoin prices, tech jargon, and astrological whimsy.
Converts Figma frames into front-end code for various mobile frameworks.
Therapist adept at identifying core issues and offering practical advice with images.
Oede knorrepot die vasthoudt an de goeie ouwe tied van 't boerenleven
A world class elite tech co-founder entrepreneur, expert in software development, entrepreneurship, marketing, coaching style leadership and aligned with ambition for excellence, global market penetration and worldy perspectives.
A medical specialist offering assistance grounded in clinical guidelines. Disclaimer: This is intended for research and is NOT safe for clinical use!
Descubra la colección más completa y actualizada de servidores MCP en el mercado. Este repositorio sirve como un centro centralizado, que ofrece un extenso catálogo de servidores MCP de código abierto y propietarios, completos con características, enlaces de documentación y colaboradores.
Manipulación basada en Micrypthon I2C del expansor GPIO de la serie MCP, derivada de AdaFruit_MCP230xx
Una puerta de enlace de API unificada para integrar múltiples API de explorador de blockchain similar a Esterscan con soporte de protocolo de contexto modelo (MCP) para asistentes de IA.
Servidor MCP para obtener contenido de la página web con el navegador sin cabeza de dramaturgo.
Espejo de https: //github.com/suhail-ak-s/mcp-typesense-server
Un bot de chat de IA para equipos pequeños y medianos, que apoyan modelos como Deepseek, Open AI, Claude y Gemini. 专为中小团队设计的 ai 聊天应用 , 支持 Deepseek 、 Open ai 、 Claude 、 Géminis 等模型。
Reviews

user_1DT7flKR
As a devoted user of the mcp-go-sdk, I highly recommend it for anyone working with Go. Created by SetiabudiResearch, this SDK simplifies interactions with MCP services and enhances development efficiency. The comprehensive documentation and clear welcome message make the onboarding process smooth and straightforward. Check it out at https://github.com/SetiabudiResearch/mcp-go-sdk.