-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Open
Labels
Description
Since the docs does not have any clear examples on how to use streameable mcp servers I want to see if anyone can give me any hints on using a mcp server:
My code:
fred_mcp = MCPServerStreamableHttp(params={"url": " https://22403a9df906.ngrok-free.app/mcp"}, name="fred-mcp-server")
with fred_mcp as fred_mcp_server:
try:
agent = Agent(
name="Numeric Data Agent",
instructions=PROMPT,
tools=[pandas_tool],
mcp_servers=[
fred_mcp_server
],
model=OpenAIResponsesModel(
model=self.valves.openai_model,
openai_client=client,
),
)
except Exception as e:
print(f"Error connecting to fred_mcp: {e}")
return f"Error connecting to fred_mcp: {e}"
result = Runner.run_streamed(
starting_agent=agent,
input=formatted_messages,
max_turns=self.valves.max_turns,
)
This gives me the error:
TypeError: 'MCPServerStreamableHttp' object does not support the context manager protocol
But when using out of the context manager protocol, I get:
raise UserError("Server not initialized. Make sure you call `connect()` first.")
agents.exceptions.UserError: Server not initialized. Make sure you call `connect()` first.
With the code:
fred_mcp = MCPServerStreamableHttp(params={"url": " https://22403a9df906.ngrok-free.app/mcp"}, name="fred-mcp-server")
try:
agent = Agent(
name="Numeric Data Agent",
instructions=PROMPT,
tools=[pandas_tool],
mcp_servers=[
fred_mcp
],
model=OpenAIResponsesModel(
model=self.valves.openai_model,
openai_client=client,
),
)
except Exception as e:
print(f"Error connecting to fred_mcp: {e}")
return f"Error connecting to fred_mcp: {e}"
result = Runner.run_streamed(
starting_agent=agent,
input=formatted_messages,
max_turns=self.valves.max_turns,
)
Can someone help me out?