Download client.py from jarisko/mcp_server_deployment_sample: direct link, hf CLI and curl.
- Browser
- Download file 1.66 kB
-
https://huggingface.co/spaces/jarisko/mcp_server_deployment_sample/resolve/main/client.py
- Command line
-
hf download hf://spaces/jarisko/mcp_server_deployment_sample/client.py
-
curl -L -o client.py https://huggingface.co/spaces/jarisko/mcp_server_deployment_sample/resolve/main/client.py
1.66 kB
| from typing import List, Dict | |
| import asyncio | |
| from mcp import ClientSession, StdioServerParameters | |
| from mcp.client.stdio import stdio_client | |
| from mcp.client.sse import sse_client | |
| from contextlib import AsyncExitStack | |
| async def connect_to_stdio_server() -> None: | |
| """Connect to a single MCP server.""" | |
| sessions: List[ClientSession] = [] | |
| exit_stack = AsyncExitStack() | |
| try: | |
| server_params = StdioServerParameters( | |
| command="npx", | |
| args=[ | |
| "mcp-remote", | |
| "https://jarisko-mcp-server-deployment-sample.hf.space/gradio_api/mcp/sse", | |
| "--transport", | |
| "sse-only" | |
| ] | |
| ) | |
| stdio_transport = await exit_stack.enter_async_context( | |
| stdio_client(server_params) | |
| ) | |
| read, write = stdio_transport | |
| session = await exit_stack.enter_async_context( | |
| ClientSession(read, write) | |
| ) | |
| await session.initialize() | |
| sessions.append(session) | |
| print("3") | |
| # List available tools for this session | |
| response = await session.list_tools() | |
| tools = response.tools | |
| print(f"{tools=}") | |
| except Exception as e: | |
| print(f"Failed to connect: {e}") | |
| async def connect_to_sse_server(): | |
| async with sse_client("https://jarisko-mcp-server-deployment-sample.hf.space/gradio_api/mcp/sse") as streams: | |
| async with ClientSession(*streams) as session: | |
| await session.initialize() | |
| tools_result = await session.list_tools() | |
| print(f"{tools_result=}") | |
| asyncio.run(connect_to_sse_server()) |