MCP Servers
MCPServer
Bases: ABC
模型上下文协议(Model Context Protocol)服务器的基类。
Source code in src/agents/mcp/server.py
connect
abstractmethod
async
cleanup
abstractmethod
async
list_tools
abstractmethod
async
call_tool
abstractmethod
async
MCPServerStdioParams
Bases: TypedDict
与 mcp.client.stdio.StdioServerParameters
相对应,但允许你无需额外导入即可传递参数。
Source code in src/agents/mcp/server.py
args
instance-attribute
传递给 command
可执行文件的命令行参数。例如,['foo.py']
或 ['server.js', '--port', '8080']
。
MCPServerStdio
Bases: _MCPServerWithClientSession
使用 stdio 传输的 MCP 服务器实现。详见 [规范] (https://spec.modelcontextprotocol.io/specification/2024-11-05/basic/transports/#stdio)。
Source code in src/agents/mcp/server.py
__init__
__init__(
params: MCPServerStdioParams,
cache_tools_list: bool = False,
name: str | None = None,
client_session_timeout_seconds: float | None = 5,
)
基于 stdio 传输创建新的 MCP 服务器。
参数
params: 配置服务器的参数。包括用于启动服务器的命令、传递给命令的参数、为服务器设置的环境变量、
启动进程时使用的工作目录,以及与服务器发送/接收消息时使用的文本编码。
cache_tools_list: 是否缓存工具列表。如果为 True
,工具列表将被缓存,并且只会从服务器获取一次。
如果为 False
,每次调用 list_tools()
时都会从服务器获取工具列表。可以通过调用
invalidate_tools_cache()
使缓存失效。如果你确定服务器的工具列表不会变化,建议设置为
True
,因为这样可以显著提升延迟表现(避免每次都与服务器进行一次往返通信)。
name: 服务器的可读名称。如果未提供,则会根据命令自动生成。
client_session_timeout_seconds: 传递给 MCP ClientSession 的读取超时时间(秒)。
Source code in src/agents/mcp/server.py
create_streams
create_streams() -> AbstractAsyncContextManager[
tuple[
MemoryObjectReceiveStream[
SessionMessage | Exception
],
MemoryObjectSendStream[SessionMessage],
GetSessionIdCallback | None,
]
]
为服务器创建流。
Source code in src/agents/mcp/server.py
connect
async
连接到服务器。
Source code in src/agents/mcp/server.py
cleanup
async
list_tools
async
列出服务器上可用的工具。
Source code in src/agents/mcp/server.py
call_tool
async
在服务器上调用一个工具。
Source code in src/agents/mcp/server.py
MCPServerSseParams
Bases: TypedDict
与 mcp.client.sse.sse_client
中的参数相对应。
Source code in src/agents/mcp/server.py
MCPServerSse
Bases: _MCPServerWithClientSession
使用 HTTP + SSE 传输的 MCP 服务器实现。详见 [规范] (https://spec.modelcontextprotocol.io/specification/2024-11-05/basic/transports/#http-with-sse)。
Source code in src/agents/mcp/server.py
__init__
__init__(
params: MCPServerSseParams,
cache_tools_list: bool = False,
name: str | None = None,
client_session_timeout_seconds: float | None = 5,
)
基于 HTTP + SSE 传输创建新的 MCP 服务器。
参数
params: 配置服务器的参数。包括服务器的 URL、发送给服务器的请求头、HTTP 请求的超时时间,以及 SSE 连接的超时时间。
cache_tools_list: 是否缓存工具列表。如果为 True
,工具列表将被缓存,并且只会从服务器获取一次。
如果为 False
,每次调用 list_tools()
时都会从服务器获取工具列表。可以通过调用
invalidate_tools_cache()
使缓存失效。如果你确定服务器的工具列表不会变化,建议设置为
True
,因为这样可以显著提升延迟表现(避免每次都与服务器进行一次往返通信)。
name: 服务器的可读名称。如果未提供,则会根据 URL 自动生成。
client_session_timeout_seconds: 传递给 MCP ClientSession 的读取超时时间(秒)。
Source code in src/agents/mcp/server.py
create_streams
create_streams() -> AbstractAsyncContextManager[
tuple[
MemoryObjectReceiveStream[
SessionMessage | Exception
],
MemoryObjectSendStream[SessionMessage],
GetSessionIdCallback | None,
]
]
为服务器创建流。
Source code in src/agents/mcp/server.py
connect
async
连接到服务器。
Source code in src/agents/mcp/server.py
cleanup
async
list_tools
async
列出服务器上可用的工具。
Source code in src/agents/mcp/server.py
call_tool
async
在服务器上调用一个工具。
Source code in src/agents/mcp/server.py
MCPServerStreamableHttpParams
Bases: TypedDict
与 mcp.client.streamable_http.streamablehttp_client
中的参数相对应。
Source code in src/agents/mcp/server.py
sse_read_timeout
instance-attribute
SSE 连接的超时时间(秒)。默认为 5 分钟。
MCPServerStreamableHttp
Bases: _MCPServerWithClientSession
使用 Streamable HTTP 传输的 MCP 服务器实现。详见 [规范] (https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http)。
Source code in src/agents/mcp/server.py
__init__
__init__(
params: MCPServerStreamableHttpParams,
cache_tools_list: bool = False,
name: str | None = None,
client_session_timeout_seconds: float | None = 5,
)
基于 Streamable HTTP 传输创建新的 MCP 服务器。
参数
params: 配置服务器的参数。包括服务器的 URL、发送给服务器的请求头、HTTP 请求的超时时间、 Streamable HTTP 连接的超时时间,以及是否需要在关闭时终止连接。
cache_tools_list: 是否缓存工具列表。如果为 True
,工具列表将被缓存,并且只会从服务器获取一次。
如果为 False
,每次调用 list_tools()
时都会从服务器获取工具列表。可以通过调用
invalidate_tools_cache()
使缓存失效。如果你确定服务器的工具列表不会变化,建议设置为
True
,因为这样可以显著提升延迟表现(避免每次都与服务器进行一次往返通信)。
name: 服务器的可读名称。如果未提供,则会根据 URL 自动生成。
client_session_timeout_seconds: 传递给 MCP ClientSession 的读取超时时间(秒)。
Source code in src/agents/mcp/server.py
create_streams
create_streams() -> AbstractAsyncContextManager[
tuple[
MemoryObjectReceiveStream[
SessionMessage | Exception
],
MemoryObjectSendStream[SessionMessage],
GetSessionIdCallback | None,
]
]
为服务器创建流。
Source code in src/agents/mcp/server.py
connect
async
连接到服务器。
Source code in src/agents/mcp/server.py
cleanup
async
list_tools
async
列出服务器上可用的工具。
Source code in src/agents/mcp/server.py
call_tool
async
在服务器上调用一个工具。