MCP服务器库
用于实现机器控制协议(MCP)服务器的Go库。这是一个纯库包,可以导入到Go应用程序中以添加MCP服务器功能。
特性
- 基于WebSocket的通信
- JSON消息格式
- 自定义消息处理程序
- 并发客户处理
- 结构化日志记录
- 健康检查端点
- 易于扩展和定制
安装
go get github.com/serubanpetershan/mcp-server-base-library用法
package main
import (
"log"
"github.com/serubanpetershan/mcp-server/mcp"
"github.com/sirupsen/logrus"
"github.com/gorilla/websocket"
)
func main() {
// Create server configuration
config := &mcp.Config{
Port: "8080",
Logger: logrus.New(),
Handlers: map[string]mcp.MessageHandler{
"echo": func(s *mcp.Server, conn *websocket.Conn, msg mcp.Message) error {
return s.Send(conn, msg)
},
},
}
// Create and start the server
server := mcp.NewServer(config)
if err := server.Start(config.Port); err != nil {
log.Fatal(err)
}
}消息格式
{
"type": "message_type",
"payload": {}
}api参考
服务器
// Create a new server
server := mcp.NewServer(config)
// Start the server
server.Start(port string) error
// Register a message handler
server.RegisterHandler(messageType string, handler MessageHandler)
// Broadcast a message to all clients
server.Broadcast(msg Message)
// Send a message to a specific client
server.Send(client *websocket.Conn, msg Message) error
// Get all connected clients
server.GetClients() []*websocket.Conn配置
type Config struct {
Port string
Logger *logrus.Logger
Handlers map[string]MessageHandler
}消息处理程序
type MessageHandler func(*Server, *websocket.Conn, Message) error例子
请参阅 examples 目录中提供了如何在应用程序中使用此库的完整示例。
贡献
- 分叉存储库
- 创建功能分支
- 提交您的更改
- 推到分支
- 创建新的Pull请求
安全
此项目使用自动安全扫描:
- SonarQube用于代码质量和安全分析
- Snyk用于依赖漏洞扫描
- 每周自动安全扫描
- 所有拉取请求都会自动扫描
版本控制
要创建新版本,请执行以下操作:
- 更新版本文件
- 创建新标签:
git tag -a v1.0.0 -m "Release v1.0.0" - 按下标签:
git push origin v1.0.0
发布工作流将自动:
- 运行测试
- 构建项目
- 创建GitHub版本
- 生成变更日志
许可证
版权所有(c)2024 Seruban Peter Shan。保留所有权利。
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
该软件受版权法和国际条约的保护。未经授权擅自复制或分发本软件或其任何部分,可能会受到严厉的民事和刑事处罚,并将在法律允许的最大范围内受到起诉。
