mcp.servers.modelsΒΆ

MCP Server-specific models extending base server management framework.

This module provides MCP-specific server configuration and runtime information models that extend the base server management framework from haive-dataflow.

Key Components:
  • MCPTransport: Enum for MCP transport types (stdio, http, etc.)

  • MCPServerConfig: MCP-specific server configuration

  • MCPServerInfo: MCP runtime information with transport details

ClassesΒΆ

MCPServerConfig

MCP-specific server configuration.

MCPServerInfo

MCP-specific server runtime information.

MCPTransport

MCP transport mechanism types.

Module ContentsΒΆ

class mcp.servers.models.MCPServerConfigΒΆ

Bases: haive.dataflow.server_management.models.BaseServerConfig

MCP-specific server configuration.

Extends BaseServerConfig with MCP-specific fields like transport type, required environment variables, and protocol version.

transportΒΆ

MCP transport mechanism (stdio, http, etc.)

requires_envΒΆ

List of required environment variable names

protocol_versionΒΆ

MCP protocol version (default: β€œ1.0”)

capabilitiesΒΆ

List of server capabilities/features

endpointsΒΆ

Optional endpoints for HTTP/WebSocket transports

Example

>>> config = MCPServerConfig(
...     name="github",
...     command=["npx", "-y", "@modelcontextprotocol/server-github"],
...     description="GitHub repository access",
...     transport=MCPTransport.STDIO,
...     requires_env=["GITHUB_TOKEN"]
... )
classmethod validate_env_vars(v: List[str]) List[str]ΒΆ

Validate environment variable names.

validate_transport_config() MCPServerConfigΒΆ

Validate transport-specific configuration.

capabilities: List[str] = NoneΒΆ
endpoints: Dict[str, str] | None = NoneΒΆ
protocol_version: str = NoneΒΆ
requires_env: List[str] = NoneΒΆ
transport: MCPTransport = NoneΒΆ
class mcp.servers.models.MCPServerInfoΒΆ

Bases: haive.dataflow.server_management.models.BaseServerInfo

MCP-specific server runtime information.

Extends BaseServerInfo with MCP-specific runtime details like transport info, connection status, and protocol negotiation results.

transportΒΆ

Active transport type

transport_infoΒΆ

Transport-specific connection details

protocol_versionΒΆ

Negotiated protocol version

capabilities_activeΒΆ

Currently active capabilities

last_message_timeΒΆ

Timestamp of last message exchange

message_countΒΆ

Total messages exchanged

Example

>>> info = MCPServerInfo(
...     pid=12345,
...     status=ServerStatus.RUNNING,
...     transport=MCPTransport.STDIO,
...     transport_info={"pipes": ["stdin", "stdout", "stderr"]}
... )
get_transport_status() strΒΆ

Get human-readable transport status.

record_message() NoneΒΆ

Record a message exchange.

capabilities_active: List[str] = NoneΒΆ
last_message_time: datetime.datetime | None = NoneΒΆ
message_count: int = NoneΒΆ
protocol_version: str | None = NoneΒΆ
transport: MCPTransport = NoneΒΆ
transport_info: Dict[str, Any] = NoneΒΆ
class mcp.servers.models.MCPTransportΒΆ

Bases: str, enum.Enum

MCP transport mechanism types.

Defines the communication transport used by MCP servers.

HTTP = 'http'ΒΆ
IPC = 'ipc'ΒΆ
STDIO = 'stdio'ΒΆ
UNKNOWN = 'unknown'ΒΆ
WEBSOCKET = 'websocket'ΒΆ