Scenic_mcp_experimental

Scenic_mcp_experimental

🚀 Scenic MCP - 用于Scenic应用程序的输入控制

Scenic MCP 是一个模型上下文协议 (MCP) 服务器,它能够将外部键盘和鼠标输入注入到 Scenic GUI 应用程序中。

🚀 快速开始

Scenic MCP 作为一个 MCP 服务器,为 Scenic GUI 应用程序提供了外部键盘和鼠标输入注入的能力,你可以按以下步骤进行操作。

✨ 主要特性

  • 键盘输入:向 Scenic 应用程序发送文本和特殊按键。
  • 鼠标控制:移动鼠标光标并在特定坐标处点击。
  • MCP 集成:可与任何兼容 MCP 的客户端(如 Claude Desktop 等)协同工作。
  • 实时通信:基于 TCP 的连接,实现低延迟输入。
  • Scenic 兼容性:采用适当的 Scenic ViewPort 输入路由。

📦 安装指南

  1. 添加到你的 Scenic 应用程序的 mix.exs 文件中
defp deps do
[
{:scenic_mcp, path: "../scenic_mcp"}
]
end
  1. 添加到你的应用程序的监管树中: 实际上,你可能不需要这样做...
  2. 安装 Node.js 依赖项
cd scenic_mcp
npm install

💻 使用示例

基础用法

MCP 工具

服务器提供了以下 MCP 工具:

  • connect_scenic:测试与 Scenic 应用程序的连接。
  • get_scenic_status:检查服务器状态和可用命令。
  • send_keys:向 Scenic 应用程序发送键盘输入。
    • 参数
      • text(字符串):要输入的文本(每个字符作为单独的按键按下发送)。
      • key(字符串):特殊按键名称(enter、escape、tab、backspace、delete、up、down、left、right、home、end、page_up、page_down、f1 - f12)。
      • modifiers(数组):修饰键(ctrl、shift、alt、cmd、meta)。
  • send_mouse_move:将鼠标光标移动到特定坐标。
    • 参数
      • x(数字):X 坐标。
      • y(数字):Y 坐标。
  • send_mouse_click:在特定坐标处点击鼠标。
    • 参数
      • x(数字):X 坐标。
      • y(数字):Y 坐标。
      • button(字符串):鼠标按钮(left、right、middle) - 默认值:left。

代码示例

发送文本

{
"action": "send_keys",
"text": "hello world"
}

发送特殊按键

{
"action": "send_keys",
"key": "enter"
}

发送带修饰键的按键

{
"action": "send_keys",
"key": "c",
"modifiers": ["ctrl"]
}

移动鼠标

{
"action": "send_mouse_move",
"x": 100,
"y": 200
}

点击鼠标

{
"action": "send_mouse_click",
"x": 150,
"y": 250,
"button": "left"
}

🔧 技术细节

架构

MCP Client (Claude Desktop)
↓
TypeScript MCP Server (scenic_mcp)
↓ (TCP port 9999)
Elixir GenServer Bridge
↓ (Scenic.ViewPort.Input.send/2)
Scenic ViewPort
↓
Your Scenic Application

开发

启动 Elixir 服务器

cd your_scenic_app
mix run --no-halt

测试 MCP 服务器

cd scenic_mcp
node src/index.ts

要求

  • Elixir/OTP 24+
  • Node.js 18+
  • Scenic 0.11+

📄 许可证

本项目采用 MIT 许可证。

  • 0 关注
  • 0 收藏,36 浏览
  • system 提出于 2025-09-25 11:54

相似服务问题

相关AI产品