自动打字机任务主控MCP服务器
一个免提、无障碍的任务自动化和代码执行平台,专为有运动障碍的开发人员设计。
______________________________________________________________________
目录
- 运行MCP服务器 - 运行看门狗 - 任务管理 - 通过MCP客户端进行交互
______________________________________________________________________
项目目的
该项目旨在为软件开发和任务自动化提供一个强大且可访问的平台,主要通过语音命令和眨眼(特别是双眨眼或“DD”)进行控制。它使可能面临传统键盘/鼠标输入挑战的用户能够保持生产力和竞争力。
核心是一个MCP(模型上下文协议)服务器,它公开了用于任务管理、代码生成、测试、UI自动化等的各种工具,旨在由Cursor’s Agent等AI助手驱动。
核心功能
- 任务管理: 加载、保存、添加、优先排序和处理JSON或Markdown文件中定义的任务。
- AI集成: 通过AI API生成代码(目前为Groq/X-AI配置)。
- 测试自动化: 跑
pytest对于指定的任务文件。 - UI自动化(通过PyAutoGUI): 捕获屏幕坐标、发送聊天消息、获取响应(需要用户设置)。
- MCP服务器: 将项目功能作为MCP兼容客户端(如Cursor)可使用的工具公开。
- 可访问性: 设计时考虑了屏幕阅读器兼容性和TTS/DD交互。
- 看门狗: 确保MCP服务器进程保持运行。
架构概述
该系统由以下几个关键组件组成 autotype_mcp_server 目录:
src/mcp_server.py:主要的FastAPI/MCP服务器应用程序。定义MCP工具并处理客户端通信。src/core_logic.py:包含处理任务、与AI交互、运行测试和执行UI自动化的核心功能。src/utils.py:包含用于日志记录、文件I/O(JSON、YAML)、通知等的实用函数。src/ai_providers.py:处理与外部AI API的交互。src/ui_automation.py:包含使用的函数pyautogui和pyperclip用于屏幕交互。taskmaster.py:(可能是遗留或替代接口)用于管理任务和可能运行主循环的脚本(需要审查)。screen_idle_dd.py:监控屏幕活动并检测用户输入/确认的双闪烁(DD)。src/watchdog.py:一个可重新启动的简单进程监视器mcp_server.py如果它崩溃了。config.yaml:API键、路径、超时、功能标志的主配置文件。taskmaster_todos.json:系统管理的主要任务列表。tasks/:目录通常包含详细的任务描述.md格式。
交互流程(简化):
- MCP客户端(如游标代理)连接到正在运行的
mcp_server.py. - 客户端使用定义的MCP工具请求动作(例如。,
list_tasks,run_tdd_cycle). mcp_server.py调用函数core_logic.py,utils.py等,以执行所请求的动作。core_logic.py可能与ai_providers.py用于代码生成或ui_automation.py用于屏幕交互。- 结果通过MCP返回给客户端。
screen_idle_dd.py跑步(通常由taskmaster.py)以监听DD输入、信号确认或动作。
设置
先决条件
- Python(推荐3.10+版本,检查
.python-version文件(如果存在) - 访问终端或命令提示符。
- Git(如有必要,用于克隆)
安装
- 克隆存储库(如果需要):
git clone
cd autotype- 导航到服务器目录:
cd autotype_mcp_server- 创建虚拟环境:
python -m venv .venv- 激活虚拟环境:
- Windows(PowerShell): .\.venv\Scripts\Activate.ps1 - Windows(cmd.exe): .\.venv\Scripts\activate.bat - macOS/Linux: source .venv/bin/activate
- 安装依赖关系:
python -m pip install -r requirements.txt- 安装本地MCP SDK: (需要
mcp_sdk_source目录存在)
python -m pip install -e ../mcp_sdk_source配置
- 复制示例配置: 如果
config.yaml不存在,复制config.example.yaml(如有)config.yaml. - API密钥: 获取所需人工智能提供商(例如Groq)的API密钥。将它们设置为环境变量。服务器主要查找:
- XAI_API_KEY - XAI_API_URL (这些环境变量名称可以在中更改 config.yaml 使用 GROK_API_KEY_ENV 和 GROK_API_URL_ENV).
- 编辑
config.yaml: 查看和调整设置:
- TASKS_DIR:包含以下内容的目录的路径 .md 任务文件。 - TODO_PATH:JSON任务列表的路径(taskmaster_todos.json). - LOG_LEVEL, LOG_FILE:日志记录配置。 - ENABLE_TTS:启用/禁用文本到语音反馈。 - AI_MODEL, AI_MAX_TOKENS等:AI模型参数。 - INPUT_COORDS, HISTORY_COORDS:UI自动化的屏幕坐标(使用 capture_coordinates 工具或手动捕捉)。 - IDLE_TIMEOUT_SECONDS, POST_DD_WAIT_SECONDS:参数 screen_idle_dd.py.
用法
(确保为所有命令激活虚拟环境)
运行MCP服务器
这使得MCP工具可供Cursor等客户端使用。
python src/mcp_server.py服务器将启动,通常在 http://127.0.0.1:8000。如果需要,您可以配置主机和端口(检查 uvicorn 参数或FastMCP文档)。
运行看门狗
为确保MCP服务器在崩溃时自动重启:
python src/watchdog.py*(注意:监视器当前在其循环中在前台运行服务器。对于后台操作,需要进行修改。)*
任务管理
任务主要通过以下方式管理:
taskmaster_todos.json: 任务对象的JSON列表(例如。,{"id": "task_xyz", "description": "Do something", "status": "pending"}).tasks/目录: 包含.md在YAML前端块中包含详细任务描述、实现/测试文件路径和状态的文件。- MCP工具: 使用以下工具
list_tasks,add_task,get_next_code_task_path,run_tdd_cycle通过MCP客户端。
通过MCP客户端进行交互
- 确保
mcp_server.py进程正在运行。 - 配置您的MCP客户端(例如,通过
.cursor/mcp.json)连接到服务器的SSE端点(例如。,http://127.0.0.1:8000/sse). - 使用客户端(例如光标聊天)调用可用的MCP工具:
- @autotyper-taskmaster-mcp list_tasks - @autotyper-taskmaster-mcp add_task task_description="Implement feature X" - @autotyper-taskmaster-mcp run_tdd_cycle task_path="C:\...\tasks\task_abc.md" - *(代理可以根据上下文自动使用工具)*
无障碍
- 屏幕阅读器友好: 输出(日志、状态)旨在实现兼容性。
- TTS: 可以在中启用文本到语音反馈
config.yaml. - DD输入:
screen_idle_dd.py提供双眨眼检测,用于确认/触发操作(主要通过以下方式集成taskmaster.py).
测试
测试位于 tests/ 目录和使用 pytest.
- 运行所有测试:
pytest- 运行特定文件:
pytest tests/test_utils.py- 运行特定测试(按名称子字符串):
pytest -k ai_generate_code- 生成覆盖报告:
pytest --cov=src --cov-report=html(查看报告 htmlcov/index.html)
*跟踪当前测试覆盖率,但可能需要更新。UI自动化测试(test_ui_automation.py)由于导入问题,当前被阻止。*
贡献
(如果项目成为开源或涉及合作者,则填写贡献指南的占位符)。
______________________________________________________________________
*此README针对屏幕阅读器和可访问的导航进行了优化。*
