Claude reaches external tools through MCP natively, so a Streamable HTTP server at /mcp needs no adapter. The steps below assume one of the example servers is running; the same applies to any server you build.

Test it first with the MCP Inspector

Before any assistant, point the Inspector at the endpoint. It lists the tools exactly as a client will see them and lets you call them by hand.

npx @modelcontextprotocol/inspector

Choose the Streamable HTTP transport, enter http://127.0.0.1:3001/mcp, connect, and open the Tools tab. If a description reads badly here, it reads badly to the model.

Claude Code

Claude Code accepts remote MCP servers by URL:

claude mcp add --transport http sample-shop http://127.0.0.1:3001/mcp

Then, inside a session, ask for something the tools can do: "find desk lamps under fifty dollars" calls search_products; "order two of the cast iron skillet" should get you a confirmation question before create_order runs, because the description asks for one.

Claude on the web and desktop

Claude's web and desktop apps add remote MCP servers as custom connectors: Settings, Connectors, add a custom connector, and enter the server's URL. Availability depends on the plan and, in organisations, on what an administrator allows. A server on 127.0.0.1 is not reachable from Claude's side; expose it over HTTPS first (see production), or use a tunnel for a test.

Custom connectors expect the server to handle authorization. The examples have none on the MCP endpoint, which is the right choice on localhost and the wrong one anywhere public. The SDKs support OAuth on the endpoint; that is the step to add before a public URL.

What to check before customers connect

  • Descriptions do the work. Watch what Claude does with an ambiguous request. If it calls the wrong tool or skips the confirmation, the fix is in the description, not in prompting the user.
  • Pagination is honest. Ask for "all kitchen products" and check that Claude mentions there were more results, or asks to continue, rather than presenting page one as everything.
  • Errors guide. Ask for a product that does not exist. Claude should say so and not retry the same id, because the error text told it not to.
  • Confirmation holds. Ask to cancel an order. Claude should show the order and ask before calling again with confirm: true.

Those four behaviours are the ones the conformance test checks mechanically; this is the same list, checked through the assistant.

Also see connecting to ChatGPT. The same server serves both.