"""Connect to the sub-mounted MCP endpoint at /api/, list tools and call greet. HTTP-only: the mount is the story."""

from mcp_types import TextContent

from mcp.client import Client
from stories._harness import Target, run_client


async def main(target: Target, *, mode: str = "auto") -> None:
    async with Client(target, mode=mode) as client:
        listed = await client.list_tools()
        assert [t.name for t in listed.tools] == ["greet"]

        result = await client.call_tool("greet", {"name": "Starlette"})
        assert not result.is_error
        first = result.content[0]
        assert isinstance(first, TextContent)
        assert "Hello, Starlette!" in first.text, result
        assert result.structured_content == {"result": "Hello, Starlette! (served from a Starlette sub-mount)"}


if __name__ == "__main__":
    run_client(main)
