sessions
Connection = StdioConnection | SSEConnection | StreamableHttpConnection
module-attribute
DEFAULT_ENCODING = 'utf-8'
module-attribute
DEFAULT_ENCODING_ERROR_HANDLER = 'strict'
module-attribute
DEFAULT_HTTP_TIMEOUT = 5.0
module-attribute
DEFAULT_SSE_READ_TIMEOUT = 60.0 * 5
module-attribute
DEFAULT_STREAMABLE_HTTP_SSE_READ_TIMEOUT = 60.0 * 5
module-attribute
DEFAULT_STREAMABLE_HTTP_TIMEOUT = 30.0
module-attribute
EncodingErrorHandler = Literal['strict', 'ignore', 'replace']
module-attribute
McpHttpClientFactory
Bases: Protocol
Source code in griptape/tools/mcp/sessions.py
SSEConnection
Bases: TypedDict
Source code in griptape/tools/mcp/sessions.py
headers
instance-attribute
HTTP headers to send to the SSE endpoint.
httpx_client_factory
instance-attribute
Custom factory for httpx2.AsyncClient (optional).
session_kwargs
instance-attribute
Additional keyword arguments to pass to the ClientSession.
sse_read_timeout
instance-attribute
SSE read timeout, in seconds.
timeout
instance-attribute
HTTP timeout, in seconds.
transport
instance-attribute
url
instance-attribute
The URL of the SSE endpoint to connect to.
StdioConnection
Bases: TypedDict
Source code in griptape/tools/mcp/sessions.py
args
instance-attribute
Command line arguments to pass to the executable.
command
instance-attribute
The executable to run to start the server.
cwd
instance-attribute
The working directory to use when spawning the process.
encoding
instance-attribute
The text encoding used when sending/receiving messages to the server.
encoding_error_handler
instance-attribute
The text encoding error handler.
See https://docs.python.org/3/library/codecs.html#codec-base-classes for explanations of possible values.
env
instance-attribute
The environment to use when spawning the process.
session_kwargs
instance-attribute
Additional keyword arguments to pass to the ClientSession.
transport
instance-attribute
StreamableHttpConnection
Bases: TypedDict
Source code in griptape/tools/mcp/sessions.py
headers
instance-attribute
HTTP headers to send to the endpoint.
httpx_client_factory
instance-attribute
Custom factory for httpx2.AsyncClient (optional).
session_kwargs
instance-attribute
Additional keyword arguments to pass to the ClientSession.
sse_read_timeout
instance-attribute
How long (in seconds) the client will wait for a new event before disconnecting.
All other HTTP operations are controlled by timeout.
terminate_on_close
instance-attribute
Whether to terminate the session on close.
timeout
instance-attribute
HTTP timeout, in seconds.
transport
instance-attribute
url
instance-attribute
The URL of the endpoint to connect to.
_create_http_client(headers=None, timeout=None, auth=None)
Builds the httpx2 client MCP transports use when no factory is supplied.
Source code in griptape/tools/mcp/sessions.py
_create_sse_session(*, url, headers=None, timeout=DEFAULT_HTTP_TIMEOUT, sse_read_timeout=DEFAULT_SSE_READ_TIMEOUT, session_kwargs=None, httpx_client_factory=None)
async
Create a new session to an MCP server using SSE.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
URL of the SSE server |
required |
headers
|
dict[str, Any] | None
|
HTTP headers to send to the SSE endpoint |
None
|
timeout
|
float
|
HTTP timeout, in seconds |
DEFAULT_HTTP_TIMEOUT
|
sse_read_timeout
|
float
|
SSE read timeout, in seconds |
DEFAULT_SSE_READ_TIMEOUT
|
session_kwargs
|
dict[str, Any] | None
|
Additional keyword arguments to pass to the ClientSession |
None
|
httpx_client_factory
|
McpHttpClientFactory | None
|
Custom factory for httpx2.AsyncClient (optional) |
None
|
Source code in griptape/tools/mcp/sessions.py
_create_stdio_session(*, command, args, env=None, cwd=None, encoding=DEFAULT_ENCODING, encoding_error_handler=DEFAULT_ENCODING_ERROR_HANDLER, session_kwargs=None)
async
Create a new session to an MCP server using stdio.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
command
|
str
|
Command to execute |
required |
args
|
list[str]
|
Arguments for the command |
required |
env
|
dict[str, str] | None
|
Environment variables for the command |
None
|
cwd
|
str | Path | None
|
Working directory for the command |
None
|
encoding
|
str
|
Character encoding |
DEFAULT_ENCODING
|
encoding_error_handler
|
Literal['strict', 'ignore', 'replace']
|
How to handle encoding errors |
DEFAULT_ENCODING_ERROR_HANDLER
|
session_kwargs
|
dict[str, Any] | None
|
Additional keyword arguments to pass to the ClientSession |
None
|
Source code in griptape/tools/mcp/sessions.py
_create_streamable_http_session(*, url, headers=None, timeout=DEFAULT_STREAMABLE_HTTP_TIMEOUT, sse_read_timeout=DEFAULT_STREAMABLE_HTTP_SSE_READ_TIMEOUT, terminate_on_close=True, session_kwargs=None, httpx_client_factory=None)
async
Create a new session to an MCP server using Streamable HTTP.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
url
|
str
|
URL of the endpoint to connect to |
required |
headers
|
dict[str, Any] | None
|
HTTP headers to send to the endpoint |
None
|
timeout
|
float
|
HTTP timeout, in seconds |
DEFAULT_STREAMABLE_HTTP_TIMEOUT
|
sse_read_timeout
|
float
|
How long (in seconds) the client will wait for a new event before disconnecting |
DEFAULT_STREAMABLE_HTTP_SSE_READ_TIMEOUT
|
terminate_on_close
|
bool
|
Whether to terminate the session on close |
True
|
session_kwargs
|
dict[str, Any] | None
|
Additional keyword arguments to pass to the ClientSession |
None
|
httpx_client_factory
|
McpHttpClientFactory | None
|
Custom factory for httpx2.AsyncClient (optional) |
None
|
Source code in griptape/tools/mcp/sessions.py
_to_seconds(value)
Normalizes a timeout to seconds, since MCP takes floats rather than timedeltas.
create_session(connection)
async
Create a new session to an MCP server.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
connection
|
Connection
|
Connection config to use to connect to the server |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
If transport is not recognized |
ValueError
|
If required parameters for the specified transport are missing |
Yields:
| Type | Description |
|---|---|
AsyncIterator[ClientSession]
|
A ClientSession |