Qwen3 MCP Server
A complete MCP server that gives LM Studio's Qwen3 (or any local LLM) full coding agent capabilities including 80+ tools for file operations, command execution, git, web search, memory, planning, and a full skills system.
README
Note: This is still under development and is a preview. Currently testing on Qwen3 Coder Next REAP 40B A3B from here https://huggingface.co/lovedheart/Qwen3-Coder-Next-REAP-40B-A3B-GGUF/resolve/main/Qwen3-Coder-Next-REAP-40B-A3B-Q4_K_XL.gguf
Qwen3 MCP Server
A complete MCP server that gives LM Studio's Qwen3 (or any local LLM) full coding agent capabilities including 80+ tools for file operations, command execution, git, web search, memory, planning, and a full skills system.
Features
-
Two Server Modes:
- HTTP Mode - Browser-based chat at http://localhost:3847/chat.html
- MCP Mode - Direct integration with LM Studio's MCP interface
-
80+ Tools including:
- File operations (read, write, edit, search, glob)
- Command execution (shell, background processes)
- Git operations (status, diff, commit, branch, push, pull)
- Web tools (search, image search, URL fetch)
- Memory & planning (notes, scratchpads, task lists, plans)
- Media (read images, PDFs, screenshots)
- Jupyter notebook support
- ComfyUI integration (32 workflow tools)
- GitHub Blog (Jekyll blog creation, themes, deployment)
-
Tool Name Aliases - Server-side routing handles common model hallucinations (e.g.,
edit->edit_file,bash->execute_command) -
Skills System - 16 pre-installed skills + install more from awesome-agent-skills
Quick Start
HTTP Mode (Browser Chat)
# Start the server
start-chat.bat
# Open in browser
http://localhost:3847/chat.html
MCP Mode (LM Studio Direct)
Add to your LM Studio MCP config (~/.lmstudio/mcp-servers.json):
{
"mcpServers": {
"qwen3-mcp": {
"command": "node",
"args": ["<YOUR_PATH>/src/index.js"],
"cwd": "<YOUR_PATH>"
}
}
}
Replace <YOUR_PATH> with the actual path where you installed the server.
Then restart LM Studio.
Installation
Prerequisites
- Node.js 18+
- LM Studio with a model loaded (Qwen3 recommended)
Quick Setup (Windows)
cd <YOUR_PATH>
setup.bat
This will:
- Install npm dependencies
- Create required directories
- Configure LM Studio MCP automatically
Manual Setup
# Install dependencies
npm install
# Setup MCP config for LM Studio
npm run setup
npm Scripts
| Command | Description |
|---|---|
npm run setup |
Configure LM Studio MCP |
npm run start |
Start HTTP server (port 3847) |
npm run mcp |
Run MCP server directly (stdio) |
npm run dev |
Start with auto-reload |
Project Structure
qwen3-mcp/
├── src/
│ ├── index.js # MCP server (stdio mode)
│ └── tools/ # Tool implementations
│ ├── filesystem.js # File operations
│ ├── edit.js # File editing
│ ├── bash.js # Command execution
│ ├── git.js # Git operations
│ ├── search.js # Glob/grep search
│ ├── web.js # Web search, fetch
│ ├── memory.js # Notes, scratchpads
│ ├── planning.js # Plans, task tracking
│ ├── tasks.js # Todo lists
│ ├── thinking.js # Reasoning tools
│ ├── context.js # Conversation context
│ ├── interaction.js # User prompts
│ ├── media.js # Images, PDFs
│ ├── notebook.js # Jupyter support
│ ├── comfyui.js # ComfyUI workflows
│ ├── github-blog.js # Jekyll blog tools
│ └── skills.js # Skills system
├── frontend/
│ ├── server.js # HTTP server (port 3847)
│ ├── chat.html # Browser chat interface
│ └── index.html # Image viewer interface
├── skills/ # Installed skills (16)
│ ├── chrome-extension/ # Chrome extension development (MV3)
│ ├── code-review/ # Code review methodology
│ ├── comfyui-nodes/ # ComfyUI custom node development
│ ├── comfyui-workflow/ # ComfyUI workflow creation
│ ├── differential-review/ # Security-focused diff review
│ ├── docx/ # Word document creation
│ ├── frontend-design/ # Frontend UI/UX
│ ├── github-blog/ # Jekyll blog for GitHub Pages
│ ├── mcp-builder/ # Build MCP servers
│ ├── modern-python/ # Python tooling (uv, ruff)
│ ├── react-best-practices/ # React patterns (Vercel)
│ ├── shadcn-ui/ # Modern component library
│ ├── static-analysis/ # CodeQL, Semgrep, SARIF
│ ├── testing-handbook-skills/ # Fuzzers, sanitizers
│ ├── web-artifacts-builder/ # HTML/React prototypes
│ └── web-design-guidelines/ # UI/UX fundamentals
├── start-chat.bat # Start HTTP server
├── stop-chat.bat # Stop server
├── restart-chat.bat # Restart server
└── install-skill.bat # Install skills from GitHub
Available Tools (80+)
File Operations
| Tool | Description |
|---|---|
read_file |
Read file contents with line numbers (params: file_path, offset, limit) |
write_file |
Write/create files (params: file_path, content) |
edit_file |
Find and replace in files (params: file_path, old_string, new_string) |
list_directory |
List directory contents (params: path) |
create_directory |
Create directories (params: path) |
delete_file |
Delete files (params: path) |
move_file |
Move/rename files (params: source, destination) |
copy_file |
Copy files (params: source, destination) |
file_info |
Get file metadata (params: path) |
get_working_directory |
Get current working directory |
set_working_directory |
Set working directory (params: path) |
Edit Tools
| Tool | Description |
|---|---|
insert_at_line |
Insert at specific line (params: file_path, line, content) |
replace_lines |
Replace line range (params: file_path, start_line, end_line, content) |
append_to_file |
Append to file (params: file_path, content) |
prepend_to_file |
Prepend to file (params: file_path, content) |
Search
| Tool | Description |
|---|---|
glob_search |
Find files by pattern (params: pattern, cwd) |
grep_search |
Search file contents with regex (params: pattern, path) |
find_definition |
Find code definitions (params: name, path) |
Command Execution
| Tool | Description |
|---|---|
execute_command |
Run shell commands (params: command, cwd, timeout) |
execute_background |
Run commands in background (params: command, cwd) |
read_output |
Read background process output (params: session_id) |
kill_session |
Kill background process (params: session_id) |
list_sessions |
List running processes |
Git
| Tool | Description |
|---|---|
git_status |
Repository status |
git_diff |
Show changes |
git_log |
Commit history |
git_add |
Stage files |
git_commit |
Create commits |
git_branch |
List/create branches |
git_checkout |
Switch branches |
git_push |
Push to remote |
git_pull |
Pull from remote |
git_clone |
Clone repositories |
Web
| Tool | Description |
|---|---|
web_search |
DuckDuckGo search (params: query) |
web_image_search |
Bing image search with download (params: query) |
web_fetch |
Fetch webpage content (params: url) |
web_fetch_image |
Download image from URL (params: url) |
Memory & Planning
| Tool | Description |
|---|---|
memory_store |
Store notes with tags |
memory_recall |
Search notes |
memory_list |
List all notes |
scratchpad_write |
Write to scratchpad |
scratchpad_read |
Read scratchpad |
plan_create |
Create execution plans (params: goal, steps) |
plan_status |
Check plan progress |
task_add |
Add todo items |
task_list |
List todos |
GitHub Blog
| Tool | Description |
|---|---|
blog_init |
Initialize a Jekyll blog for GitHub Pages |
blog_post_create |
Create a new blog post |
blog_page_create |
Create a static page |
blog_category_create |
Create a category page |
blog_post_list |
List all blog posts |
blog_nav_update |
Update navigation menu |
blog_deploy |
Deploy to GitHub Pages |
blog_config |
Update blog configuration |
blog_theme |
Apply theme preset or custom colors |
blog_theme_list |
List available themes |
blog_jekyll_theme |
Apply a Jekyll remote theme |
Skills
| Tool | Description |
|---|---|
list_skills |
List installed skills |
load_skill |
Load skill instructions |
install_skill |
Install from GitHub |
Utilities
| Tool | Description |
|---|---|
get_current_time |
Current date/time |
calculator |
Math expressions |
think |
Record thinking notes |
ask_user |
Prompt user for input |
Skills System
Skills are instruction packages that teach the AI specialized tasks. The model auto-detects which skill to load based on your request.
Installed Skills (16)
Code Quality & Security:
- code-review - Code review methodology
- differential-review - Security-focused diff review
- static-analysis - CodeQL, Semgrep, SARIF
- testing-handbook-skills - Fuzzers, sanitizers, coverage
Web Development:
- react-best-practices - React patterns (Vercel)
- web-design-guidelines - UI/UX fundamentals
- shadcn-ui - Modern component library
- frontend-design - Frontend UI/UX
- web-artifacts-builder - HTML/React prototypes
ComfyUI & Creative:
- comfyui-nodes - Custom node development (V1 + V3 API)
- comfyui-workflow - Workflow creation (SD1.5/SDXL/SD3.5/Flux)
Development Tools:
- chrome-extension - Chrome extension development (MV3)
- mcp-builder - Build MCP servers
- modern-python - Python tooling (uv, ruff, pytest)
- docx - Word document creation
- github-blog - Jekyll blogs for GitHub Pages
Install More Skills
install-skill.bat https://github.com/anthropics/skills/tree/main/skills/pptx
Using Skills
Skills auto-load when they match your request. You can also load them manually:
"What skills do I have?"
"Load the comfyui-nodes skill"
"Use the docx skill to create a report"
Configuration
HTTP Server Port
Edit frontend/server.js:
const PORT = 3847;
Environment Variables
| Variable | Default | Description |
|---|---|---|
IMAGE_DOWNLOAD_DIR |
~/lmstudio-images |
Image download location |
LM Studio Setup (HTTP Mode)
- Load a model (Qwen3 recommended)
- Enable API server (default: localhost:1234)
- Open http://localhost:3847/chat.html
- Enter API token if authentication is enabled
LM Studio Setup (MCP Mode)
- Add MCP config (see Quick Start above)
- Restart LM Studio
- Tools appear automatically in model context
API Endpoints (HTTP Mode)
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Image viewer UI |
/chat.html |
GET | Chat interface |
/tool |
POST | Execute tool {name, args} |
/skills |
GET | List skills (JSON) |
/skill?name=X |
GET | Get skill details |
Testing
# Test a tool
curl -X POST http://localhost:3847/tool \
-H "Content-Type: application/json" \
-d '{"name":"get_current_time","args":{}}'
# List skills
curl http://localhost:3847/skills
Troubleshooting
Server Issues
# Check if running
curl http://localhost:3847/skills
# Restart
restart-chat.bat
# Force stop
stop-chat.bat
MCP Connection Issues
- Check LM Studio console for errors
- Verify path in mcp-servers.json is correct
- Run
node src/index.jsmanually to test
read_file Timeouts / WebSocket Errors
The read_file tool defaults to 500 lines to prevent LM Studio WebSocket timeouts.
For large files, use pagination:
read_file with offset=1, limit=100 # Lines 1-100
read_file with offset=101, limit=100 # Lines 101-200
Tool Name Errors
If the model calls wrong tool names (e.g., edit instead of edit_file), the server has built-in aliases that route common mistakes. If you still see errors, update the system prompt in LM Studio — see SYSTEM_PROMPT.md for the correct prompt.
Tool Errors
- Check browser console (F12) for HTTP mode
- Verify working directory permissions
- Check LM Studio model supports function calling
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.