विषय पर बढ़ें

डेस्कटॉप जीयूआई स्वचालन

local-shell-mcp Linux, Windows और macOS पर मूल डेस्कटॉप अनुप्रयोगों का निरीक्षण और नियंत्रण कर सकता है। सार्वजनिक सतह जानबूझकर छोटी रहती है:

औजार उद्देश्य
gui_list दृश्यमान एप्लिकेशन विंडो सूचीबद्ध करें और सक्रिय मूल बैकएंड/क्षमताओं की रिपोर्ट करें।
gui_state एक खिड़की का निरीक्षण करें. एक अल्पकालिक state_id, अभिगम्यता तत्व, विंडो ज्यामिति और वैकल्पिक रूप से एक देशी MCP स्क्रीनशॉट लौटाता है।
gui_action उस सटीक अवलोकन के विरुद्ध अर्थ संबंधी या समन्वित क्रियाएं निष्पादित करें।

सभी तीन उपकरण वैकल्पिक machine स्वीकार करते हैं, इसलिए एक ही वर्कफ़्लो एक कनेक्टेड डेस्कटॉप वर्कर को लक्षित कर सकता है।

निरीक्षण करें, फिर कार्य करें

gui_list से प्रारंभ करें, window_id चुनें, फिर gui_state पर कॉल करें। जब भी कोई लक्ष्य नियंत्रण का प्रतिनिधित्व करता है तो लौटाई गई पहुंच element_id को प्राथमिकता दें:

gui_list
  -> gui_state(window_id)
  -> gui_action(window_id, state_id, [{type: "click", element_id: "e17"}])
  -> gui_state(window_id)

विंडो-रिश्तेदार x/y निर्देशांक का उपयोग केवल तभी करें जब यूआई में कोई उपयोगी पहुंच तत्व न हो, जैसे कि कैनवास या कस्टम-तैयार नियंत्रण। लौटाए गए तत्व सीमाएँ और स्क्रीनशॉट HiDPI/रेटिना डेस्कटॉप सहित समान विंडो-सापेक्ष तार्किक पिक्सेल स्थान का उपयोग करते हैं। चयनित विंडो के बाहर कच्चे निर्देशांक अस्वीकार कर दिए जाते हैं।

एक state_id 30 सेकंड के बाद समाप्त हो जाता है और एकल-उपयोग है। समन्वित क्रियाएं यह भी सत्यापित करती हैं कि अवलोकन के बाद से लक्ष्य विंडो स्थानांतरित नहीं हुई है या उसका आकार नहीं बदला है। यदि कोई भी चेक विफल हो जाता है, तो पुराने निर्देशांक का पुन: उपयोग करने के बजाय gui_state को दोबारा कॉल करें।

समर्थित क्रियाएँ click, double_click, right_click, move, scroll, drag, type, key, set_value, focus और wait हैं।

नेटिव वेबयूआई में मानव नियंत्रण

नेटिव वेबयूआई में समान नेटिव जीयूआई बैकएंड के सीधे मानव नियंत्रण के लिए एक डेस्कटॉप पेज है। एक मशीन और एक विंडो चुनें, फिर क्लिक, डबल-क्लिक, राइट-क्लिक, ड्रैग, व्हील, कीबोर्ड शॉर्टकट या IME/CJK इनपुट के लिए टेक्स्ट फ़ील्ड का उपयोग करके लाइव विंडो छवि के साथ इंटरैक्ट करें।

यह पथ जानबूझकर मॉडल state_id शब्दार्थ से अलग है। प्रत्येक प्रदर्शित फ़्रेम में देखी गई विंडो ज्यामिति होती है; प्रत्येक मानव इनपुट अनुरोध यह पुष्टि करता है कि इनपुट इंजेक्ट करने से पहले विंडो में अभी भी वही ज्यामिति है। यदि विंडो स्थानांतरित हो जाती है, आकार बदल जाती है, या गायब हो जाती है, तो कार्रवाई अस्वीकार कर दी जाती है और वेबयूआई अवलोकन को ताज़ा करता है। कच्चे निर्देशांक चयनित विंडो तक सीमित रहते हैं।

कीबोर्ड और टेक्स्ट क्रियाएं इंजेक्शन से पहले चयनित मूल विंडो पर स्पष्ट रूप से ध्यान केंद्रित करती हैं। WebUI VNC/WebRTC वीडियो स्ट्रीमिंग के बजाय हल्के स्क्रीनशॉट पोलिंग का उपयोग करता है, और केवल रिमोट gui_human_action RPC मॉडल के संपर्क में आने वाले MCP टूल के बजाय एक आंतरिक नियंत्रक-से-कार्यकर्ता ऑपरेशन है।

मूल बैकएंड

प्लैटफ़ॉर्म अभिगम्यता / शब्दार्थ नियंत्रण कैप्चर और कच्चा इनपुट
खिड़कियाँ माइक्रोसॉफ्ट यूआई स्वचालन यूआईए/विंडो कैप्चर प्लस देशी विंडोज माउस और कीबोर्ड इनपुट
मैक ओएस अभिगम्यता (AXUIElement) चयनित विंडो के लिए screencapture प्लस क्वार्ट्ज CGEvent इनपुट
लिनक्स एटी-एसपीआई X11 मूल इनपुट/कैप्चर; वेलैंड कच्चे इनपुट के लिए देशी डेस्कटॉप कैप्चर और XDG डेस्कटॉप पोर्टल रिमोटडेस्कटॉप/स्क्रीनकास्ट का उपयोग करता है

