Documentation
¶
Overview ¶
Package mcpclient provides a lightweight MCP HTTP client for communicating with klaus agent instances. It wraps the mcp-go client library to handle session initialization, tool invocation, and per-instance session caching.
Index ¶
- func ExtractText(result *mcp.CallToolResult) string
- func IsTerminalStatus(status string) bool
- func ParseStatusField(result *mcp.CallToolResult) string
- type Client
- func (c *Client) Close()
- func (c *Client) Messages(ctx context.Context, instanceName, baseURL string, opts *MessagesOpts) (*mcp.CallToolResult, error)
- func (c *Client) Prompt(ctx context.Context, instanceName, baseURL, message string) (*mcp.CallToolResult, error)
- func (c *Client) Result(ctx context.Context, instanceName, baseURL string, full bool) (*mcp.CallToolResult, error)
- func (c *Client) SessionID(instanceName string) string
- func (c *Client) Status(ctx context.Context, instanceName, baseURL string) (*mcp.CallToolResult, error)
- type MessagesOpts
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExtractText ¶ added in v0.0.42
func ExtractText(result *mcp.CallToolResult) string
ExtractText returns the concatenated text content from an MCP tool result. Only TextContent items are extracted; non-text content types (images, etc.) are silently skipped.
func IsTerminalStatus ¶ added in v0.0.42
IsTerminalStatus reports whether the given agent status indicates that the task is finished (successfully or otherwise).
func ParseStatusField ¶ added in v0.0.42
func ParseStatusField(result *mcp.CallToolResult) string
ParseStatusField extracts the "status" JSON field from an MCP tool result. Returns the status string if found, or empty string otherwise.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client manages MCP connections to klaus agent instances. It caches sessions per instance to avoid re-initializing on every call.
func New ¶
New creates a new Client. The version string is sent during MCP session initialization so the remote agent knows which klausctl build is calling.
func (*Client) Messages ¶ added in v0.0.34
func (c *Client) Messages(ctx context.Context, instanceName, baseURL string, opts *MessagesOpts) (*mcp.CallToolResult, error)
Messages retrieves the agent's conversation messages. When opts is non-nil, offset and types are forwarded to the agent.
func (*Client) Prompt ¶
func (c *Client) Prompt(ctx context.Context, instanceName, baseURL, message string) (*mcp.CallToolResult, error)
Prompt sends a prompt message to the agent instance.
func (*Client) Result ¶
func (c *Client) Result(ctx context.Context, instanceName, baseURL string, full bool) (*mcp.CallToolResult, error)
Result retrieves the agent's last result. When full is true, the agent returns extended detail (tool_calls, model_usage, token_usage, etc.).
type MessagesOpts ¶ added in v0.0.42
MessagesOpts holds optional parameters for the Messages call.