windows-mcp 0.5.2__tar.gz → 0.5.4__tar.gz
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-0.5.2 → windows_mcp-0.5.4}/.gitignore +1 -1
- windows_mcp-0.5.4/.python-version +1 -0
- windows_mcp-0.5.4/CONTRIBUTING.md +384 -0
- {windows_mcp-0.5.2 → windows_mcp-0.5.4}/PKG-INFO +91 -56
- {windows_mcp-0.5.2 → windows_mcp-0.5.4}/README.md +90 -54
- windows_mcp-0.5.4/SECURITY.md +304 -0
- windows_mcp-0.5.4/assets/demo1.mov +0 -0
- windows_mcp-0.5.4/assets/demo2.mov +0 -0
- windows_mcp-0.5.4/assets/logo.png +0 -0
- windows_mcp-0.5.4/assets/screenshots/screenshot_1.png +0 -0
- windows_mcp-0.5.4/assets/screenshots/screenshot_2.png +0 -0
- windows_mcp-0.5.4/assets/screenshots/screenshot_3.png +0 -0
- windows_mcp-0.5.4/manifest.json +99 -0
- windows_mcp-0.5.4/notebook.ipynb +187 -0
- {windows_mcp-0.5.2 → windows_mcp-0.5.4}/pyproject.toml +40 -42
- windows_mcp-0.5.4/server.json +23 -0
- windows_mcp-0.5.2/main.py → windows_mcp-0.5.4/src/windows_mcp/__main__.py +38 -17
- {windows_mcp-0.5.2/src → windows_mcp-0.5.4/src/windows_mcp}/desktop/service.py +9 -6
- {windows_mcp-0.5.2/src → windows_mcp-0.5.4/src/windows_mcp}/desktop/views.py +1 -1
- {windows_mcp-0.5.2/src → windows_mcp-0.5.4/src/windows_mcp}/tree/service.py +89 -36
- {windows_mcp-0.5.2/src → windows_mcp-0.5.4/src/windows_mcp}/tree/views.py +8 -0
- windows_mcp-0.5.4/uv.lock +1483 -0
- {windows_mcp-0.5.2 → windows_mcp-0.5.4}/LICENSE.md +0 -0
- {windows_mcp-0.5.2/src → windows_mcp-0.5.4/src/windows_mcp}/__init__.py +0 -0
- {windows_mcp-0.5.2/src → windows_mcp-0.5.4/src/windows_mcp}/desktop/__init__.py +0 -0
- {windows_mcp-0.5.2/src → windows_mcp-0.5.4/src/windows_mcp}/desktop/config.py +0 -0
- {windows_mcp-0.5.2/src → windows_mcp-0.5.4/src/windows_mcp}/tree/__init__.py +0 -0
- {windows_mcp-0.5.2/src → windows_mcp-0.5.4/src/windows_mcp}/tree/config.py +0 -0
- {windows_mcp-0.5.2/src → windows_mcp-0.5.4/src/windows_mcp}/tree/utils.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.13
|
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
# Contributing to Windows-MCP
|
|
2
|
+
|
|
3
|
+
Thank you for your interest in contributing to Windows-MCP! We welcome contributions from the community to help make this project better. This document provides guidelines and instructions for contributing.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Code of Conduct](#code-of-conduct)
|
|
8
|
+
- [Getting Started](#getting-started)
|
|
9
|
+
- [Prerequisites](#prerequisites)
|
|
10
|
+
- [Development Environment Setup](#development-environment-setup)
|
|
11
|
+
- [Development Workflow](#development-workflow)
|
|
12
|
+
- [Branching Strategy](#branching-strategy)
|
|
13
|
+
- [Making Changes](#making-changes)
|
|
14
|
+
- [Commit Messages](#commit-messages)
|
|
15
|
+
- [Code Style](#code-style)
|
|
16
|
+
- [Testing](#testing)
|
|
17
|
+
- [Running Tests](#running-tests)
|
|
18
|
+
- [Adding Tests](#adding-tests)
|
|
19
|
+
- [Pull Requests](#pull-requests)
|
|
20
|
+
- [Before Submitting](#before-submitting)
|
|
21
|
+
- [Pull Request Process](#pull-request-process)
|
|
22
|
+
- [Review Process](#review-process)
|
|
23
|
+
- [Documentation](#documentation)
|
|
24
|
+
- [Reporting Issues](#reporting-issues)
|
|
25
|
+
- [Security Vulnerabilities](#security-vulnerabilities)
|
|
26
|
+
- [Getting Help](#getting-help)
|
|
27
|
+
|
|
28
|
+
## Code of Conduct
|
|
29
|
+
|
|
30
|
+
By participating in this project, you agree to maintain a respectful and inclusive environment. We expect all contributors to:
|
|
31
|
+
|
|
32
|
+
- Be respectful and considerate in communication
|
|
33
|
+
- Welcome newcomers and help them get started
|
|
34
|
+
- Accept constructive criticism gracefully
|
|
35
|
+
- Focus on what's best for the community and project
|
|
36
|
+
|
|
37
|
+
## Getting Started
|
|
38
|
+
|
|
39
|
+
### Prerequisites
|
|
40
|
+
|
|
41
|
+
Before you begin, ensure you have:
|
|
42
|
+
|
|
43
|
+
- **Windows OS**: Windows 7, 8, 8.1, 10, or 11
|
|
44
|
+
- **Python 3.13+**: [Download Python](https://www.python.org/downloads/)
|
|
45
|
+
- **UV Package Manager**: Install with `pip install uv` or see [UV documentation](https://github.com/astral-sh/uv)
|
|
46
|
+
- **Git**: [Download Git](https://git-scm.com/downloads)
|
|
47
|
+
- **A GitHub account**: [Sign up here](https://github.com/join)
|
|
48
|
+
|
|
49
|
+
### Development Environment Setup
|
|
50
|
+
|
|
51
|
+
1. **Fork the Repository**
|
|
52
|
+
|
|
53
|
+
Click the "Fork" button on the [Windows-MCP repository](https://github.com/CursorTouch/Windows-MCP) to create your own copy.
|
|
54
|
+
|
|
55
|
+
2. **Clone Your Fork**
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
git clone https://github.com/YOUR_USERNAME/Windows-MCP.git
|
|
59
|
+
cd Windows-MCP
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
3. **Add Upstream Remote**
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
git remote add upstream https://github.com/CursorTouch/Windows-MCP.git
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
4. **Install Dependencies**
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
uv sync
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
5. **Verify Installation**
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
uv run main.py --help
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Development Workflow
|
|
81
|
+
|
|
82
|
+
### Branching Strategy
|
|
83
|
+
|
|
84
|
+
- **`main`** branch contains the latest stable code
|
|
85
|
+
- Create feature branches from `main` using descriptive names:
|
|
86
|
+
- Features: `feature/add-new-tool`
|
|
87
|
+
- Bug fixes: `fix/click-tool-coordinates`
|
|
88
|
+
- Documentation: `docs/update-readme`
|
|
89
|
+
- Refactoring: `refactor/desktop-service`
|
|
90
|
+
|
|
91
|
+
### Making Changes
|
|
92
|
+
|
|
93
|
+
1. **Create a New Branch**
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
git checkout -b feature/your-feature-name
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
2. **Make Your Changes**
|
|
100
|
+
|
|
101
|
+
- Write clean, readable code
|
|
102
|
+
- Follow the existing code structure
|
|
103
|
+
- Add comments for complex logic
|
|
104
|
+
- Update documentation as needed
|
|
105
|
+
|
|
106
|
+
3. **Test Your Changes**
|
|
107
|
+
|
|
108
|
+
- Test manually in a safe environment (VM recommended)
|
|
109
|
+
- Add automated tests if applicable
|
|
110
|
+
- Ensure existing functionality isn't broken
|
|
111
|
+
|
|
112
|
+
4. **Commit Your Changes**
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
git add .
|
|
116
|
+
git commit -m "Add feature: description of your changes"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Commit Messages
|
|
120
|
+
|
|
121
|
+
While we don't enforce a strict commit message format, please make your commits informative:
|
|
122
|
+
|
|
123
|
+
**Good examples:**
|
|
124
|
+
- `Add support for multi-monitor setups in State-Tool`
|
|
125
|
+
- `Fix Click-Tool coordinate offset on high DPI displays`
|
|
126
|
+
- `Update README with Perplexity Desktop installation steps`
|
|
127
|
+
- `Refactor Desktop class to improve error handling`
|
|
128
|
+
|
|
129
|
+
**Avoid:**
|
|
130
|
+
- `fix bug`
|
|
131
|
+
- `update`
|
|
132
|
+
- `changes`
|
|
133
|
+
|
|
134
|
+
### Code Style
|
|
135
|
+
|
|
136
|
+
We use **[Ruff](https://github.com/astral-sh/ruff)** for code formatting and linting.
|
|
137
|
+
|
|
138
|
+
**Key Guidelines:**
|
|
139
|
+
- **Line length**: 100 characters maximum
|
|
140
|
+
- **Quotes**: Use double quotes for strings
|
|
141
|
+
- **Naming conventions**: Follow PEP 8
|
|
142
|
+
- `snake_case` for functions and variables
|
|
143
|
+
- `PascalCase` for classes
|
|
144
|
+
- `UPPER_CASE` for constants
|
|
145
|
+
- **Type hints**: Add type annotations to function signatures
|
|
146
|
+
- **Docstrings**: Use Google-style docstrings for all public functions and classes
|
|
147
|
+
|
|
148
|
+
**Example:**
|
|
149
|
+
|
|
150
|
+
```python
|
|
151
|
+
def click_tool(
|
|
152
|
+
loc: list[int],
|
|
153
|
+
button: Literal['left', 'right', 'middle'] = 'left',
|
|
154
|
+
clicks: int = 1
|
|
155
|
+
) -> str:
|
|
156
|
+
"""Click on UI elements at specific coordinates.
|
|
157
|
+
|
|
158
|
+
Args:
|
|
159
|
+
loc: List of [x, y] coordinates to click
|
|
160
|
+
button: Mouse button to use (left, right, or middle)
|
|
161
|
+
clicks: Number of clicks (1=single, 2=double, 3=triple)
|
|
162
|
+
|
|
163
|
+
Returns:
|
|
164
|
+
Confirmation message describing the action performed
|
|
165
|
+
|
|
166
|
+
Raises:
|
|
167
|
+
ValueError: If loc doesn't contain exactly 2 integers
|
|
168
|
+
"""
|
|
169
|
+
if len(loc) != 2:
|
|
170
|
+
raise ValueError("Location must be a list of exactly 2 integers [x, y]")
|
|
171
|
+
# Implementation...
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Format Code:**
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
ruff format .
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Run Linter:**
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
ruff check .
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Testing
|
|
187
|
+
|
|
188
|
+
### Running Tests
|
|
189
|
+
|
|
190
|
+
If the project has tests (check the `tests/` directory):
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
pytest
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Run specific test files:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
pytest tests/test_desktop.py
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Run with coverage:
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
pytest --cov=src tests/
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Adding Tests
|
|
209
|
+
|
|
210
|
+
When adding new features:
|
|
211
|
+
|
|
212
|
+
1. **Create test files** in the `tests/` directory matching the module structure
|
|
213
|
+
2. **Write unit tests** for individual functions
|
|
214
|
+
3. **Write integration tests** for tool workflows
|
|
215
|
+
4. **Use fixtures** for common test setup
|
|
216
|
+
5. **Mock external dependencies** (Windows API calls, file system operations)
|
|
217
|
+
|
|
218
|
+
**Example Test:**
|
|
219
|
+
|
|
220
|
+
```python
|
|
221
|
+
import pytest
|
|
222
|
+
from src.desktop.service import Desktop
|
|
223
|
+
|
|
224
|
+
def test_click_tool_validates_coordinates():
|
|
225
|
+
"""Test that click_tool raises ValueError for invalid coordinates."""
|
|
226
|
+
with pytest.raises(ValueError, match="exactly 2 integers"):
|
|
227
|
+
click_tool([100]) # Missing y coordinate
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Pull Requests
|
|
231
|
+
|
|
232
|
+
### Before Submitting
|
|
233
|
+
|
|
234
|
+
- [ ] Code follows the project's style guidelines
|
|
235
|
+
- [ ] All tests pass (if applicable)
|
|
236
|
+
- [ ] Documentation is updated (README, docstrings, etc.)
|
|
237
|
+
- [ ] Commit messages are clear and descriptive
|
|
238
|
+
- [ ] Changes are tested in a safe environment (VM recommended)
|
|
239
|
+
- [ ] No sensitive information (API keys, passwords) is included
|
|
240
|
+
|
|
241
|
+
### Pull Request Process
|
|
242
|
+
|
|
243
|
+
1. **Update Your Branch**
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
git fetch upstream
|
|
247
|
+
git rebase upstream/main
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
2. **Push to Your Fork**
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
git push origin feature/your-feature-name
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
3. **Create Pull Request**
|
|
257
|
+
|
|
258
|
+
- Go to the [Windows-MCP repository](https://github.com/CursorTouch/Windows-MCP)
|
|
259
|
+
- Click "New Pull Request"
|
|
260
|
+
- Select your fork and branch
|
|
261
|
+
- Fill out the PR template with:
|
|
262
|
+
- **Description**: What does this PR do?
|
|
263
|
+
- **Motivation**: Why is this change needed?
|
|
264
|
+
- **Testing**: How was this tested?
|
|
265
|
+
- **Screenshots**: If applicable (UI changes, new features)
|
|
266
|
+
- **Related Issues**: Link any related issues
|
|
267
|
+
|
|
268
|
+
4. **Respond to Feedback**
|
|
269
|
+
|
|
270
|
+
- Address reviewer comments promptly
|
|
271
|
+
- Make requested changes in new commits
|
|
272
|
+
- Push updates to the same branch
|
|
273
|
+
|
|
274
|
+
### Review Process
|
|
275
|
+
|
|
276
|
+
- Maintainers will review your PR within a few days
|
|
277
|
+
- You may be asked to make changes or provide clarification
|
|
278
|
+
- Once approved, a maintainer will merge your PR
|
|
279
|
+
- Your contribution will be acknowledged in release notes
|
|
280
|
+
|
|
281
|
+
## Documentation
|
|
282
|
+
|
|
283
|
+
Good documentation is crucial! When contributing:
|
|
284
|
+
|
|
285
|
+
### Code Documentation
|
|
286
|
+
|
|
287
|
+
- **Docstrings**: Add to all public functions, classes, and methods
|
|
288
|
+
- **Comments**: Explain complex logic or non-obvious decisions
|
|
289
|
+
- **Type hints**: Help users and tools understand your code
|
|
290
|
+
|
|
291
|
+
### User Documentation
|
|
292
|
+
|
|
293
|
+
Update relevant documentation files:
|
|
294
|
+
|
|
295
|
+
- **README.md**: For user-facing features or installation changes
|
|
296
|
+
- **SECURITY.md**: For security-related changes
|
|
297
|
+
- **CONTRIBUTING.md**: For development process changes
|
|
298
|
+
|
|
299
|
+
### Tool Documentation
|
|
300
|
+
|
|
301
|
+
When adding or modifying tools:
|
|
302
|
+
|
|
303
|
+
1. Update the tool's `description` parameter in `main.py`
|
|
304
|
+
2. Add appropriate `ToolAnnotations`
|
|
305
|
+
3. Update the tools list in `README.md`
|
|
306
|
+
4. Update `manifest.json` if needed
|
|
307
|
+
|
|
308
|
+
## Reporting Issues
|
|
309
|
+
|
|
310
|
+
Found a bug or have a feature request? Please open an issue!
|
|
311
|
+
|
|
312
|
+
### Bug Reports
|
|
313
|
+
|
|
314
|
+
Include:
|
|
315
|
+
- **Description**: Clear description of the bug
|
|
316
|
+
- **Steps to Reproduce**: Detailed steps to recreate the issue
|
|
317
|
+
- **Expected Behavior**: What should happen
|
|
318
|
+
- **Actual Behavior**: What actually happens
|
|
319
|
+
- **Environment**: Windows version, Python version, MCP client
|
|
320
|
+
- **Screenshots/Logs**: If applicable
|
|
321
|
+
|
|
322
|
+
### Feature Requests
|
|
323
|
+
|
|
324
|
+
Include:
|
|
325
|
+
- **Description**: What feature do you want?
|
|
326
|
+
- **Use Case**: Why is this feature needed?
|
|
327
|
+
- **Proposed Solution**: How might this be implemented?
|
|
328
|
+
- **Alternatives**: Other approaches you've considered
|
|
329
|
+
|
|
330
|
+
## Security Vulnerabilities
|
|
331
|
+
|
|
332
|
+
**DO NOT** report security vulnerabilities through public GitHub issues.
|
|
333
|
+
|
|
334
|
+
Instead, please:
|
|
335
|
+
1. Email the maintainers at [jeogeoalukka@gmail.com](mailto:jeogeoalukka@gmail.com)
|
|
336
|
+
2. Or use [GitHub Security Advisories](https://github.com/CursorTouch/Windows-MCP/security/advisories)
|
|
337
|
+
|
|
338
|
+
See our [Security Policy](SECURITY.md) for more details.
|
|
339
|
+
|
|
340
|
+
## Getting Help
|
|
341
|
+
|
|
342
|
+
Need help with your contribution?
|
|
343
|
+
|
|
344
|
+
- **Discord**: Join our [Discord Community](https://discord.com/invite/Aue9Yj2VzS)
|
|
345
|
+
- **Twitter/X**: Follow [@CursorTouch](https://x.com/CursorTouch)
|
|
346
|
+
- **GitHub Discussions**: Ask questions in [Discussions](https://github.com/CursorTouch/Windows-MCP/discussions)
|
|
347
|
+
- **Issues**: Open an issue for technical questions
|
|
348
|
+
|
|
349
|
+
## Types of Contributions
|
|
350
|
+
|
|
351
|
+
We welcome many types of contributions:
|
|
352
|
+
|
|
353
|
+
### Code Contributions
|
|
354
|
+
|
|
355
|
+
- **New Tools**: Add new MCP tools for Windows automation
|
|
356
|
+
- **Bug Fixes**: Fix issues in existing tools
|
|
357
|
+
- **Performance Improvements**: Optimize code for speed or efficiency
|
|
358
|
+
- **Refactoring**: Improve code structure and maintainability
|
|
359
|
+
|
|
360
|
+
### Non-Code Contributions
|
|
361
|
+
|
|
362
|
+
- **Documentation**: Improve README, guides, or docstrings
|
|
363
|
+
- **Testing**: Add test cases or improve test coverage
|
|
364
|
+
- **Bug Reports**: Report issues with detailed information
|
|
365
|
+
- **Feature Requests**: Suggest new features or improvements
|
|
366
|
+
- **Community Support**: Help others in Discord or Discussions
|
|
367
|
+
- **Translations**: Help translate documentation (future)
|
|
368
|
+
|
|
369
|
+
## Recognition
|
|
370
|
+
|
|
371
|
+
Contributors are recognized in:
|
|
372
|
+
- GitHub contributors page
|
|
373
|
+
- Release notes for significant contributions
|
|
374
|
+
- Special mentions for major features or fixes
|
|
375
|
+
|
|
376
|
+
## License
|
|
377
|
+
|
|
378
|
+
By contributing to Windows-MCP, you agree that your contributions will be licensed under the [MIT License](LICENSE.md).
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
Thank you for contributing to Windows-MCP! Your efforts help make this project better for everyone. 🙏
|
|
383
|
+
|
|
384
|
+
Made with ❤️ by the CursorTouch community
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: windows-mcp
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.4
|
|
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>
|
|
@@ -44,7 +44,6 @@ Requires-Dist: python-levenshtein>=0.27.1
|
|
|
44
44
|
Requires-Dist: pywinauto>=0.6.9
|
|
45
45
|
Requires-Dist: requests>=2.32.3
|
|
46
46
|
Requires-Dist: tabulate>=0.9.0
|
|
47
|
-
Requires-Dist: twine>=6.2.0
|
|
48
47
|
Requires-Dist: uiautomation>=2.0.24
|
|
49
48
|
Description-Content-Type: text/markdown
|
|
50
49
|
|
|
@@ -76,7 +75,7 @@ Description-Content-Type: text/markdown
|
|
|
76
75
|
mcp-name: io.github.CursorTouch/Windows-MCP
|
|
77
76
|
|
|
78
77
|
## Updates
|
|
79
|
-
|
|
78
|
+
- Windows-MCP is now available on [PyPI](https://pypi.org/project/windows-mcp/) (thus supports `uvx`)
|
|
80
79
|
- Windows-MCP is added to [MCP Registry](https://github.com/modelcontextprotocol/registry)
|
|
81
80
|
- Try out 🪟[Windows-Use](https://github.com/CursorTouch/Windows-Use)!!, an agent built using Windows-MCP.
|
|
82
81
|
- Windows-MCP is now featured as Desktop Extension in `Claude Desktop`.
|
|
@@ -114,6 +113,9 @@ mcp-name: io.github.CursorTouch/Windows-MCP
|
|
|
114
113
|
- **Real-Time Interaction**
|
|
115
114
|
Typical latency between actions (e.g., from one mouse click to the next) ranges from **0.7 to 2.5 secs**, and may slightly vary based on the number of active applications and system load, also the inferencing speed of the llm.
|
|
116
115
|
|
|
116
|
+
- **DOM Mode for Browser Automation**
|
|
117
|
+
Special `use_dom=True` mode for State-Tool that focuses exclusively on web page content, filtering out browser UI elements for cleaner, more efficient web automation.
|
|
118
|
+
|
|
117
119
|
## 🛠️Installation
|
|
118
120
|
|
|
119
121
|
### Prerequisites
|
|
@@ -131,23 +133,56 @@ mcp-name: io.github.CursorTouch/Windows-MCP
|
|
|
131
133
|
npm install -g @anthropic-ai/mcpb
|
|
132
134
|
```
|
|
133
135
|
|
|
134
|
-
2. Clone the repository.
|
|
135
136
|
|
|
136
|
-
|
|
137
|
-
git clone https://github.com/CursorTouch/Windows-MCP.git
|
|
137
|
+
2. Configure the extension:
|
|
138
138
|
|
|
139
|
-
|
|
140
|
-
|
|
139
|
+
**Option A: Install from PyPI (Recommended)**
|
|
140
|
+
|
|
141
|
+
Use `uvx` to run the latest version directly from PyPI.
|
|
142
|
+
|
|
143
|
+
Add this to your `claude_desktop_config.json`:
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"mcpServers": {
|
|
147
|
+
"windows-mcp": {
|
|
148
|
+
"command": "uvx",
|
|
149
|
+
"args": [
|
|
150
|
+
"windows-mcp"
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**Option B: Install from Source**
|
|
158
|
+
|
|
159
|
+
1. Clone the repository:
|
|
160
|
+
```shell
|
|
161
|
+
git clone https://github.com/CursorTouch/Windows-MCP.git
|
|
162
|
+
cd Windows-MCP
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
2. Add this to your `claude_desktop_config.json`:
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"mcpServers": {
|
|
169
|
+
"windows-mcp": {
|
|
170
|
+
"command": "uv",
|
|
171
|
+
"args": [
|
|
172
|
+
"--directory",
|
|
173
|
+
"<path to the windows-mcp directory>",
|
|
174
|
+
"run",
|
|
175
|
+
"windows-mcp"
|
|
176
|
+
]
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
```
|
|
141
181
|
|
|
142
|
-
3. Build Desktop Extension `MCPB`:
|
|
143
182
|
|
|
144
|
-
```shell
|
|
145
|
-
npx @anthropic-ai/mcpb pack
|
|
146
|
-
```
|
|
147
183
|
|
|
148
|
-
|
|
184
|
+
3. Open Claude Desktop and enjoy! 🥳
|
|
149
185
|
|
|
150
|
-
Go to `Settings->Extensions->Advance Settings->Install Extension` (locate the `.mcpb` file)-> Install
|
|
151
186
|
|
|
152
187
|
5. Enjoy 🥳.
|
|
153
188
|
|
|
@@ -173,17 +208,32 @@ Go to `Settings->Connectors->Add Connector->Advanced`
|
|
|
173
208
|
|
|
174
209
|
4. Enter the name as `Windows-MCP`, then paste the following JSON in the text area.
|
|
175
210
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
"
|
|
182
|
-
"
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
186
|
-
```
|
|
211
|
+
|
|
212
|
+
**Option A: Install from PyPI (Recommended)**
|
|
213
|
+
|
|
214
|
+
```json
|
|
215
|
+
{
|
|
216
|
+
"command": "uvx",
|
|
217
|
+
"args": [
|
|
218
|
+
"windows-mcp"
|
|
219
|
+
]
|
|
220
|
+
}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
**Option B: Install from Source**
|
|
224
|
+
|
|
225
|
+
```json
|
|
226
|
+
{
|
|
227
|
+
"command": "uv",
|
|
228
|
+
"args": [
|
|
229
|
+
"--directory",
|
|
230
|
+
"<path to the windows-mcp directory>",
|
|
231
|
+
"run",
|
|
232
|
+
"windows-mcp"
|
|
233
|
+
]
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
187
237
|
|
|
188
238
|
5. Click `Save` and Enjoy 🥳.
|
|
189
239
|
|
|
@@ -199,13 +249,9 @@ For additional Claude Desktop integration troubleshooting, see the [Perplexity M
|
|
|
199
249
|
npm install -g @google/gemini-cli
|
|
200
250
|
```
|
|
201
251
|
|
|
202
|
-
2. Clone the repository.
|
|
203
252
|
|
|
204
|
-
|
|
205
|
-
git clone https://github.com/CursorTouch/Windows-MCP.git
|
|
253
|
+
2. Configure the server in `%USERPROFILE%/.gemini/settings.json`:
|
|
206
254
|
|
|
207
|
-
cd Windows-MCP
|
|
208
|
-
```
|
|
209
255
|
|
|
210
256
|
3. Navigate to `%USERPROFILE%/.gemini` in File Explorer and open `settings.json`.
|
|
211
257
|
|
|
@@ -218,17 +264,16 @@ cd Windows-MCP
|
|
|
218
264
|
//MCP Server Config
|
|
219
265
|
"mcpServers": {
|
|
220
266
|
"windows-mcp": {
|
|
221
|
-
"command": "
|
|
267
|
+
"command": "uvx",
|
|
222
268
|
"args": [
|
|
223
|
-
"
|
|
224
|
-
"<path to the windows-mcp directory>",
|
|
225
|
-
"run",
|
|
226
|
-
"main.py"
|
|
269
|
+
"windows-mcp"
|
|
227
270
|
]
|
|
228
271
|
}
|
|
229
272
|
}
|
|
230
273
|
}
|
|
231
274
|
```
|
|
275
|
+
*Note: To run from source, replace the command with `uv` and args with `["--directory", "<path>", "run", "windows-mcp"]`.*
|
|
276
|
+
|
|
232
277
|
|
|
233
278
|
5. Rerun Gemini CLI in terminal. Enjoy 🥳
|
|
234
279
|
</details>
|
|
@@ -240,13 +285,9 @@ cd Windows-MCP
|
|
|
240
285
|
```shell
|
|
241
286
|
npm install -g @qwen-code/qwen-code@latest
|
|
242
287
|
```
|
|
243
|
-
2. Clone the repository.
|
|
244
288
|
|
|
245
|
-
|
|
246
|
-
git clone https://github.com/CursorTouch/Windows-MCP.git
|
|
289
|
+
2. Configure the server in `%USERPROFILE%/.qwen/settings.json`:
|
|
247
290
|
|
|
248
|
-
cd Windows-MCP
|
|
249
|
-
```
|
|
250
291
|
|
|
251
292
|
3. Navigate to `%USERPROFILE%/.qwen/settings.json`.
|
|
252
293
|
|
|
@@ -257,17 +298,16 @@ cd Windows-MCP
|
|
|
257
298
|
//MCP Server Config
|
|
258
299
|
"mcpServers": {
|
|
259
300
|
"windows-mcp": {
|
|
260
|
-
"command": "
|
|
301
|
+
"command": "uvx",
|
|
261
302
|
"args": [
|
|
262
|
-
"
|
|
263
|
-
"<path to the windows-mcp directory>",
|
|
264
|
-
"run",
|
|
265
|
-
"main.py"
|
|
303
|
+
"windows-mcp"
|
|
266
304
|
]
|
|
267
305
|
}
|
|
268
306
|
}
|
|
269
307
|
}
|
|
270
308
|
```
|
|
309
|
+
*Note: To run from source, replace the command with `uv` and args with `["--directory", "<path>", "run", "windows-mcp"]`.*
|
|
310
|
+
|
|
271
311
|
|
|
272
312
|
5. Rerun Qwen Code in terminal. Enjoy 🥳
|
|
273
313
|
</details>
|
|
@@ -279,27 +319,22 @@ cd Windows-MCP
|
|
|
279
319
|
```shell
|
|
280
320
|
npm install -g @openai/codex
|
|
281
321
|
```
|
|
282
|
-
2. Clone the repository.
|
|
283
322
|
|
|
284
|
-
|
|
285
|
-
git clone https://github.com/CursorTouch/Windows-MCP.git
|
|
323
|
+
2. Configure the server in `%USERPROFILE%/.codex/config.toml`:
|
|
286
324
|
|
|
287
|
-
cd Windows-MCP
|
|
288
|
-
```
|
|
289
325
|
3. Navigate to `%USERPROFILE%/.codex/config.toml`.
|
|
290
326
|
|
|
291
327
|
4. Add the `windows-mcp` config in the `config.toml` and save it.
|
|
292
328
|
|
|
293
329
|
```toml
|
|
294
330
|
[mcp_servers.windows-mcp]
|
|
295
|
-
command="
|
|
331
|
+
command="uvx"
|
|
296
332
|
args=[
|
|
297
|
-
"
|
|
298
|
-
"<path to the windows-mcp directory>",
|
|
299
|
-
"run",
|
|
300
|
-
"main.py"
|
|
333
|
+
"windows-mcp"
|
|
301
334
|
]
|
|
302
335
|
```
|
|
336
|
+
*Note: To run from source, replace the command with `uv` and args with `["--directory", "<path>", "run", "windows-mcp"]`.*
|
|
337
|
+
|
|
303
338
|
|
|
304
339
|
5. Rerun Codex CLI in terminal. Enjoy 🥳
|
|
305
340
|
</details>
|
|
@@ -317,7 +352,7 @@ MCP Client can access the following tools to interact with Windows:
|
|
|
317
352
|
- `Move-Tool`: Move mouse pointer.
|
|
318
353
|
- `Shortcut-Tool`: Press keyboard shortcuts (`Ctrl+c`, `Alt+Tab`, etc).
|
|
319
354
|
- `Wait-Tool`: Pause for a defined duration.
|
|
320
|
-
- `State-Tool`: Combined snapshot of default language, browser, active apps and interactive, textual and scrollable elements along with screenshot of the desktop
|
|
355
|
+
- `State-Tool`: Combined snapshot of default language, browser, active apps and interactive, textual and scrollable elements along with screenshot of the desktop. Supports `use_dom=True` for browser content extraction (web page elements only) and `use_vision=True` for including screenshots.
|
|
321
356
|
- `App-Tool`: To launch an application from the start menu, resize or move the window and switch between apps.
|
|
322
357
|
- `Shell-Tool`: To execute PowerShell commands.
|
|
323
358
|
- `Scrape-Tool`: To scrape the entire webpage for information.
|