Source code for agentscope.mcp._stdio_stateful_client
# -*- coding: utf-8 -*-"""The StdIO MCP server implementation in AgentScope, which providesfunction-level fine-grained control over the MCP servers using standard IO."""fromtypingimportLiteralfrommcpimportstdio_client,StdioServerParametersfrom._stateful_client_baseimportStatefulClientBase
[docs]classStdIOStatefulClient(StatefulClientBase):"""A client class that sets up and manage StdIO MCP server connections, and provides function-level fine-grained control over the MCP servers. .. tip:: The stateful client is recommended for MCP servers that need to maintain session states, e.g. web browsers or other interactive MCP servers. .. note:: The stateful client will maintain one session across multiple tool calls, until the client is closed by explicitly calling the `close()` method. """
[docs]def__init__(self,name:str,command:str,args:list[str]|None=None,env:dict[str,str]|None=None,cwd:str|None=None,encoding:str="utf-8",encoding_error_handler:Literal["strict","ignore","replace",]="strict",)->None:"""Initialize the MCP server with std IO. Args: name (`str`): The name to identify the MCP server, which should be unique across the MCP servers. command (`str`): The executable to run to start the server. args (`list[str] | None`, optional): Command line arguments to pass to the executable. env (`dict[str, str] | None`, optional): The environment to use when spawning the process. cwd (`str | None`, optional): The working directory to use when spawning the process. encoding (`str`, optional): The text encoding used when sending/receiving messages to the server. Defaults to "utf-8". encoding_error_handler (`Literal["strict", "ignore", "replace"]`, defaults to "strict"): The text encoding error handler. """super().__init__(name=name)self.client=stdio_client(StdioServerParameters(command=command,args=argsor[],env=env,cwd=cwd,encoding=encoding,encoding_error_handler=encoding_error_handler,),)