使用说明

项目简介

TRAA MCP 屏幕截图服务器是一个基于模型上下文协议 (MCP) 构建的应用后端,旨在为LLM客户端提供屏幕和窗口的截图功能。它允许LLM通过标准化的MCP协议,枚举系统中的屏幕和窗口资源,并根据需要捕获屏幕截图,从而实现更丰富的上下文感知和桌面自动化应用。

主要功能点

  • 屏幕和窗口资源枚举:

    • 列出系统中所有可用的显示器。
    • 列出系统中所有可用的窗口。
    • 每个资源包含ID、标题、类型(显示器/窗口)和位置信息。
  • 屏幕截图:

    • 捕获任何显示器或窗口的屏幕截图。
    • 可自定义截图尺寸。
    • 支持JPEG和PNG格式。
    • 可配置图像质量设置。
    • 自动创建目录以保存文件。

安装步骤

  1. 环境准备: 确保已安装 Python 3.10 或更高版本。
  2. 安装依赖: 根据 'README.md' 的 'Dependencies' 部分,使用 'uv pip install' 或 'pip install' 命令安装所需的 Python 包,例如:
    uv pip install mcp>=1.0.0 anyio>=4.5 traa>=0.1.5 pillow>=11.1.0
    pip install mcp>=1.0.0 anyio>=4.5 traa>=0.1.5 pillow>=11.1.0
  3. 获取代码: 从 GitHub 仓库 https://github.com/opentraa/traa-mcp 克隆或下载代码。

服务器配置

MCP服务器需要配置在MCP客户端中才能使用,例如 Claude Desktop 或其他 AI agents。以下是配置 'traa_mcp' 服务器的 JSON 格式配置信息,请根据实际文件路径进行调整:

{
    "mcpServers": {
        "traa_mcp": {
            "command": "absolute/path/to/uv",
            "args": [
                "--directory",
                "absolute/path/to/traa-mcp",
                "run",
                "traa_mcp_server"
            ]
        }
    }
}

配置参数说明:

  • 'server name': 'traa_mcp' - 服务器名称,客户端根据此名称识别和调用。
  • 'command': '"absolute/path/to/uv"' - 'uv' 命令的绝对路径。'uv' 是仓库 'README.md' 中推荐的 Python 环境和包管理器,如果使用 'python' 或其他方式运行,请替换为相应的命令路径。
  • 'args': 启动服务器的参数列表。
    • '--directory': '"absolute/path/to/traa-mcp"' - 'traa-mcp' 仓库代码所在目录的绝对路径。
    • '"run"': 'uv run' 的子命令,用于运行 Python 脚本。
    • '"traa_mcp_server"': 要运行的服务器脚本名称,对应 'traa_mcp_server' 包的入口点。

注意:

  • 请将 '"absolute/path/to/uv"' 和 '"absolute/path/to/traa-mcp"' 替换为实际的绝对路径。
  • 如果您不使用 'uv',可以将 'command' 替换为 Python 解释器路径 (例如 '"absolute/path/to/python"'),并调整 'args' 为 '["-m", "traa_mcp_server.server.app"]' 或其他适合您环境的启动方式。
  • 如果需要使用 SSE 模式,请将 'args' 修改为 '["--directory", "absolute/path/to/traa-mcp", "run", "traa_mcp_server-sse", "--port", "3001"]',并确保客户端配置的连接方式与服务器的传输协议一致。

基本使用方法

  1. 启动服务器: 根据上述服务器配置,在终端中运行服务器。例如,使用 'uv' 运行 stdio 模式的服务器:
    uv run traa_mcp_server
    或运行 SSE 模式的服务器 (默认端口 3001):
    uv run traa_mcp_server-sse
  2. 运行客户端: 在另一个终端中,运行客户端程序:
    uv run traa_mcp_client
  3. 客户端交互: 客户端启动后,会列出可用的工具。您可以根据提示,输入工具名称和参数进行交互。
    • 使用 'enum_screen_sources' 查看可用的屏幕和窗口资源列表。
    • 使用 'create_snapshot' 捕获屏幕截图,截图数据将直接返回。
    • 使用 'save_snapshot' 将屏幕截图保存到指定文件路径。

示例客户端交互:

Select a tool to use or 'quit' to exit.

Tool: enum_screen_sources
Description: Enumerate all screen and window sources available on the system and return a list of SimpleScreenSourceInfo

Tool: create_snapshot
Description: Create a snapshot of the screen source with the given ID and return it as an image
Parameters:
  - source_id (integer)
    Description: 
  - snapshot_size (array)
    Description: 

Tool: save_snapshot
Description: Save a snapshot of the screen source with the given ID to a file
Parameters:
  - source_id (integer)
    Description: 
  - snapshot_size (array)
    Description: 
  - file_path (string)
    Description: 

Query: enum_screen_sources

Tool Response:
[
  {
    "id": 0,
    "title": "Display 1",
    "is_window": false,
    "rect": [
      0,
      0,
      1920,
      1080
    ]
  },
  {
    "id": 1,
    "title": "Calculator",
    "is_window": true,
    "rect": [
      100,
      100,
      800,
      600
    ]
  }
]

Select a tool to use or 'quit' to exit.
...

信息

分类

桌面与硬件