MCP connector wires A2AJ, CourtListener, and Ansvar as OpenAI Responses API tools
Three commits evolve `mcp_connector.py` from a simple httpx client into a `MikeOSS_MCP_Manager` that registers multiple Canadian legal MCP servers as tools via the OpenAI Responses API. The endpoint URLs and the A2AJ guide notebook are the most practically useful outputs.
4bc08fd rewrites the connector to use AsyncOpenAI(...).responses.create(..., tools=[{"type":"mcp","server_url":...}]) instead of a hand-rolled httpx/JSON-RPC client. This is the OpenAI SDK's native remote MCP support. The commit also adds a2aj_mcp_guide.ipynb, the official A2AJ notebook demonstrating how to connect to https://api.a2aj.ca/mcp (note: api.a2aj.ca/mcp is the older endpoint; the newer one is mcp.a2aj.ca/mcp).
bd3ca89 renames the class to MikeOSS_MCP_Manager and registers three servers: A2AJ at https://api.a2aj.ca/mcp, CourtListener at https://mcp.courtlistener.com, and @ansvar/canadian-law-mcp via npx. The Ansvar server is defined structurally but not actually wired - a comment notes a "stdio-to-sse bridge would be needed in a full production environment."
659528c8 makes the A2AJ URL configurable via A2AJ_MCP_URL env var (defaulting to the public endpoint) and adds README documentation for self-hosting the A2AJ Mongo/Elasticsearch stack for local data sovereignty.
Two things to flag before adopting this pattern. First, all tools are registered with "require_approval": "never", which auto-approves every remote tool call. Review that before putting it in front of real client data. Second, the sovereignty framing is in tension with the implementation: Canadian legal queries are routed through the OpenAI Responses API, so they transit OpenAI's infrastructure regardless of whether the retrieval endpoints are local.
Spotted something wrong? Or know the PR text has fresher detail than the writeup above?