Skip to main content
Glama

save_unmarked_screenshot

Capture a clean screenshot without annotations or bounding boxes for unobstructed page viewing. Save it as a resource for later reference.

Instructions

Capture a screenshot without bounding boxes and store it as a resource. Provide a resourceName to identify the screenshot. It's useful for when you want to view a page unobstructed by annotations or the user asks for a screenshot of the page.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
resourceNameNoThe name under which the unmarked screenshot will be saved as a resource (e.g. 'before_login'). If not provided, one will be generated.

Implementation Reference

  • The function that implements the core logic of the 'save_unmarked_screenshot' tool. It optionally generates a resourceName, unmarks the page to remove bounding boxes, captures a screenshot, stores it in the 'screenshots' map, and returns a success message with the resource URI.
    async function handleSaveUnmarkedScreenshot(
      page: Page,
      args: any
    ): Promise<CallToolResult> {
      let { resourceName } = args;
      if (!resourceName) {
        resourceName = `unmarked_screenshot_${Date.now()}`;
      }
    
      // Unmark the page to remove bounding boxes
      await page.evaluate(() => {
        if (typeof (window as any).unmarkPage === "function") {
          (window as any).unmarkPage();
        }
      });
    
      const buffer = await page.screenshot();
      screenshots.set(resourceName, Buffer.from(buffer));
    
      return {
        isError: false,
        content: [
          {
            type: "text",
            text: `Unmarked screenshot saved as resource screenshot://${resourceName}`,
          },
        ],
      };
    }
  • Input schema definition for the tool, specifying an optional 'resourceName' parameter of type string.
    inputSchema: {
      type: "object",
      properties: {
        resourceName: {
          type: "string",
          description:
            "The name under which the unmarked screenshot will be saved as a resource (e.g. 'before_login'). If not provided, one will be generated.",
        },
      },
      required: [],
    },
  • src/index.ts:581-596 (registration)
    The tool registration entry in the TOOLS array, including name, description, and inputSchema, which is returned by the ListTools MCP handler.
    {
      name: "save_unmarked_screenshot",
      description:
        "Capture a screenshot without bounding boxes and store it as a resource. Provide a resourceName to identify the screenshot. It's useful for when you want to view a page unobstructed by annotations or the user asks for a screenshot of the page.",
      inputSchema: {
        type: "object",
        properties: {
          resourceName: {
            type: "string",
            description:
              "The name under which the unmarked screenshot will be saved as a resource (e.g. 'before_login'). If not provided, one will be generated.",
          },
        },
        required: [],
      },
    },
  • The switch case in the main tool dispatcher (handleToolCall) that routes calls to the specific handler function.
    case "save_unmarked_screenshot":
      result = await handleSaveUnmarkedScreenshot(page, args);
      break;

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/steel-dev/steel-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server