Scenic MCP 是一个模型上下文协议 (MCP) 服务器,它能够将外部键盘和鼠标输入注入到 Scenic GUI 应用程序中。
Scenic MCP 作为一个 MCP 服务器,为 Scenic GUI 应用程序提供了外部键盘和鼠标输入注入的能力,你可以按以下步骤进行操作。
mix.exs 文件中:defp deps do
[
{:scenic_mcp, path: "../scenic_mcp"}
]
end
cd scenic_mcp
npm install
服务器提供了以下 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
本项目采用 MIT 许可证。