mcp

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 27, 2026 License: BSD-3-Clause Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BridgeScript

func BridgeScript(serverID string) string

BridgeScript 返回桥接 JS 脚本,将 API 请求通过 postMessage 发给父窗口

Types

type HTTPProxy

type HTTPProxy struct {
	// contains filtered or unexported fields
}

HTTPProxy 统一的 MCP HTTP 服务代理 为每个注册的 MCP server HTTP 服务提供反向代理 + Go 客户端转发能力

func NewHTTPProxy

func NewHTTPProxy() *HTTPProxy

NewHTTPProxy 创建 HTTP 代理

func (*HTTPProxy) BaseURL

func (p *HTTPProxy) BaseURL() string

BaseURL 返回代理基础地址

func (*HTTPProxy) Forward

func (p *HTTPProxy) Forward(ctx context.Context, serverID, method, path string, body []byte, headers map[string]string) (int, []byte, error)

Forward 通过 Go HTTP 客户端转发 API 请求,绕过 WebView2 fetch 限制 供 Wails IPC 调用: JS → Wails → Go Forward → MCP HTTP → 原路返回

func (*HTTPProxy) ProxyURL

func (p *HTTPProxy) ProxyURL(id string) string

ProxyURL 返回通过代理访问指定 MCP server 的入口 URL

func (*HTTPProxy) Register

func (p *HTTPProxy) Register(id, targetURL string)

Register 注册 MCP server 的 HTTP 服务 id: MCP server ID, targetURL: 如 "http://127.0.0.1:9749"

func (*HTTPProxy) Start

func (p *HTTPProxy) Start() error

Start 在随机端口启动 HTTP 代理

func (*HTTPProxy) Stop

func (p *HTTPProxy) Stop()

Stop 停止 HTTP 代理

func (*HTTPProxy) Unregister

func (p *HTTPProxy) Unregister(id string)

Unregister 注销 MCP server 的 HTTP 服务

type MCPServerConfig

type MCPServerConfig struct {
	ID        string        `json:"id"`
	Name      string        `json:"name"`
	Transport TransportType `json:"transport"`
	Command   string        `json:"command,omitempty"`
	Args      []string      `json:"args,omitempty"`
	Env       []string      `json:"env,omitempty"`
	URL       string        `json:"url,omitempty"`
	Enabled   bool          `json:"enabled"`
	BuiltIn   bool          `json:"built_in"`
}

type MCPServerInfo

type MCPServerInfo struct {
	Config MCPServerConfig `json:"config"`
	Status ServerStatus    `json:"status"`
	Error  string          `json:"error,omitempty"`
	Tools  []MCPTool       `json:"tools"`
}

type MCPTool

type MCPTool struct {
	ServerID    string `json:"server_id"`
	ServerName  string `json:"server_name"`
	Name        string `json:"name"`
	Description string `json:"description"`
	InputSchema any    `json:"input_schema"`
}

type Manager

type Manager struct {
	HTTPProxy       *HTTPProxy
	OnServerStarted func(cfg MCPServerConfig)
	// contains filtered or unexported fields
}
var GlobalMCPManager *Manager

GlobalMCPManager 全局 MCP 管理器实例

func NewManager

func NewManager() *Manager

func (*Manager) AddConfig

func (m *Manager) AddConfig(cfg MCPServerConfig)

func (*Manager) BuildToolDefinitions

func (m *Manager) BuildToolDefinitions(toolEnabled func(name string) bool) []map[string]any

func (*Manager) CallTool

func (m *Manager) CallTool(ctx context.Context, serverID string, toolName string, args map[string]any) (result any, err error)

func (*Manager) ExecuteTool

func (m *Manager) ExecuteTool(toolName string, args json.RawMessage) (ok bool, out string, errStr string)

func (*Manager) GetAllServerInfo

func (m *Manager) GetAllServerInfo() []MCPServerInfo

func (*Manager) GetAllTools

func (m *Manager) GetAllTools() []MCPTool

func (*Manager) GetConfigs

func (m *Manager) GetConfigs() []MCPServerConfig

func (*Manager) GetServerInfo

func (m *Manager) GetServerInfo(id string) *MCPServerInfo

func (*Manager) RemoveConfig

func (m *Manager) RemoveConfig(id string) error

func (*Manager) SetConfigs

func (m *Manager) SetConfigs(configs []MCPServerConfig)

func (*Manager) Start

func (m *Manager) Start(ctx context.Context, id string) error

func (*Manager) StartAll

func (m *Manager) StartAll(ctx context.Context)

func (*Manager) Stop

func (m *Manager) Stop(id string)

func (*Manager) StopAll

func (m *Manager) StopAll()

func (*Manager) Toggle

func (m *Manager) Toggle(ctx context.Context, id string, enabled bool) error

func (*Manager) UpdateConfig

func (m *Manager) UpdateConfig(ctx context.Context, id string, cfg MCPServerConfig) error

type ServerStatus

type ServerStatus string
const (
	StatusStopped ServerStatus = "stopped"
	StatusRunning ServerStatus = "running"
	StatusError   ServerStatus = "error"
)

type TransportType

type TransportType string
const (
	TransportStdio TransportType = "stdio"
	TransportSSE   TransportType = "sse"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL