Skip to content

Commit 0475d0c

Browse files
committed
Some cleanup
1 parent c7a78a1 commit 0475d0c

File tree

3 files changed

+10
-30
lines changed

3 files changed

+10
-30
lines changed

temporalio/contrib/openai_agents/_openai_runner.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import json
22
import typing
3+
import warnings
34
from dataclasses import replace
45
from typing import Any, Union
56

@@ -54,10 +55,11 @@ async def run(
5455
"Provided tool is not a tool type. If using an activity, make sure to wrap it with openai_agents.workflow.activity_as_tool."
5556
)
5657

57-
# if starting_agent.mcp_servers:
58-
# raise ValueError(
59-
# "Temporal OpenAI agent does not support on demand MCP servers."
60-
# )
58+
if starting_agent.mcp_servers:
59+
from temporalio.contrib.openai_agents import (StatelessTemporalMCPServer, StatefulTemporalMCPServer)
60+
for s in starting_agent.mcp_servers:
61+
if not isinstance(s, (StatelessTemporalMCPServer, StatefulTemporalMCPServer)):
62+
warnings.warn("Unknown mcp_server type {} may not work durably.".format(type(s)))
6163

6264
# workaround for https://github.com/pydantic/pydantic/issues/9541
6365
# ValidatorIterator returned

temporalio/contrib/openai_agents/_temporal_openai_agents.py

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ class OpenAIAgentsPlugin(temporalio.client.Plugin, temporalio.worker.Plugin):
195195
Example:
196196
>>> from temporalio.client import Client
197197
>>> from temporalio.worker import Worker
198-
>>> from temporalio.contrib.openai_agents import OpenAIAgentsPlugin, ModelActivityParameters
198+
>>> from temporalio.contrib.openai_agents import OpenAIAgentsPlugin, ModelActivityParameters, StatelessTemporalMCPServer
199199
>>> from agents.mcp import MCPServerStdio
200200
>>> from datetime import timedelta
201201
>>>
@@ -206,10 +206,10 @@ class OpenAIAgentsPlugin(temporalio.client.Plugin, temporalio.worker.Plugin):
206206
... )
207207
>>>
208208
>>> # Create MCP servers
209-
>>> filesystem_server = MCPServerStdio(
209+
>>> filesystem_server = StatelessTemporalMCPServer(MCPServerStdio(
210210
... name="Filesystem Server",
211211
... params={"command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "."]}
212-
... )
212+
... ))
213213
>>>
214214
>>> # Create plugin with MCP servers
215215
>>> plugin = OpenAIAgentsPlugin(
@@ -265,29 +265,8 @@ def __init__(
265265

266266
self._model_params = model_params
267267
self._model_provider = model_provider
268+
self._mcp_servers = mcp_servers
268269

269-
if mcp_servers:
270-
from temporalio.contrib.openai_agents._mcp import (
271-
StatefulTemporalMCPServer,
272-
StatelessTemporalMCPServer,
273-
)
274-
275-
def _transform_mcp_server(server: "MCPServer") -> "MCPServer":
276-
if not (
277-
isinstance(server, StatelessTemporalMCPServer)
278-
or isinstance(server, StatefulTemporalMCPServer)
279-
):
280-
warnings.warn(
281-
f"Unsupported mcp server type {type(server)} is not guaranteed to behave reasonably."
282-
)
283-
284-
return server
285-
286-
self._mcp_servers = [
287-
_transform_mcp_server(server) for server in mcp_servers
288-
]
289-
else:
290-
self._mcp_servers = []
291270

292271
def init_client_plugin(self, next: temporalio.client.Plugin) -> None:
293272
"""Set the next client plugin"""

tests/contrib/openai_agents/test_openai.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2245,7 +2245,6 @@ async def test_stateful_mcp_server_no_worker(client: Client):
22452245
# Override the connect activity to not actually start a worker
22462246
@activity.defn(name="Filesystem-Server-stateful-connect")
22472247
async def connect() -> None:
2248-
print("Override connect")
22492248
await asyncio.sleep(30)
22502249

22512250
def override_get_activities() -> Sequence[Callable]:

0 commit comments

Comments
 (0)