#!/usr/bin/env python3 """Проверка routerai-image-mcp по протоколу stdio: tools/list + tools/call.""" import asyncio, os, sys from mcp import ClientSession, StdioServerParameters from mcp.client.stdio import stdio_client PY = "/usr/local/lib/hermes-agent/venv/bin/python" SERVER = "/opt/routerai-image-mcp/server.py" async def main() -> None: params = StdioServerParameters( command=PY, args=[SERVER], env={**os.environ, "IMAGE_MCP_OUT_DIR": "/tmp/mcp-img-test"}, ) async with stdio_client(params) as (r, w): async with ClientSession(r, w) as s: await s.initialize() tools = await s.list_tools() print("TOOLS:", [t.name for t in tools.tools]) for t in tools.tools: print(" -", t.name, "::", (t.description or "").splitlines()[0][:90]) res = await s.call_tool("list_image_models", {}) print("\n--- list_image_models ---") print(res.content[0].text[:300]) if len(sys.argv) > 1 and sys.argv[1] == "--generate": model = sys.argv[2] if len(sys.argv) > 2 else "google/gemini-3.1-flash-lite-image" print(f"\n--- generate_image ({model}) ---") res = await s.call_tool( "generate_image", {"prompt": "рыжий кот в будёновке, акварель, тёплый фон", "model": model}, ) print(res.content[0].text) print("isError:", res.isError) asyncio.run(main())