जहां संभव हो वहां अर्थ संबंधी क्रियाएं पहले करने का प्रयास किया जाता है। इसलिए मूल आह्वान/प्रेस क्रिया वाला एक बटन पिक्सेल समन्वय का अनुमान लगाए बिना सक्रिय किया जा सकता है। दुर्गम या कस्टम-तैयार सामग्री के लिए दृश्य निर्देशांक फ़ॉलबैक बने रहते हैं।

प्लेटफार्म सेटअप

खिड़कियाँ

एलएसएम को उसी इंटरैक्टिव डेस्कटॉप सत्र में चलाएं, जिस एप्लिकेशन को इसे नियंत्रित करना चाहिए। आधार local-shell-mcp इंस्टॉल हेडलेस-सुरक्षित रहता है और इसके लिए Windows UI ऑटोमेशन एडाप्टर की आवश्यकता नहीं होती है; जब स्थानीय Windows GUI नियंत्रण की आवश्यकता हो तो वैकल्पिक local-shell-mcp[gui] अतिरिक्त स्थापित करें।

मैक ओएस

एलएसएम होस्ट प्रक्रिया प्रदान करें:

  • पहुंचयोग्यता सिमेंटिक नियंत्रण और इनपुट के लिए अनुमति।
  • स्क्रीन रिकॉर्डिंग स्क्रीनशॉट के लिए अनुमति।

बेस पैकेज को PyObjC की आवश्यकता नहीं है। जब स्थानीय macOS GUI नियंत्रण की आवश्यकता हो तो वैकल्पिक local-shell-mcp[gui] अतिरिक्त स्थापित करें; जो मशीनें कभी भी GUI टूल का उपयोग नहीं करती हैं उन्हें इन फ़्रेमवर्क की आवश्यकता नहीं होती है।

लिनक्स

डेस्कटॉप सत्र को एटी-एसपीआई को उजागर करना होगा। डेबियन/उबंटू सिस्टम आम तौर पर आवश्यक सिस्टम बाइंडिंग प्रदान करते हैं:

sudo apt install python3-gi gir1.2-atspi-2.0

बेस पैकेज के लिए Python X11 या D-Bus एडाप्टर की आवश्यकता नहीं है। वैकल्पिक local-shell-mcp[gui] अतिरिक्त उन्हें स्थानीय GUI उपयोग के लिए स्थापित करता है। दूरस्थ कर्मचारी किसी भी GUI निर्भरता बूटस्ट्रैप से पहले सक्रिय लिनक्स सत्र का पता लगाते हैं: X11 को केवल X11 एडाप्टर की आवश्यकता होती है, वेलैंड को केवल D-बस एडाप्टर की आवश्यकता होती है, और हेडलेस कर्मचारी न तो इंस्टॉल करते हैं। वेलैंड पर, रॉ पॉइंटर/कीबोर्ड फ़ॉलबैक XDG डेस्कटॉप पोर्टल रिमोटडेस्कटॉप एपीआई का उपयोग करता है, इसलिए डेस्कटॉप एक बार की अनुमति/सत्र पिकर दिखा सकता है। केडीई और गनोम पोर्टल कार्यान्वयन समर्थित हैं। विंडो स्क्रीनशॉट उपलब्ध मूल डेस्कटॉप कैप्चर पथ का उपयोग करते हैं और आवश्यकता पड़ने पर स्क्रीनशॉट पोर्टल पर वापस आ जाते हैं।

एलएसएम कार्यकर्ता आमतौर पर ग्राफिकल लॉगिन वातावरण के बाहर शुरुआत करते हैं। लिनक्स बैकएंड उपयोगकर्ता सिस्टमड वातावरण से DISPLAY, WAYLAND_DISPLAY, XDG_SESSION_TYPE और संबंधित चर को पुनर्प्राप्त करता है, जब वे सीधे विरासत में नहीं मिलते हैं।

दूरस्थ डेस्कटॉप

GUI उपकरण चयनित मशीन पर चलते हैं, नियंत्रक पर नहीं। दूरस्थ कार्यकर्ता उस उपयोगकर्ता/सत्र से संबंधित होना चाहिए जिसके पास लक्ष्य डेस्कटॉप है। जीयूआई एडाप्टर आलसी हैं और जीयूआई कॉल के दायरे में हैं: सामान्य कार्यकर्ता स्टार्टअप और शेल/फ़ाइलें/ब्राउज़र का उपयोग उन्हें स्थापित या आयात नहीं करता है। लिनक्स पर, एक हेडलेस वर्कर किसी भी GUI पिप बूटस्ट्रैप से पहले GUI को अनुपलब्ध लौटाता है; एक ग्राफ़िकल वर्कर केवल अपने सक्रिय X11 या वेलैंड सत्र के लिए आवश्यक एडाप्टर की जाँच या स्थापित करता है।

रिमोट gui_state द्वारा लौटाए गए स्क्रीनशॉट को LSM के फ़ाइल-ट्रांसफर पथ के माध्यम से स्थानांतरित किया जाता है और मूल MCP छवि सामग्री के रूप में मॉडल के सामने लाया जाता है; वे कार्यकर्ता JSON प्रतिक्रिया में अंतर्निहित नहीं हैं।