Documentation
¶
Index ¶
- func BridgeScript(serverID string) string
- type HTTPProxy
- func (p *HTTPProxy) BaseURL() string
- func (p *HTTPProxy) Forward(ctx context.Context, serverID, method, path string, body []byte, ...) (int, []byte, error)
- func (p *HTTPProxy) ProxyURL(id string) string
- func (p *HTTPProxy) Register(id, targetURL string)
- func (p *HTTPProxy) Start() error
- func (p *HTTPProxy) Stop()
- func (p *HTTPProxy) Unregister(id string)
- type MCPServerConfig
- type MCPServerInfo
- type MCPTool
- type Manager
- func (m *Manager) AddConfig(cfg MCPServerConfig)
- func (m *Manager) BuildToolDefinitions(toolEnabled func(name string) bool) []map[string]any
- func (m *Manager) CallTool(ctx context.Context, serverID string, toolName string, args map[string]any) (result any, err error)
- func (m *Manager) ExecuteTool(toolName string, args json.RawMessage) (ok bool, out string, errStr string)
- func (m *Manager) GetAllServerInfo() []MCPServerInfo
- func (m *Manager) GetAllTools() []MCPTool
- func (m *Manager) GetConfigs() []MCPServerConfig
- func (m *Manager) GetServerInfo(id string) *MCPServerInfo
- func (m *Manager) RemoveConfig(id string) error
- func (m *Manager) SetConfigs(configs []MCPServerConfig)
- func (m *Manager) Start(ctx context.Context, id string) error
- func (m *Manager) StartAll(ctx context.Context)
- func (m *Manager) Stop(id string)
- func (m *Manager) StopAll()
- func (m *Manager) Toggle(ctx context.Context, id string, enabled bool) error
- func (m *Manager) UpdateConfig(ctx context.Context, id string, cfg MCPServerConfig) error
- type ServerStatus
- type TransportType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BridgeScript ¶
BridgeScript 返回桥接 JS 脚本,将 API 请求通过 postMessage 发给父窗口
Types ¶
type HTTPProxy ¶
type HTTPProxy struct {
// contains filtered or unexported fields
}
HTTPProxy 统一的 MCP HTTP 服务代理 为每个注册的 MCP server HTTP 服务提供反向代理 + Go 客户端转发能力
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) Register ¶
Register 注册 MCP server 的 HTTP 服务 id: MCP server ID, targetURL: 如 "http://127.0.0.1:9749"
func (*HTTPProxy) Unregister ¶
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 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 (*Manager) ExecuteTool ¶
func (*Manager) GetAllServerInfo ¶
func (m *Manager) GetAllServerInfo() []MCPServerInfo
func (*Manager) GetAllTools ¶
func (*Manager) GetConfigs ¶
func (m *Manager) GetConfigs() []MCPServerConfig
func (*Manager) GetServerInfo ¶
func (m *Manager) GetServerInfo(id string) *MCPServerInfo
func (*Manager) RemoveConfig ¶
func (*Manager) SetConfigs ¶
func (m *Manager) SetConfigs(configs []MCPServerConfig)
func (*Manager) UpdateConfig ¶
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" )
Click to show internal directories.
Click to hide internal directories.