Documentation
¶
Index ¶
- Constants
- Variables
- type API
- type Manager
- func (m *Manager) CallTool(ctx context.Context, req workspacesdk.CallMCPToolRequest) (workspacesdk.CallMCPToolResponse, error)
- func (m *Manager) Close() error
- func (m *Manager) Connect(ctx context.Context, mcpConfigFiles []string) error
- func (m *Manager) RefreshTools(ctx context.Context) error
- func (m *Manager) Tools() []workspacesdk.MCPToolInfo
- type ServerConfig
Constants ¶
const ToolNameSep = "__"
ToolNameSep separates the server name from the original tool name in prefixed tool names. Double underscore avoids collisions with tool names that may contain single underscores.
Variables ¶
var ( // ErrInvalidToolName is returned when the tool name format // is not "server__tool". ErrInvalidToolName = xerrors.New("invalid tool name format") // ErrUnknownServer is returned when no MCP server matches // the prefix in the tool name. ErrUnknownServer = xerrors.New("unknown MCP server") )
Functions ¶
This section is empty.
Types ¶
type API ¶
type API struct {
// contains filtered or unexported fields
}
API exposes MCP tool discovery and call proxying through the agent.
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager manages connections to MCP servers discovered from a workspace's .mcp.json file. It caches the aggregated tool list and proxies tool calls to the appropriate server.
func NewManager ¶
NewManager creates a new MCP client manager.
func (*Manager) CallTool ¶
func (m *Manager) CallTool(ctx context.Context, req workspacesdk.CallMCPToolRequest) (workspacesdk.CallMCPToolResponse, error)
CallTool proxies a tool call to the appropriate MCP server.
func (*Manager) Connect ¶
Connect reads MCP config files at the given absolute paths and connects to all configured servers. Failed servers are logged and skipped. Missing config files are silently skipped.
func (*Manager) RefreshTools ¶
RefreshTools re-fetches tool lists from all connected servers in parallel and rebuilds the cache. On partial failure, tools from servers that responded successfully are merged with the existing cached tools for servers that failed, so a single dead server doesn't block updates from healthy ones.
func (*Manager) Tools ¶
func (m *Manager) Tools() []workspacesdk.MCPToolInfo
Tools returns the cached tool list. Thread-safe.
type ServerConfig ¶
type ServerConfig struct {
Name string `json:"name"`
Transport string `json:"type"`
Command string `json:"command"`
Args []string `json:"args"`
Env map[string]string `json:"env"`
URL string `json:"url"`
Headers map[string]string `json:"headers"`
}
ServerConfig describes a single MCP server parsed from a .mcp.json file.
func ParseConfig ¶
func ParseConfig(path string) ([]ServerConfig, error)
ParseConfig reads a .mcp.json file at path and returns the declared MCP servers sorted by name. It returns an empty slice when the mcpServers key is missing or empty.