mcpField
V
View Control MCP Server

View Control MCP Server

本地服务
github.com/nakashima-takeo其他085 周前更新

关于 View Control MCP Server

View Control MCP Server 是一个通过 MCP 控制本地 PC 的服务,面向需要让 AI 客户端执行桌面操作或获取屏幕图像的场景。它提供鼠标、键盘和屏幕捕获功能,并使用 stdio 通信。

主要功能

  1. 01获取鼠标位置并移动或点击
  2. 02执行拖放操作
  3. 03输入文本并按下组合键
  4. 04捕获屏幕并返回 Base64 图像

适用场景

  1. 01通过 MCP 客户端执行本地鼠标和键盘操作
  2. 02让 AI 客户端获取屏幕截图

MCP 相关

该服务通过 stdio 和 JSON-RPC 2.0 提供 MCP 工具,支持 Claude Desktop、Cursor 等客户端调用本地鼠标、键盘和屏幕捕获功能。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"view-control": {
"command": "npx",
"args": [
"-y",
"view-control-mcp-server"
]
}
}
}
启动命令npx -y view-control-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmview-control-mcp-server

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

View Control MCP Server

用于操作本地 PC、点击鼠标和截取屏幕等的 Model Context Protocol (MCP)服务。

什么是 Model Context Protocol(MCP)

Model Context Protocol (MCP)是 AI 语言模型应用(客户端)与外部服务(服务端)之间的标准化通信协议。使用 MCP 后,AI 助手可以使用操作本地 PC、获取数据等功能。

此服务实现了符合 JSON-RPC 2.0 的 MCP 协议,可与 Claude Desktop 和 Cursor 等 MCP 客户端协作。支持的 MCP 协议版本为2024-11-05。

功能

  • 鼠标操作

    • 获取鼠标位置
    • 移动鼠标
    • 点击鼠标(左键/右键/中键)
    • 拖放
  • 键盘操作

    • 输入文本
    • 按键
    • 与修饰键(Command、Alt、Control、Shift)组合使用
  • 屏幕截图

    • 截取整个屏幕
    • 获取 Base64 编码的图像数据
  • 通信方式

    • 符合 JSON-RPC 2.0 的 MCP 协议
    • Stdio 传输(标准输入/输出)

安装

npm install view-control-mcp-server

使用方法

启动服务
从命令行启动
# Stdioモードで起動(Cursor等のMCPクライアントと直接連携する場合)
npx view-control-mcp-server
通过 MCP 协议通信

MCP 服务通过标准输入/输出接收 JSON-RPC 2.0 格式的请求。

请求格式
{
  "jsonrpc": "2.0",
  "id": "任意のID",
  "method": "メソッド名",
  "params": {/* パラメータ */}
}
成功响应格式
{
  "jsonrpc": "2.0",
  "id": "リクエストと同じID",
  "result": {/* 結果 */}
}
错误响应格式
{
  "jsonrpc": "2.0",
  "id": "リクエストと同じID",
  "error": {
    "code": エラーコード,
    "message": "エラーメッセージ",
    "data": { /* 追加情報 */ }
  }
}
通知格式(无响应)
{
  "jsonrpc": "2.0",
  "method": "通知メソッド名",
  "params": {/* パラメータ */}
}
可用的 MCP 方法
基本方法
  • initialize:初始化服务

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "initialize",
      "params": {
        "protocolVersion": "2024-11-05",
        "capabilities": {},
        "clientInfo": {
          "name": "MCP Client",
          "version": "1.0.0"
        }
      }
    }
    
  • ping:检查服务是否正常运行

    { "jsonrpc": "2.0", "id": 2, "method": "ping" }
    
  • listOfferings:获取服务提供的功能列表

    { "jsonrpc": "2.0", "id": 3, "method": "listOfferings" }
    
