Skip to content

Cannot handle Unexpected content type when initializing MCP session #1382

@bystepii

Description

@bystepii

Initial Checks

Description

When trying to connect to an MCP server using streamablehttp_client and ClientSession, the client prints Unexpected content type error if the server responds with anything other than the expected MCP JSON stream (e.g. error page, misconfigured endpoint, etc.).

This makes it difficult to handle cases where the server is not reachable or not serving MCP correctly, since no exception is raised.

Example Code

import asyncio
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession

async def main():
    async with streamablehttp_client(
        url="http://localhost:3001/mcp",
    ) as (read, write, _):
        async with ClientSession(read, write) as session:
            try:
                await session.initialize()
            except Exception as e:
                print(f"Failed to initialize MCP session: {e}")
                return
            print("MCP session initialized")

if __name__ == "__main__":
    asyncio.run(main())

Output

Unexpected content type: text/html; charset=utf-8

Python & MCP Python SDK

python 3.13.5
mcp 1.14.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Moderate issues affecting some users, edge cases, potentially valuable featurebugSomething isn't workingready for workEnough information for someone to start working on

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions