windows-mcp 0.6.1__py3-none-any.whl → 0.6.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- windows_mcp/__main__.py +10 -4
- windows_mcp/desktop/service.py +8 -2
- {windows_mcp-0.6.1.dist-info → windows_mcp-0.6.2.dist-info}/METADATA +3 -1
- {windows_mcp-0.6.1.dist-info → windows_mcp-0.6.2.dist-info}/RECORD +7 -7
- {windows_mcp-0.6.1.dist-info → windows_mcp-0.6.2.dist-info}/WHEEL +0 -0
- {windows_mcp-0.6.1.dist-info → windows_mcp-0.6.2.dist-info}/entry_points.txt +0 -0
- {windows_mcp-0.6.1.dist-info → windows_mcp-0.6.2.dist-info}/licenses/LICENSE.md +0 -0
windows_mcp/__main__.py
CHANGED
|
@@ -97,7 +97,10 @@ def powershell_tool(command: str,timeout:int=10, ctx: Context = None) -> str:
|
|
|
97
97
|
)
|
|
98
98
|
)
|
|
99
99
|
@with_analytics(analytics, "State-Tool")
|
|
100
|
-
def state_tool(use_vision:bool=False,use_dom:bool=False, ctx: Context = None):
|
|
100
|
+
def state_tool(use_vision:bool|str=False,use_dom:bool|str=False, ctx: Context = None):
|
|
101
|
+
use_vision = use_vision is True or (isinstance(use_vision, str) and use_vision.lower() == 'true')
|
|
102
|
+
use_dom = use_dom is True or (isinstance(use_dom, str) and use_dom.lower() == 'true')
|
|
103
|
+
|
|
101
104
|
# Calculate scale factor to cap resolution at 1080p (1920x1080)
|
|
102
105
|
scale_width = MAX_IMAGE_WIDTH / screen_size.width if screen_size.width > MAX_IMAGE_WIDTH else 1.0
|
|
103
106
|
scale_height = MAX_IMAGE_HEIGHT / screen_size.height if screen_size.height > MAX_IMAGE_HEIGHT else 1.0
|
|
@@ -201,7 +204,8 @@ def scroll_tool(loc:list[int]=None,type:Literal['horizontal','vertical']='vertic
|
|
|
201
204
|
)
|
|
202
205
|
)
|
|
203
206
|
@with_analytics(analytics, "Move-Tool")
|
|
204
|
-
def move_tool(loc:list[int], drag:bool=False, ctx: Context = None)->str:
|
|
207
|
+
def move_tool(loc:list[int], drag:bool|str=False, ctx: Context = None)->str:
|
|
208
|
+
drag = drag is True or (isinstance(drag, str) and drag.lower() == 'true')
|
|
205
209
|
if len(loc) != 2:
|
|
206
210
|
raise ValueError("loc must be a list of exactly 2 integers [x, y]")
|
|
207
211
|
x,y=loc[0],loc[1]
|
|
@@ -256,7 +260,8 @@ def wait_tool(duration:int, ctx: Context = None)->str:
|
|
|
256
260
|
)
|
|
257
261
|
)
|
|
258
262
|
@with_analytics(analytics, "Scrape-Tool")
|
|
259
|
-
def scrape_tool(url:str,use_dom:bool=False, ctx: Context = None)->str:
|
|
263
|
+
def scrape_tool(url:str,use_dom:bool|str=False, ctx: Context = None)->str:
|
|
264
|
+
use_dom = use_dom is True or (isinstance(use_dom, str) and use_dom.lower() == 'true')
|
|
260
265
|
if not use_dom:
|
|
261
266
|
content=desktop.scrape(url)
|
|
262
267
|
return f'URL:{url}\nContent:\n{content}'
|
|
@@ -284,7 +289,8 @@ def scrape_tool(url:str,use_dom:bool=False, ctx: Context = None)->str:
|
|
|
284
289
|
)
|
|
285
290
|
)
|
|
286
291
|
@with_analytics(analytics, "Multi-Select-Tool")
|
|
287
|
-
def multi_select_tool(locs:list[list[int]], press_ctrl:bool=True, ctx: Context = None)->str:
|
|
292
|
+
def multi_select_tool(locs:list[list[int]], press_ctrl:bool|str=True, ctx: Context = None)->str:
|
|
293
|
+
press_ctrl = press_ctrl is True or (isinstance(press_ctrl, str) and press_ctrl.lower() == 'true')
|
|
288
294
|
desktop.multi_select(press_ctrl,locs)
|
|
289
295
|
elements_str = '\n'.join([f"({loc[0]},{loc[1]})" for loc in locs])
|
|
290
296
|
return f"Multi-selected elements at:\n{elements_str}"
|
windows_mcp/desktop/service.py
CHANGED
|
@@ -46,7 +46,12 @@ class Desktop:
|
|
|
46
46
|
self.tree=Tree(self)
|
|
47
47
|
self.desktop_state=None
|
|
48
48
|
|
|
49
|
-
def get_state(self,use_annotation:bool=True,use_vision:bool=False,use_dom:bool=False,as_bytes:bool=False,scale:float=1.0)->DesktopState:
|
|
49
|
+
def get_state(self,use_annotation:bool|str=True,use_vision:bool|str=False,use_dom:bool|str=False,as_bytes:bool|str=False,scale:float=1.0)->DesktopState:
|
|
50
|
+
use_annotation = use_annotation is True or (isinstance(use_annotation, str) and use_annotation.lower() == 'true')
|
|
51
|
+
use_vision = use_vision is True or (isinstance(use_vision, str) and use_vision.lower() == 'true')
|
|
52
|
+
use_dom = use_dom is True or (isinstance(use_dom, str) and use_dom.lower() == 'true')
|
|
53
|
+
as_bytes = as_bytes is True or (isinstance(as_bytes, str) and as_bytes.lower() == 'true')
|
|
54
|
+
|
|
50
55
|
start_time = time()
|
|
51
56
|
|
|
52
57
|
controls_handles=self.get_controls_handles() # Taskbar,Program Manager,Apps, Dialogs
|
|
@@ -418,7 +423,8 @@ class Desktop:
|
|
|
418
423
|
else:
|
|
419
424
|
pg.press(''.join(shortcut))
|
|
420
425
|
|
|
421
|
-
def multi_select(self,press_ctrl:bool=False,locs:list[tuple[int,int]]=[]):
|
|
426
|
+
def multi_select(self,press_ctrl:bool|str=False,locs:list[tuple[int,int]]=[]):
|
|
427
|
+
press_ctrl = press_ctrl is True or (isinstance(press_ctrl, str) and press_ctrl.lower() == 'true')
|
|
422
428
|
if press_ctrl:
|
|
423
429
|
pg.keyDown('ctrl')
|
|
424
430
|
for loc in locs:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: windows-mcp
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.2
|
|
4
4
|
Summary: Lightweight MCP Server for interacting with Windows Operating System.
|
|
5
5
|
Project-URL: homepage, https://github.com/CursorTouch
|
|
6
6
|
Author-email: Jeomon George <jeogeoalukka@gmail.com>
|
|
@@ -73,6 +73,8 @@ Description-Content-Type: text/markdown
|
|
|
73
73
|
mcp-name: io.github.CursorTouch/Windows-MCP
|
|
74
74
|
|
|
75
75
|
## Updates
|
|
76
|
+
- v0.6.2: Extended boolean parameter compatibility and updated `manifest.json` for `mcpb` compatibility in Claude Desktop (Thanks to bryan-anthropic).
|
|
77
|
+
- v0.6.1: Fixed `Shell` tool output issues and improved boolean parameter compatibility (Thanks to @yakub268).
|
|
76
78
|
- Windows-MCP reached `1M+ Users` in [Claude Desktop Extensiosn](https://claude.ai/directory).
|
|
77
79
|
- Windows-MCP is now available on [PyPI](https://pypi.org/project/windows-mcp/) (thus supports `uvx windows-mcp`)
|
|
78
80
|
- Windows-MCP is added to [MCP Registry](https://github.com/modelcontextprotocol/registry)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
windows_mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
windows_mcp/__main__.py,sha256=
|
|
2
|
+
windows_mcp/__main__.py,sha256=IEiOEC1DiVxvOFCg82fba-94TXQeqYGW0uC9dq5QqdI,15040
|
|
3
3
|
windows_mcp/analytics.py,sha256=yir5IWAI_YN9dmy9KOVIRYsZbeAO12INcxvY2WJSWCU,6307
|
|
4
4
|
windows_mcp/desktop/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
windows_mcp/desktop/config.py,sha256=LxMWSyYOUfMKzkk5ts46dV1NrAnukS2zHjTfyEKRc-A,364
|
|
6
|
-
windows_mcp/desktop/service.py,sha256=
|
|
6
|
+
windows_mcp/desktop/service.py,sha256=Vrq3tHYThWXuV50cj63JGzP-Mx22UiU5Rm0G2TUQiCc,30994
|
|
7
7
|
windows_mcp/desktop/views.py,sha256=pkIJQrriAoKyCxdWP1li4MoThB_Us0xFn21Pbm7eHJ4,2265
|
|
8
8
|
windows_mcp/tree/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
windows_mcp/tree/cache_utils.py,sha256=xuS4Gt96Az8eYoo9cu464NRZWuGQngDCgAhT2iYX-j8,5361
|
|
@@ -22,8 +22,8 @@ windows_mcp/vdm/core.py,sha256=E5GxlWAxrhXMZm635oXQ_vLFo0tBkPuM0JFwtW7nANE,22216
|
|
|
22
22
|
windows_mcp/watchdog/__init__.py,sha256=ExC350_KZXwTENsLQfESSPUJZfwsEjrAvGtLRPCqqjk,31
|
|
23
23
|
windows_mcp/watchdog/event_handlers.py,sha256=mHw2msgAjkGuYwTp-U6tYX-gL4S7N1J1HQNmyQ-sdVk,2052
|
|
24
24
|
windows_mcp/watchdog/service.py,sha256=9Tpoq8Ma3MF0Zq7yJKkLOx8NCm4bcUeJY_P1GPkjeLk,9099
|
|
25
|
-
windows_mcp-0.6.
|
|
26
|
-
windows_mcp-0.6.
|
|
27
|
-
windows_mcp-0.6.
|
|
28
|
-
windows_mcp-0.6.
|
|
29
|
-
windows_mcp-0.6.
|
|
25
|
+
windows_mcp-0.6.2.dist-info/METADATA,sha256=kS3y9ehhWdU9vo8VzebO2PFL7gVud1budv4LVcUq9QA,14806
|
|
26
|
+
windows_mcp-0.6.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
27
|
+
windows_mcp-0.6.2.dist-info/entry_points.txt,sha256=wW8NcVQ_OJK5e5GemZSE_nOKyxfUtBPq2acFLszRwaw,58
|
|
28
|
+
windows_mcp-0.6.2.dist-info/licenses/LICENSE.md,sha256=U1UM4Xi_IX-jHnHjGT0rETNia-Ck8gd92iSQMqQ6a8Y,1089
|
|
29
|
+
windows_mcp-0.6.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|