haive.mcp.client¶
MCP Client Implementation Package.
This package provides native MCP protocol client implementation for connecting to and communicating with MCP servers according to the Model Context Protocol specification.
Key Components¶
- Core Classes
MCPClient: Main client for protocol communicationMCPTransport: Transport layer abstractionMCPConnection: Connection managementMCPProtocol: Protocol implementation
- Transport Support
STDIO: Communication via stdin/stdout
HTTP: RESTful communication
SSE: Server-sent events
WebSocket: Real-time bidirectional communication
Docker: Run MCP servers in Docker containers via stdio
Usage Examples¶
Basic Connection¶
from haive.mcp.client import MCPClient, StdioTransport
# Create transport and client
transport = StdioTransport(
command="npx",
args=["-y", "@modelcontextprotocol/server-filesystem"]
)
client = MCPClient(transport)
# Connect and use
await client.connect()
tools = await client.list_tools()
result = await client.call_tool("read_file", {"path": "/etc/hosts"})
await client.disconnect()
Context Manager Usage¶
async with MCPClient(transport) as client:
tools = await client.list_tools()
result = await client.call_tool("tool_name", args)
Available Classes¶
Transport Classes¶
StdioTransport- Standard I/O transportHttpTransport- HTTP-based transportSseTransport- Server-Sent Events transportWebSocketTransport- WebSocket transportDockerTransport- Docker container transport
Exception Classes¶
MCPError- Base MCP exceptionMCPConnectionError- Connection-related errorsMCPProtocolError- Protocol violation errorsMCPTimeoutError- Timeout-related errorsMCPTransportError- Transport layer errorsMCPAuthenticationError- Authentication failuresMCPCapabilityError- Capability negotiation errorsMCPToolError- Tool execution errors
Note
This is a native implementation of the MCP protocol, designed to work with any MCP-compliant server. It handles the full protocol lifecycle including initialization, capability discovery, and tool execution.