← WebMCP Directory

lense-visual-control.netlify.app

lense-visual-control.netlify.app

live Unverified (seed import) AI & Agents 7 tools imperative implementation

Observe your screen, send an action, and check the result. Lense gives people and WebMCP agents a shared workspace for visual desktop control.

First seen 2026-11-05 · Last seen 2026-11-05 · Source: webmcp.com

Answer 3 · Act 4 · Transact 0 · Score: Not yet scored

Tool inspector

desktop_action

act imperative

Perform one mouse, keyboard, scroll or focus action. Observe before and after. For queued, continuous or until-complete tasks include expectedTaskId and observationId from a fresh desktop_observe. Stale task/frame reports are rejected. The selected window is focused before keyboard, click, drag or scroll input. Choose a window target for keyboard input. Coordinates refer to the full native target. Set observeAfter:true to get a fresh result image in this same call, with optional settleMs 0..2000, default 100. If observationError is returned, input already succeeded; capture again without repeating the action.

Page: /

Input schema

No input properties (empty object).

Raw JSON schema
{
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "type": {
          "const": "pointer.move"
        },
        "x": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "y": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "target": {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "monitor",
                "window"
              ]
            },
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          "required": [
            "type",
            "id"
          ],
          "additionalProperties": false
        },
        "expectedTaskId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observeAfter": {
          "type": "boolean"
        },
        "settleMs": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2000
        }
      },
      "required": [
        "type",
        "x",
        "y"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "const": "pointer.click"
        },
        "x": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "y": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "button": {
          "enum": [
            "left",
            "right",
            "middle"
          ]
        },
        "target": {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "monitor",
                "window"
              ]
            },
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          "required": [
            "type",
            "id"
          ],
          "additionalProperties": false
        },
        "expectedTaskId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observeAfter": {
          "type": "boolean"
        },
        "settleMs": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2000
        }
      },
      "required": [
        "type",
        "x",
        "y"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "const": "pointer.doubleClick"
        },
        "x": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "y": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "button": {
          "enum": [
            "left",
            "right",
            "middle"
          ]
        },
        "target": {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "monitor",
                "window"
              ]
            },
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          "required": [
            "type",
            "id"
          ],
          "additionalProperties": false
        },
        "expectedTaskId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observeAfter": {
          "type": "boolean"
        },
        "settleMs": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2000
        }
      },
      "required": [
        "type",
        "x",
        "y"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "const": "pointer.drag"
        },
        "from": {
          "type": "object",
          "properties": {
            "x": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            },
            "y": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            }
          },
          "required": [
            "x",
            "y"
          ],
          "additionalProperties": false
        },
        "to": {
          "type": "object",
          "properties": {
            "x": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            },
            "y": {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            }
          },
          "required": [
            "x",
            "y"
          ],
          "additionalProperties": false
        },
        "durationMs": {
          "type": "integer",
          "minimum": 50,
          "maximum": 5000
        },
        "target": {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "monitor",
                "window"
              ]
            },
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          "required": [
            "type",
            "id"
          ],
          "additionalProperties": false
        },
        "expectedTaskId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observeAfter": {
          "type": "boolean"
        },
        "settleMs": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2000
        }
      },
      "required": [
        "type",
        "from",
        "to",
        "durationMs"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "const": "keyboard.type"
        },
        "text": {
          "type": "string",
          "minLength": 1,
          "maxLength": 10000
        },
        "expectedTaskId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observeAfter": {
          "type": "boolean"
        },
        "settleMs": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2000
        }
      },
      "required": [
        "type",
        "text"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "const": "keyboard.key"
        },
        "key": {
          "type": "string",
          "minLength": 1,
          "maxLength": 32
        },
        "expectedTaskId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observeAfter": {
          "type": "boolean"
        },
        "settleMs": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2000
        }
      },
      "required": [
        "type",
        "key"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "const": "keyboard.hotkey"
        },
        "keys": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 32
          },
          "minItems": 1,
          "maxItems": 5
        },
        "expectedTaskId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observeAfter": {
          "type": "boolean"
        },
        "settleMs": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2000
        }
      },
      "required": [
        "type",
        "keys"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "const": "scroll"
        },
        "deltaX": {
          "type": "integer",
          "minimum": -10000,
          "maximum": 10000
        },
        "deltaY": {
          "type": "integer",
          "minimum": -10000,
          "maximum": 10000
        },
        "expectedTaskId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observeAfter": {
          "type": "boolean"
        },
        "settleMs": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2000
        }
      },
      "required": [
        "type",
        "deltaX",
        "deltaY"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "const": "window.focus"
        },
        "windowId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "expectedTaskId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observationId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "observeAfter": {
          "type": "boolean"
        },
        "settleMs": {
          "type": "integer",
          "minimum": 0,
          "maximum": 2000
        }
      },
      "required": [
        "type",
        "windowId"
      ],
      "additionalProperties": false
    }
  ]
}

Similar websites

reloadium.com

reloadium.com

Paste a topic, URL, or PDF/TXT/MD — get a multi-episode AI podcast with audio, transcripts, timelines and quizzes. 60+ languages.

live Unverified AI & Agents Transact tools
204 tools A67 / Act127 / T10 Not yet scored Seen 2026-11-05
getAppInfo readCredits signOut navigateToLogin navigateToPricing
Inspect tools
api.lmm.best

api.lmm.best

Connect AI models, tools and applications with LMM Forge. Explore model access, developer guides and open-source collaboration.

live Unverified AI & Agents Transact tools
93 tools A43 / Act47 / T3 Not yet scored Seen 2026-11-05
lmm_signal_state lmm_signal_start lmm_signal_rotate lmm_signal_hint lmm_signal_records
Inspect tools
deskintab.dgkhan08.workers.dev

deskintab.dgkhan08.workers.dev

An operating system in your browser, where you and your AI agent share apps, files, and projects through WebMCP.

live Unverified AI & Agents Transact tools
89 tools A18 / Act70 / T1 Not yet scored Seen 2026-11-05
desktop_get_context desktop_reveal home_navigate projects_navigate tasks_navigate
Inspect tools
webmcp.agentsdesk.dev

webmcp.agentsdesk.dev

Meridian Ops

live Unverified AI & Agents Transact tools
83 tools A43 / Act24 / T16 Not yet scored Seen 2026-11-05
find_capabilities invoke_capability get_context get_action_status search_customers
Inspect tools

Related on Influzer