工具相关
  • tools/list:获取可用工具列表

    { "jsonrpc": "2.0", "id": 4, "method": "tools/list" }
    

    响应:

    {
      "jsonrpc": "2.0",
      "id": 4,
      "result": {
        "tools": [/* ツール一覧 */],
        "nextCursor": "" // ページネーションを使用しない場合は空文字列
      }
    }
    
  • tools/call:调用工具

    {
      "jsonrpc": "2.0",
      "id": 5,
      "method": "tools/call",
      "params": {
        "name": "ツール名",
        "arguments": {/* 引数 */}
      }
    }
    

    响应:

    {
      "jsonrpc": "2.0",
      "id": 5,
      "result": {
        "content": [
          {
            "type": "text",
            "text": "結果のJSON文字列"
          }
        ],
        "isError": false
      }
    }
    
鼠标相关
  • mouse.getPosition:获取鼠标位置

    { "jsonrpc": "2.0", "id": 6, "method": "mouse.getPosition" }
    
  • mouse.move:移动鼠标

    {
      "jsonrpc": "2.0",
      "id": 7,
      "method": "mouse.move",
      "params": { "x": 100, "y": 100 }
    }
    
  • mouse.click:点击鼠标

    {
      "jsonrpc": "2.0",
      "id": 8,
      "method": "mouse.click",
      "params": { "button": "left" }
    }
    
键盘相关
  • keyboard.type:输入文本

    {
      "jsonrpc": "2.0",
      "id": 9,
      "method": "keyboard.type",
      "params": { "text": "Hello, World!" }
    }
    
  • keyboard.press:按键

    {
      "jsonrpc": "2.0",
      "id": 10,
      "method": "keyboard.press",
      "params": { "key": "a", "modifiers": ["command"] }
    }
    
屏幕相关
  • screen.capture:截取屏幕
    { "jsonrpc": "2.0", "id": 11, "method": "screen.capture" }
    
服务信息
  • server.info:获取服务信息
    { "jsonrpc": "2.0", "id": 12, "method": "server.info" }
    
通知
  • notifications/initialized:通知客户端已完成初始化
    {
      "jsonrpc": "2.0",
      "method": "notifications/initialized"
    }
    
    此通知不会返回响应。

与 MCP 客户端协作

此服务可与 Claude Desktop 和 Cursor 等 MCP 客户端协作。

与 Cursor 协作
  1. 启动 Cursor 并打开设置
  2. 在 MCP 设置部分点击「Add Server」
  3. 按如下方式设置:
    • 名称:View Control MCP Server
    • 传输方式:stdio
    • 命令:npx view-control-mcp-server
    • 参数:(留空即可——会自动以 Stdio 模式启动)
  4. 点击「Add」保存
  5. 即可作为 Cursor 扩展使用
与 Claude Desktop 协作
  1. 启动 Claude Desktop 并打开设置
  2. 在 MCP 设置部分点击「Add Server」
  3. 按如下方式设置:
    • 名称:View Control MCP Server
    • 传输方式:stdio
    • 命令:npx view-control-mcp-server
    • 参数:(留空即可——会自动以 Stdio 模式启动)
  4. 点击「Add」保存
  5. 即可作为 Claude 扩展使用

开发

# リポジトリのクローン
git clone https://github.com/yourusername/view-control-mcp-server.git
cd view-control-mcp-server

# 依存関係のインストール
npm install

# 開発サーバーの起動
npm run dev

# テストの実行
npm test

# ビルド
npm run build

调试

建议使用 MCP 检查器调试 MCP 服务的运行情况。借助 MCP 检查器,可以直观查看服务与客户端之间的消息交换。

# MCPインスペクターのインストール
npm install -g @anthropic/mcp-inspector

# MCPインスペクターの起動
mcp-inspector

在浏览器中打开http://localhost:5173,然后使用 MCP 检查器 UI 测试与服务的通信。

注意事项

  • 此服务会操作本地 PC,请注意安全。
  • 建议仅在可信网络中使用。
  • 使用屏幕截图功能时,请注意保护隐私。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。