使用说明
工具协议
协议层为MCP提供传输、有线格式和协议原语, A2A和ACP集成。此仓库是纯Go:不执行网络I/O 在传输实现之外。
部分 孔径堆栈 生态系统。
安装
go get github.com/jonwraymond/toolprotocol@latest
包裹
| 包装 | 用途 |
|---|---|
content |
统一的内容部分(文本、图像、音频、文件、资源) |
discover |
服务发现+能力协商 |
transport |
传输接口(stdio、SSE、流式HTTP) |
wire |
协议线编码(MCP、A2A、ACP) |
stream |
进度/部分/完成的流媒体事件 |
session |
客户端会话存储+上下文助手 |
task |
长运行任务生命周期+订阅 |
resource |
MCP资源注册表+订阅 |
prompt |
提示模板+注册表 |
elicit |
用户输入启发(文本/确认/选择/表单) |
快速开始
import (
"context"
"github.com/jonwraymond/toolprotocol/content"
"github.com/jonwraymond/toolprotocol/transport"
"github.com/jonwraymond/toolprotocol/wire"
)
type server struct{}
func (s *server) ServeTransport(ctx context.Context, t transport.Transport) error {
return nil
}
ctx := context.Background()
// Build content parts
builder := content.NewBuilder()
parts := []content.Content{
builder.Text("hello"),
}
// Encode a request using MCP wire format
codec := wire.NewMCP()
payload, err := codec.EncodeRequest(ctx, &wire.Request{
ID: "1",
Method: "tools/call",
ToolID: "echo",
Arguments: map[string]any{"message": "hello"},
Meta: map[string]any{"content": parts},
})
_ = payload
_ = err
// Serve over a transport
tp, _ := transport.New("stdio", nil)
_ = tp.Serve(ctx, &server{})
文档
请参阅 文档 目录和聚合文档站点
ai-tools-stack.
许可证
MIT许可证-请参阅 许可证
