efds5694/quicker-mcp-server
If you are the rightful owner of quicker-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Quicker MCP Server enables interaction between Cherry Studio and Quicker automation tools through the Model Context Protocol (MCP).
Quicker MCP Server
一个模型上下文协议(MCP)服务器,使Cherry Studio和其他兼容MCP的AI客户端能够与Quicker自动化工具进行交互。
功能特性
- 通过ID或名称执行Quicker动作
- 列出所有可用的Quicker动作并支持过滤
- 获取和设置剪贴板内容
- 截图功能
- 发送键盘输入
- 获取选中文本
- 完整的参数传递支持
- 返回值处理
- GBK/中文编码支持 - 正确处理中文Windows控制台输出
目录
前置要求
-
Quicker 必须安装在您的系统上
- 下载地址:https://getquicker.net/
- 默认安装路径:
C:\Program Files\Quicker\
-
Python 3.8+ 是必需的(推荐Python 3.12+)
-
Quicker动作CSV文件(动作列表功能必需)
- 从Quicker导出您的动作到CSV格式
- 将CSV文件放在MCP服务器同一目录下
- 服务器使用绝对路径自动检测CSV文件
- 默认文件名:
QuickerActions_20250719_163336.csv
安装
用户安装
-
从PyPI安装(可用时):
pip install quicker-mcp-server
-
或从源码安装:
git clone https://github.com/efds5694/quicker-mcp-server.git cd quicker-mcp-server pip install .
开发安装
-
克隆仓库:
git clone https://github.com/efds5694/quicker-mcp-server.git cd quicker-mcp-server
-
以开发模式安装并包含开发依赖:
pip install -e ".[dev]"
-
安装pre-commit钩子:
pre-commit install
快速开始
-
安装包:
pip install quicker-mcp-server
-
添加到Cherry Studio:将
cherry_studio_config.json
中相应的配置复制到您的Cherry Studio MCP设置中。 -
开始使用:现在您可以在Cherry Studio中使用自然语言命令来控制Quicker了!
Cherry Studio配置
方法1:使用已安装的包(推荐)
如果您使用pip安装了包:
{
"mcpServers": {
"quicker": {
"command": "quicker-mcp-server",
"args": [],
"env": {}
}
}
}
方法2:直接使用Python模块
如果您从源码运行:
{
"mcpServers": {
"quicker": {
"command": "python",
"args": ["-m", "quicker_mcp_server.main"],
"env": {}
}
}
}
方法3:使用uv(如果您使用uv)
{
"mcpServers": {
"quicker": {
"command": "uv",
"args": ["run", "python", "-m", "quicker_mcp_server.main"],
"env": {}
}
}
}
配置文件
cherry_studio_config.json
:Cherry Studio的即用配置(推荐方法)cherry_studio_config_examples.json
:不同设置的多个配置示例
只需将这些文件中的适当配置复制到您的Cherry Studio MCP设置中。
完整配置参考
以下是 cherry_studio_config.json
的完整内容,包含多种配置选项:
{
"examples": {
"installed_package": {
"description": "Use this if you installed quicker-mcp-server via pip install",
"config": {
"mcpServers": {
"quicker": {
"command": "quicker-mcp-server",
"args": [],
"env": {},
"description": "Quicke MCP Server - Quicker automation tool MCP server integration"
}
}
}
},
"python_module": {
"description": "Use this if running from source code",
"config": {
"mcpServers": {
"quicker": {
"command": "python",
"args": ["-m", "quicker_mcp_server.main"],
"env": {},
"description": "Quicke MCP Server - Quicker automation tool MCP server integration"
}
}
}
},
"uv_runner": {
"description": "Use this if you're using uv package manager",
"config": {
"mcpServers": {
"quicker": {
"command": "uv",
"args": ["run", "python", "-m", "quicker_mcp_server.main"],
"env": {},
"description": "Quicke MCP Server - Quicker automation tool MCP server integration"
}
}
}
},
"with_custom_path": {
"description": "Use this if Quicker is installed in a non-standard location",
"config": {
"mcpServers": {
"quicker": {
"command": "quicker-mcp-server",
"args": [],
"env": {
"QUICKER_PATH": "C:\\Custom\\Path\\To\\Quicker\\QuickerStarter.exe"
},
"description": "Quicke MCP Server - Quicker automation tool MCP server integration"
}
}
}
}
},
"recommended": {
"mcpServers": {
"quicker": {
"command": "quicker-mcp-server",
"args": [],
"env": {},
"description": "Quicke MCP Server - Quicker automation tool MCP server integration"
}
}
}
}
配置选择指南
- 推荐配置 (
recommended
):适用于大多数用户,使用pip安装的包 - 已安装包 (
installed_package
):与推荐配置相同,适用于通过pip安装的情况 - Python模块 (
python_module
):适用于从源码运行的开发环境 - uv运行器 (
uv_runner
):适用于使用uv包管理器的用户 - 自定义路径 (
with_custom_path
):适用于Quicker安装在非标准位置的情况
必需的Quicker动作
您需要在Quicker中创建几个基本动作,以便MCP服务器正常工作。
必需的动作包括:
get_clipboard_content
- 获取当前剪贴板文本set_clipboard_content
- 设置剪贴板内容take_screenshot
- 截图并保存send_keys
- 发送键盘输入get_selected_text
- 获取当前选中的文本
Quicker动作设置指南
为了让MCP Server正常工作,您需要在Quicker中创建以下基础动作。每个动作都需要设置正确的名称,以便MCP Server能够调用。
1. get_clipboard_content(获取剪贴板内容)
动作名称:get_clipboard_content
步骤:
- 添加"获取剪贴板文本"模块
- 添加"停止"模块,将剪贴板文本作为返回值
具体配置:
- 获取剪贴板文本 → 输出到变量
clipboardText
- 停止 → 返回内容:
{clipboardText}
2. set_clipboard_content(设置剪贴板内容)
动作名称:set_clipboard_content
详细创建步骤:
- 右键点击Quicker面板空白处,选择"新建动作"
- 设置动作名称为:
set_clipboard_content
- 在动作编辑器中:
- 拖入"写入剪贴板"模块
- 点击"内容"参数框
- 输入:
{_in_param}
(注意大括号和下划线) - 或者点击参数框右边的fx按钮,在表达式中输入:
_in_param
- 拖入"停止"模块
- 在"返回内容"中输入:
"Clipboard content set successfully"
- 在"返回内容"中输入:
- 保存动作
参数说明:
_in_param
是Quicker的内置变量,无需手动定义- 当通过命令行调用时:
runaction:set_clipboard_content?Hello World
- "Hello World" 会自动存储在
_in_param
变量中 - 使用
{_in_param}
进行文本插值来获取参数值
3. take_screenshot(截图)
动作名称:take_screenshot
步骤:
- 添加"屏幕截图"模块
- 根据参数决定保存路径
- 返回截图文件路径
具体配置:
- 如果/否则 → 条件:
{_in_param}
不为空- 是:屏幕截图 → 保存到:
{_in_param}
- 否:屏幕截图 → 保存到:
{GetFolderPath("Desktop")}\screenshot_{GetTime("yyyyMMdd_HHmmss")}.png
- 是:屏幕截图 → 保存到:
- 停止 → 返回内容:截图文件的完整路径
4. send_keys(发送按键)
动作名称:send_keys
详细创建步骤:
- 新建动作,名称设为:
send_keys
- 拖入"模拟按键B(参数)"模块
- 在"按键内容"参数中输入:
{_in_param}
- 在"按键内容"参数中输入:
- 拖入"停止"模块
- 在"返回内容"中输入:
"Keys sent: {_in_param}"
- 在"返回内容"中输入:
使用示例:
- 调用:
runaction:send_keys?Ctrl+C
→ 执行复制操作 - 调用:
runaction:send_keys?Hello World
→ 输入文本 - 调用:
runaction:send_keys?{Win}+R
→ 打开运行对话框
5. get_selected_text(获取选中文本)
动作名称:get_selected_text
具体配置:
- 获取选中的文本 → 输出到变量
selectedText
- 停止 → 返回内容:
{selectedText}
创建步骤总结
- 打开Quicker软件
- 在面板上右键点击空白位置,选择"新建动作"
- 设置动作名称(必须与上面列出的名称完全一致)
- 按照上述配置添加相应的模块
- 保存动作
高级配置
参数处理
- 使用
{_in_param}
来获取从MCP Server传递的参数 - 如果需要处理多个参数,可以使用分隔符(如
|
)分割参数字符串
错误处理
建议在每个动作中添加错误处理:
尝试
[主要逻辑]
捕获异常
停止 → 返回内容:"Error: {异常信息}"
返回值格式
- 简单文本:直接返回字符串
- JSON格式:返回结构化数据
- 文件路径:返回完整的文件路径
测试动作
创建完成后,可以通过以下方式测试:
-
命令行测试:
"C:\Program Files\Quicker\QuickerStarter.exe" -c "runaction:get_clipboard_content"
-
在Quicker中直接运行:
- 右键点击动作
- 选择"运行"或"调试运行"
扩展动作
您可以根据需要创建更多自定义动作,例如:
- 文件操作(复制、移动、删除)
- 窗口管理(最大化、最小化、切换)
- 系统信息获取
- 网络请求
- 数据库操作
只需要确保动作名称在MCP Server中有对应的调用即可。
使用示例
在Cherry Studio中配置完成后,您可以使用自然语言来控制Quicker:
- "截图并保存到我的桌面"
- "复制选中的文本到剪贴板"
- "按Ctrl+C进行复制"
- "获取当前剪贴板内容"
- "运行我的自定义Quicker动作'ProcessFiles'"
- "显示所有可用的Quicker动作"
- "列出与Excel相关的动作"
- "查找包含'截图'的动作"
高级用法
自定义动作执行
您可以通过ID或名称执行任何Quicker动作:
运行ID为"25d718df-0f37-43ae-9fac-58fca1888113"的Quicker动作,参数为"hello world"
- "执行ID为70f76130-10e5-4c22-a17b-e3bd2338b5a2的动作"
动作参数
使用parameters
字段向Quicker动作传递参数。参数将通过标准参数机制在Quicker动作中可用。
列出可用动作
MCP服务器可以从CSV导出文件中读取并显示您的所有Quicker动作:
"显示所有可用的Quicker动作"
"列出前20个动作"
"查找包含'Excel'的动作"
"显示与截图相关的动作"
服务器将显示:
- 动作ID(用于精确执行)
- 动作名称(人类可读)
- 描述
- 动作类型(SendKeys、XAction、RunProgram等)
- 关联应用程序
- 上下文/配置文件信息
故障排除
-
找不到Quicker:如果Quicker安装在不同位置,请更新脚本中的
quicker_path
-
找不到动作:确保动作ID/名称在您的Quicker安装中存在
-
权限问题:确保Quicker具有执行系统操作的必要权限
-
超时问题:为长时间运行的动作增加超时值
-
中文字符编码问题:服务器自动处理中文Windows中常见的GBK/GB2312编码。如果仍然看到编码问题,请检查系统区域设置。
-
测试编码:使用
test_gbk_fix.py
测试编码处理是否与您的Quicker设置正确配合
项目结构
quicker-mcp-server/
├── src/quicker_mcp_server/ # 源代码
│ ├── __init__.py # 包初始化
│ ├── main.py # 入口点
│ ├── server.py # MCP服务器实现
│ └── resources.py # 资源管理模块
├── data/ # 用户数据目录(不打包)
│ ├── QuickerActions_*.csv # 用户的动作文件
│ ├── mcp_config.json # MCP配置文件(未来添加)
│ ├── configs/ # 其他配置文件
│ │ └── cherry_studio_config.json
│ └── logs/ # 日志文件
│ └── quicker_mcp_server.log
├── docs/ # 文档资源
│ ├── images/ # 文档图片
│ ├── examples/ # 示例文件
│ └── quicker_doc/ # Quicker动作编写和使用的说明文档
│ ├── basic.txt
│ ├── clipboard-related.txt
│ ├── flow-control.txt
│ └── ... (所有Quicker相关文档)
├── tests/ # 测试文件
│ ├── fixtures/ # 测试数据
│ │ └── sample_actions.csv
│ ├── __init__.py
│ ├── conftest.py # Pytest配置
│ ├── test_main.py # 主模块测试
│ └── test_server.py # 服务器测试
├── scripts/ # 工具脚本
│ └── setup_config.py
├── .github/workflows/ # GitHub Actions CI/CD
│ ├── ci.yml # 持续集成
│ └── release.yml # 发布自动化
├── pyproject.toml # 项目配置
├── .pre-commit-config.yaml # Pre-commit钩子
├── .flake8 # Flake8配置
├── .gitignore # Git忽略规则
├── cherry_studio_config.json # Cherry Studio MCP配置
├── cherry_studio_config_examples.json # 配置示例
├── dev.bat # Windows开发辅助脚本
├── Makefile # Unix开发辅助
├── LICENSE # MIT许可证
└── README.md # 本文件
开发
开发工作流程
-
设置开发环境:
git clone https://github.com/efds5694/quicker-mcp-server.git cd quicker-mcp-server pip install -e ".[dev]" pre-commit install
-
代码质量工具:
- Black:代码格式化
- isort:导入排序
- flake8:代码检查
- mypy:类型检查
- pytest:测试
-
运行测试:
# 运行所有测试 pytest # 运行覆盖率测试 pytest --cov=quicker_mcp_server # 运行特定测试文件 pytest tests/test_server.py
-
代码格式化:
# 格式化代码 black src/ tests/ # 排序导入 isort src/ tests/ # 检查代码规范 flake8 src/ tests/ # 类型检查 mypy src/
-
Pre-commit钩子: Pre-commit钩子在每次提交时自动运行以确保代码质量。
# 手动运行 pre-commit run --all-files
添加新功能
要扩展此MCP服务器:
- 添加新工具:在
src/quicker_mcp_server/server.py
的setup_tools()
方法中 - 实现相应的处理方法:在同一文件中
- 创建匹配的Quicker动作:如果需要
- 为新功能编写测试:在
tests/
目录中 - 更新文档:在README.md中
测试
项目使用pytest进行测试,结构如下:
tests/conftest.py
:共享的fixtures和配置tests/test_*.py
:每个组件的测试模块- 默认启用覆盖率报告
贡献
- Fork仓库
- 创建功能分支:
git checkout -b feature-name
- 按照开发工作流程进行更改
- 确保所有测试通过且代码质量检查通过
- 提交更改:
git commit -am 'Add feature'
- 推送到分支:
git push origin feature-name
- 创建Pull Request
许可证
MIT许可证 - 详见LICENSE文件