MCP服务器

Qwen3 MCP服务器是一个为本地语言模型(如Qwen3)提供完整编程代理能力的服务,包括80多种工具,涵盖文件操作、命令执行、Git操作、网络搜索、内存管理、计划任务和技能系统等。

  • by marduk191
  • JavaScript
  • 本地部署
  • 15 星标
  • 更新于
在 GitHub 查看 marduk191/qwen3_mcp

使用说明

注意:这仍在开发中,是一个预览版。 目前正在Qwen3 Coder Next REAP 40B A3B上进行测试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服务器

一个完整的MCP服务器,为LM Studio的Qwen3(或任何本地LLM)提供完整的编码代理功能,包括80多种用于文件操作、命令执行、git、网络搜索、内存、规划和完整技能系统的工具。

特性

  • 两种服务器模式:

    • HTTP模式 -基于浏览器的聊天http://localhost:3847/chat.html
    • MCP模式 -与LM Studio的MCP接口直接集成
  • 80+工具 包括:

    • 文件操作(读、写、编辑、搜索、glob)
    • 命令执行(shell、后台进程)
    • Git操作(状态、差异、提交、分支、推送、拉取)
    • Web工具(搜索、图像搜索、URL获取)
    • 记忆和计划(笔记、草稿、任务列表、计划)
    • 媒体(阅读图片、PDF、截图)
    • Jupyter笔记本支持
    • ComfyUI集成(32个工作流工具)
    • GitHub博客(Jekyll博客创建、主题、部署)
  • 工具名称别名 -服务器端路由处理常见的模型幻觉(例如。, edit -> edit_file, bash -> execute_command)

  • 技能体系 -16个预装技能+从安装更多 出色的代理技能

快速开始

HTTP模式(浏览器聊天)

# Start the server
start-chat.bat

# Open in browser
http://localhost:3847/chat.html

MCP模式(LM Studio Direct)

添加到LM Studio MCP配置(~/.lmstudio/mcp-servers.json):

{
  "mcpServers": {
    "qwen3-mcp": {
      "command": "node",
      "args": ["<YOUR_PATH>/src/index.js"],
      "cwd": "<YOUR_PATH>"
    }
  }
}

替换 <YOUR_PATH> 使用您安装服务器的实际路径。

然后重新启动LM Studio。

安装

先决条件

  • Node.js 18+
  • LM Studio已加载模型(建议使用Qwen3)

快速设置(Windows)

cd <YOUR_PATH>
setup.bat

这将:

  1. 安装npm依赖项
  2. 创建所需目录
  3. 自动配置LM Studio MCP

手动设置

# Install dependencies
npm install

# Setup MCP config for LM Studio
npm run setup

npm脚本

命令 描述
npm run setup 配置LM Studio MCP
npm run start 启动HTTP服务器(端口3847)
npm run mcp 直接运行MCP服务器(stdio)
npm run dev 从自动重新加载开始

项目结构

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

可用工具(80+)

文件操作

工具 说明
read_file 读取带有行号的文件内容(参数: file_path, offset, limit)
write_file 写入/创建文件(参数: file_path, content)
edit_file 在文件中查找和替换(参数: file_path, old_string, new_string)
list_directory 列出目录内容(参数: path)
create_directory 创建目录(参数: path)
delete_file 删除文件(参数: path)
move_file 移动/重命名文件(参数: source, destination)
copy_file 复制文件(参数: source, destination)
file_info 获取文件元数据(参数: path)
get_working_directory 获取当前工作目录
set_working_directory 设置工作目录(参数: path)

编辑工具

工具 说明
insert_at_line 在特定行插入(参数: file_path, line, content)
replace_lines 替换线路范围(参数: file_path, start_line, end_line, content)
append_to_file 附加到文件(参数: file_path, content)
prepend_to_file 前置文件(参数: file_path, content)

搜索

工具 说明
glob_search 按模式查找文件(参数: pattern, cwd)
grep_search 使用正则表达式搜索文件内容(参数: pattern, path)
find_definition 查找代码定义(参数: name, path)

命令执行

工具 说明
execute_command 运行shell命令(参数: command, cwd, timeout)
execute_background 在后台运行命令(参数: command, cwd)
read_output 读取后台进程输出(参数: session_id)
kill_session 终止后台进程(参数: session_id)
list_sessions 列出正在运行的进程

Git

工具 说明
git_status 存储库状态
git_diff 显示更改
git_log 提交历史记录
git_add 舞台文件
git_commit 创建提交
git_branch 列出/创建分支
git_checkout 切换分支
git_push 推到远程
git_pull 从远程拉
git_clone 克隆存储库

网络

工具 说明
web_search DuckDuckGo搜索(参数: query)
web_image_search Bing图像搜索与下载(参数: query)
web_fetch 获取网页内容(参数: url)
web_fetch_image 从URL下载图像(参数: url)

记忆与规划

工具 说明
memory_store 存储带有标签的笔记
memory_recall 搜索笔记
memory_list 列出所有笔记
scratchpad_write 写入草稿行
scratchpad_read 阅读草稿
plan_create 创建执行计划(参数: goal, steps)
plan_status 检查计划进度
task_add 添加待办事项
task_list 列出所有

GitHub博客

工具 说明
blog_init 为GitHub Pages初始化Jekyll博客
blog_post_create 创建新的博客文章
blog_page_create 创建静态页面
blog_category_create 创建类别页面
blog_post_list 列出所有博客文章
blog_nav_update 更新导航菜单
blog_deploy 部署到GitHub页面
blog_config 更新博客配置
blog_theme 应用主题预设或自定义颜色
blog_theme_list 列出可用主题
blog_jekyll_theme 应用Jekyll远程主题

技能

工具 说明
list_skills 列出已安装的技能
load_skill 加载技能说明
install_skill 从GitHub安装

公用事业

工具 说明
get_current_time 当前日期/时间
calculator 数学表达式
think 记录思考笔记
ask_user 提示用户输入

技能体系

技能是教授人工智能专业任务的指令包。模型会根据您的请求自动检测要加载的技能。

安装技能(16)

代码质量和安全:

  • 代码审查 -代码审查方法
  • 差别审查 -以安全为重点的差异评审
  • 静态分析 -CodeQL、Semgrep、SARIF
  • 测试手册技能 -引信、消毒剂、覆盖物

Web开发:

  • 反应最佳实践 -反应模式(Vercel)
  • 网页设计指南 -UI/UX基础
  • shadcn ui -现代组件库
  • 前端设计 -前端UI/UX
  • web工件生成器 -HTML/RReact原型

ComfyUI和创意:

  • comfyui节点 -自定义节点开发(V1+V3 API)
  • comfyui工作流程 -工作流创建(SD1.5/SDXL/SD3.5/Flux)

开发工具:

  • 镀铬延伸 -Chrome扩展程序开发(MV3)
  • mcp构建器 -构建MCP服务器
  • 现代python -Python工具(uv、ruff、pytest)
  • docx 文件 -Word文档创建
  • github博客 -GitHub页面的Jekyll博客

安装更多技能

install-skill.bat https://github.com/anthropics/skills/tree/main/skills/pptx

使用技能

技能匹配您的请求时会自动加载。您也可以手动加载它们:

"What skills do I have?"
"Load the comfyui-nodes skill"
"Use the docx skill to create a report"

配置

HTTP服务器端口

编辑 frontend/server.js:

const PORT = 3847;

环境变量

变量 默认值 描述
IMAGE_DOWNLOAD_DIR ~/lmstudio-images 图像下载位置

LM Studio设置(HTTP模式)

  1. 加载模型(推荐Qwen3)
  2. 启用API服务器(默认值:localhost:1234)
  3. 打开http://localhost:3847/chat.html
  4. 如果启用了身份验证,请输入API令牌

LM工作室设置(MCP模式)

  1. 添加MCP配置(见上文快速入门)
  2. 重新启动LM Studio
  3. 工具会自动出现在模型上下文中

API端点(HTTP模式)

端点 方法 描述
/ GET 图像查看器UI
/chat.html GET 聊天界面
/tool POST 执行工具 {name, args}
/skills GET 列表技能(JSON)
/skill?name=X 获取 获取技能详细信息

测试

# 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

故障排除

服务器问题

# Check if running
curl http://localhost:3847/skills

# Restart
restart-chat.bat

# Force stop
stop-chat.bat

MCP连接问题

  1. 检查LM Studio控制台是否有错误
  2. 验证mcp-servers.json中的路径是否正确
  3. 跑 node src/index.js 手动测试

read_file超时/WebSocket错误

这 read_file 该工具默认为500行,以防止LM Studio WebSocket超时。 对于大文件,使用分页:

read_file with offset=1, limit=100    # Lines 1-100
read_file with offset=101, limit=100  # Lines 101-200

工具名称错误

如果模型调用了错误的工具名称(例如。, edit 而不是 edit_file),服务器具有内置别名,用于路由常见错误。如果仍然看到错误,请更新LM Studio中的系统提示——请参阅 SYSTEM_PROMPT.md 以获得正确的提示。

工具错误

  1. 检查浏览器控制台(F12)的HTTP模式
  2. 验证工作目录权限
  3. 检查LM Studio模型是否支持函数调用

许可证

麻省理工学院