Streamable HTTP or SSE?
Streamable HTTP is the current MCP transport: every message is a POST to one address, often ending in /mcp, and the server answers with JSON or a short event stream. SSE is the older transport: the client keeps a stream open, usually at /sse, and the server tells it where to post messages. If one doesn’t connect, try the other.
Making your server work from a browser
Browsers only let a page talk to another site if that site agrees. Your server needs to answer OPTIONS requests and send Access-Control-Allow-Origin with this site’s address (or *), Access-Control-Allow-Headers: content-type, authorization, mcp-session-id, mcp-protocol-version, and Access-Control-Expose-Headers: mcp-session-id so the session ID can be read. Local servers on localhost work too, as long as they allow this origin.
What happens when you connect
The tester sends initialize with protocol version 2025-06-18, sends the initialized notification, then asks for tools/list, resources/list and prompts/list for whatever the server says it supports. Calling a tool sends tools/call with the arguments from the form. Every request and reply is shown in the traffic log exactly as sent and received.