Skip to content

Figuring out how to use streamable http mcp server #1316

@benjaminbascary97

Description

@benjaminbascary97

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions