Token导航 LogoToken导航TokenDH.com
Mcpui Go logo
AI代理未说明官方级别未说明来源级核验

Mcpui Go

MCP Server

一个用于MCP-UI协议的Go语言SDK,支持服务器生成交互式UI资源并在沙盒iframe中渲染。

工具数

0

提示词数

0

GitHub Stars

2

资源数

0
服务器开发Go本地部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ironystock

提供方

ironystock

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

mcpui走

![Go Reference](https://pkg.go.dev/github.com/ironystock/mcpui-go@v0.1.0) ![Go Report Card](https://goreportcard.com/report/github.com/ironystock/mcpui-go) ![License: MIT](https://opensource.org/licenses/MIT) ![GitMCP](https://gitmcp.io/ironystock/mcpui-go) ![Twitter Follow](https://twitter.com/ironystock)

MCP-UI协议的Go SDK,使MCP服务器能够返回客户端可以在沙盒iframe中呈现的交互式UI资源。

概述

MCP-UI扩展了模型上下文协议(MCP),以支持丰富的交互式用户界面。此SDK为基于Go的MCP服务器提供了服务器端实现,允许它们:

  • 使用HTML、URL或远程DOM内容生成UI资源
  • 处理来自UI组件的用户交互
  • 将响应发送回UI层
  • 将操作路由到适当的处理程序

安装

go get github.com/ironystock/mcpui-go@v0.1.0

快速开始

创建简单的HTML资源

package main

import (
    "encoding/json"
    "fmt"

    "github.com/ironystock/mcpui-go"
)

func main() {
    // Create HTML content
    content := &mcpui.HTMLContent{
        HTML: `

            
Hello, World!

            
This is rendered in a sandboxed iframe.

        
`,
    }

    // Create resource contents for MCP response
    rc, _ := mcpui.NewUIResourceContents("ui://greeting/hello", content)

    data, _ := json.MarshalIndent(rc, "", "  ")
    fmt.Println(string(data))
}

处理UI操作

package main

import (
    "context"
    "fmt"

    "github.com/ironystock/mcpui-go"
)

func main() {
    router := mcpui.NewRouter()

    // Handle tool actions
    router.HandleType(mcpui.ActionTypeTool, mcpui.WrapToolHandler(
        func(ctx context.Context, toolName string, params map[string]any) (any, error) {
            fmt.Printf("Tool called: %s\n", toolName)
            return map[string]string{"status": "executed"}, nil
        },
    ))

    // Handle specific resource
    router.HandleResource("ui://dashboard/main",
        func(ctx context.Context, req *mcpui.UIActionRequest) (*mcpui.UIActionResult, error) {
            return &mcpui.UIActionResult{Response: "dashboard handled"}, nil
        },
    )

    fmt.Println("Router configured")
}

内容类型

SDK支持三种类型的UI内容:

类型描述用例
HTMLContent通过iframe srcdoc呈现的内联HTML简单、自包含的UI
URLContent通过iframe src呈现的外部URL现有web应用程序、复杂UI
RemoteDOMContent使用远程DOM的基于脚本的UI基于框架的动态UI

HTML内容

最适合简单、自包含的UI:

content := &mcpui.HTMLContent{
    HTML: `

        
Status Dashboard

        
All systems operational

    
`,
}

URL内容

最适合现有的web应用程序:

content := &mcpui.URLContent{
    URL: "https://example.com/dashboard",
}

远程DOM内容

最适合动态、基于框架的UI:

content := &mcpui.RemoteDOMContent{
    Script:    "React.createElement('div', null, 'Hello from React!')",
    Framework: mcpui.FrameworkReact,
}

行动处理

当用户与UI资源交互时,客户端发送 UIAction 信息。SDK提供了一个灵活的路由系统:

router := mcpui.NewRouter()

// Handle by action type
router.HandleType(mcpui.ActionTypeTool, toolHandler)
router.HandleType(mcpui.ActionTypePrompt, promptHandler)
router.HandleType(mcpui.ActionTypeResource, resourceHandler)

// Handle by specific resource URI
router.HandleResource("ui://audio/mixer", audioHandler)
router.HandleResource("ui://scene/preview", sceneHandler)

// Route an action
result, err := router.Route(ctx, &mcpui.UIActionRequest{
    SourceURI: "ui://audio/mixer",
    Action:    action,
})

响应消息

将响应发送回UI:

// Acknowledge receipt
ack := mcpui.NewReceivedResponse(action.MessageID)

// Success response
resp := mcpui.NewSuccessResponse(action.MessageID, result)

// Error response
errResp := mcpui.NewErrorResponse(action.MessageID, err)

文档

  • 内容类型 -HTMLContent、URLContent、RemoteDOMContent
  • 资源 -UIResource、UIResource内容、验证
  • 行动 -UIAction类型、有效载荷、解析
  • 回复 -UI响应构建器,成功/错误处理
  • 处理器 -UIActionHandler、路由器、类型化包装器
  • 整合 -如何与MCP服务器集成

例子

示例 完整、可运行示例的目录:

许可证

MIT许可证-请参阅 许可证 了解详情。

相关

目录标签

目录标签

服务器开发Go本地部署GoSDK交互式UIMCP协议

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP