Spaces:
Running
Running
Amir Mahla
commited on
Commit
·
e074e5b
1
Parent(s):
7732477
ADD client usage
Browse files- Dockerfile +1 -1
- 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())
|