qwen-mcp
# Qwen-MCP — All-in-One MCP Server & Continuity Memory
A comprehensive, token-optimized **Model Context Protocol (MCP)** server that equips AI agents (Claude, ChatGPT, Qwen Chat, Cursor, Antigravity, etc.) with local system capabilities and cross-session **Continuity Memory**.
---
## Features
### 1. Continuity Memory Suite (Cross-AI Session Persistence)
Enables seamless handoffs across AI clients (Claude web, ChatGPT, Qwen Chat) when quotas run out mid-task:
- `memory_init`: Initializes/loads project workspace under `~/.continuity/projects/<project_id>/` and returns `briefing.md`.
- `memory_read`: Reads `briefing` (default), specific `section` (`architecture`, `todo`, `file-map`, `decisions`), or `full` dump.
- `memory_update`: Updates memory sections incrementally (`replace` or `append`).
- `memory_log`: Appends timestamped events to append-only `log.jsonl`.
- `memory_compact`: Deterministic server-side compaction of historical logs into structured `briefing.md`.
- `memory_list`: Lists all active projects and token estimates.
- `memory_status`: Token breakdown and client tracking.
### 2. Filesystem & Navigation
- `read_file`: Read file contents with optional line range.
- `write_file`: Write/overwrite files with automatic parent directory creation.
- `append_file`: Append content to files.
- `delete_file`: Delete files safely.
- `copy_file`: Copy files with overwrite protection.
- `list_directory`: Tree-view directory listing with file sizes and directory counts.
- `create_directory`: Recursive directory creation.
- `delete_directory`: Safe directory deletion (recursive support).
- `rename`: Move or rename files/directories.
- `get_file_info`: Metadata (size, permissions, timestamps).
- `file_exists`: Check path existence and type.
- `search_files`: Search text patterns across files.
- `find_files`: Find files/directories by glob or regex.
### 3. Command Execution & System Monitoring
- `execute_command`: Execute PowerShell (Windows) or Bash (Unix) commands with streaming logs and configurable timeouts (default 10 min).
- `list_processes`: List running processes with PIDs and memory usage.
- `kill_process`: Terminate processes by PID.
- `list_active_ports`: Inspect listening TCP network ports.
- `get_system_info`: Inspect CPU, RAM, OS, uptime, and disk usage.
- `get_env` / `set_env`: Read and update session environment variables.
### 4. Desktop & GUI Automation
- `take_screenshot`: Capture PNG screenshots of active monitors.
- `mouse_move` / `mouse_click`: Coordinate-based cursor movement and clicking.
- `keyboard_type`: Simulated keystroke typing into active windows.
- `read_clipboard` / `write_clipboard`: System clipboard text access.
- `send_notification`: Native desktop notification alerts.
- `http_request`: Fetch APIs (GET, POST, PUT, DELETE, PATCH) with formatted responses.
### 5. Bundled Skills (MCP Prompts & Resources)
- Bundles the `continuity-memory` skill directly in `skills/continuity-memory/SKILL.md`.
- Exposes skills over the MCP protocol as **MCP Prompts** (`continuity-memory`) and **MCP Resources** (`skill://continuity-memory`).
---
## Quick Start
### Installation
```bash
git clone https://github.com/YOUSEFISLAM-dev/qwen-mcp.git
cd qwen-mcp
npm install
npm run build
```
### Running
```bash
node dist/index.js
```
---
## Configuration
| Environment Variable | Default | Description |
|---|---|---|
| `ALLOWED_ROOT` | `process.cwd()` | Semicolon/comma separated allowed directory roots for filesystem tools (e.g. `C:/Users/youse;F:/workspace`). |
| `CONTINUITY_ROOT` | `~/.continuity` | Storage directory for Continuity Memory projects. |
| `LOG_LEVEL` | `INFO` | `DEBUG`, `INFO`, `WARN`, or `ERROR`. |
---
## Client Integration Examples
### Qwen Chat / Claude Desktop (`claude_desktop_config.json`)
```json
{
"mcpServers": {
"qwen-mcp": {
"command": "node",
"args": ["C:/path/to/qwen-mcp/dist/index.js"],
"env": {
"ALLOWED_ROOT": "C:/Users/youse",
"LOG_LEVEL": "INFO"
}
}
}
}
```
---
## Testing
```bash
# Run test suite (69 tests across 12 suites)
npm test
# Build TypeScript
npm run build
```
## License
MIT
TDQS
Scored across 37 tools
Most tools target distinct resources and actions: files, directories, processes, ports, memory, clipboard, and environment. Mild overlap exists between memory_read and memory_retrieve, and file_exists and get_file_info, but their descriptions are clear enough to prevent frequent misselection.
The toolset is predominantly snake_case with clear verb-noun pairs like write_file, list_directory, kill_process, and send_notification, plus a consistent memory_ prefix. Minor deviations such as rename, file_exists, and http_request, along with noun-first mouse_move and keyboard_type, keep it from being perfectly uniform.
37 tools is well above the typical well-scoped range and even exceeds the 25-tool threshold. The server spans filesystem, process management, memory, desktop automation, clipboard, environment, notifications, and HTTP, making it feel like several merged servers rather than one focused toolset.
Each domain has solid core coverage: filesystem CRUD, search, process listing/killing, memory lifecycle, desktop input, clipboard, environment, and HTTP. Minor gaps exist—such as no explicit scroll/drag, no process spawn tool, and limited filesystem metadata operations—but most can be worked around with execute_command.