Amir Mahla commited on
Commit
e074e5b
·
1 Parent(s): 7732477

ADD client usage

Browse files
Files changed (2) hide show
  1. Dockerfile +1 -1
  2. client_usage.py +50 -0
Dockerfile CHANGED
@@ -5,7 +5,7 @@ ENV SCREEN_SIZE=1920x1080x24
5
  ENV SERVER_TYPE=mcp
6
  ENV DPI=96
7
  ENV NOVNC_SERVER_ENABLED=true
8
- ENV SESSION_PASSWORD=""
9
  ENV ENDPOINT_PORT=7860
10
 
11
  EXPOSE 5000 8006 9222 7860
 
5
  ENV SERVER_TYPE=mcp
6
  ENV DPI=96
7
  ENV NOVNC_SERVER_ENABLED=true
8
+ ENV SESSION_PASSWORD="test"
9
  ENV ENDPOINT_PORT=7860
10
 
11
  EXPOSE 5000 8006 9222 7860
client_usage.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import asyncio
2
+ from contextlib import asynccontextmanager
3
+ from typing import AsyncGenerator
4
+ from time import sleep
5
+
6
+ from mcp import ClientSession
7
+ from mcp.client.streamable_http import streamablehttp_client
8
+
9
+
10
+ org_or_user = "a-mahla"
11
+ space_name = "test_desktop"
12
+
13
+
14
+ @asynccontextmanager
15
+ async def mcp_server() -> AsyncGenerator[ClientSession, None]:
16
+ """Context manager for recording the demo with MCP server"""
17
+ base_url = f"https://{org_or_user}-{space_name}.hf.space"
18
+ server_url = f"{base_url}/mcp/"
19
+ print("🎬 MCP Server started:", server_url)
20
+
21
+ # Connect to the server
22
+ async with streamablehttp_client(server_url) as (
23
+ read_stream,
24
+ write_stream,
25
+ _,
26
+ ):
27
+ async with ClientSession(read_stream, write_stream) as session:
28
+ await session.initialize()
29
+
30
+ yield session
31
+
32
+
33
+ async def main():
34
+ async with mcp_server() as session:
35
+ print("Opening https://www.huggingface.co for research...")
36
+ await session.call_tool("open", {"file_or_url": "https://www.huggingface.co/"})
37
+ sleep(7)
38
+ print(await session.call_tool("move_mouse", {"x": 1200, "y": 120}))
39
+ sleep(0.5)
40
+ print(await session.call_tool("left_click", {}))
41
+ sleep(1)
42
+ print(await session.call_tool("move_mouse", {"x": 1200, "y": 160}))
43
+ print(await session.call_tool("left_click", {}))
44
+ sleep(2)
45
+ print(await session.call_tool("move_mouse", {"x": 1600, "y": 320}))
46
+ print(await session.call_tool("left_click", {}))
47
+ sleep(1)
48
+
49
+ if __name__ == "__main__":
50
+ asyncio.run(main())