Where is the MCP client located within the project structure?	In the `mcp-client.py` file inside the root project directory.
What is the primary purpose of the single class defined within the MCP client file?	To wrap and manage a client session.
What does the "client session" represent in the context of the MCP client?	The actual connection to the MCP server, which is part of the MCP Python SDK.
Why is the MCP client class often large and complex?	It contains extensive code for resource cleanup, such as in the `cleanup`, `async enter`, and `async exit` functions.
What is the overall function of the MCP client for the codebase?	It exposes functionality that belongs to the MCP server to the rest of the project's code.
How is the `list_tools` function implemented in the MCP client?	It calls `self.session.list_tools()` and returns the resulting list of tools.
What parameters are required by the `call_tool` function?	The specific tool name and the tool input/arguments provided by Claude.
How can the MCP client be tested directly?	By running the file directly using a testing harness, such as `uv run mcp_client.py`.
