Skip to main content
Glama
README.md
# 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

B3.2/5.0

Scored across 37 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count2/5

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.

Completeness4/5

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.

Maintenance

ActivitySlowing
ResponsivenessNo issues