← WebMCP Directory

Tool tree

paperspace.pages.dev

Health & EducationTools verified
Website
A local-first spatial desk for reading, comparing, and presenting research papers with WebMCP.
Explore capabilities
    inspect_workspaceAction

    Call once when a session starts, or again only when briefingRevision changes. Returns progressive indexing readiness, compact sampled page briefs, source cues, unfolded geometry, visuals, sequences, camera state, and the delivery protocol that makes PaperSpace the primary surface for substantive paper-grounded work. Reuse this briefing and batch later paper reads into one broad range instead of repeated small calls. Local filesystem paths are never exposed.

    View tool JSON
    {
      "name": "inspect_workspace",
      "kind": "act",
      "impl": "imperative",
      "description": "Call once when a session starts, or again only when briefingRevision changes. Returns progressive indexing readiness, compact sampled page briefs, source cues, unfolded geometry, visuals, sequences, camera state, and the delivery protocol that makes PaperSpace the primary surface for substantive paper-grounded work. Reuse this briefing and batch later paper reads into one broad range instead of repeated small calls. Local filesystem paths are never exposed.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    search_papersAnswer

    Search every PDF page indexed so far without waiting for the complete paper. Results include matchId, page, quote, text blocks, and a normalized region that focus_region can show precisely.

    View tool JSON
    {
      "name": "search_papers",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search every PDF page indexed so far without waiting for the complete paper. Results include matchId, page, quote, text blocks, and a normalized region that focus_region can show precisely.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Words or an exact phrase to find."
          },
          "paperId": {
            "type": "string",
            "description": "Optional exact paper id."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "default": 8
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      }
    }
    read_paper_pagesAnswer

    Read one contiguous range from a local paper in a single call. Omit page bounds to return every currently indexed page, including the whole paper once indexing is complete. Normalized text-block geometry is opt-in for precise visual navigation.

    View tool JSON
    {
      "name": "read_paper_pages",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read one contiguous range from a local paper in a single call. Omit page bounds to return every currently indexed page, including the whole paper once indexing is complete. Normalized text-block geometry is opt-in for precise visual navigation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "paperId": {
            "type": "string",
            "description": "Exact paper id from inspect_workspace."
          },
          "startPage": {
            "type": "integer",
            "minimum": 1,
            "description": "Optional first page. Defaults to page 1."
          },
          "endPage": {
            "type": "integer",
            "minimum": 1,
            "description": "Optional last page. Defaults to the last currently indexed page, so omitting both bounds reads the whole indexed paper in one call."
          },
          "includeBlocks": {
            "type": "boolean",
            "default": false,
            "description": "Include normalized geometry for locally extracted text blocks."
          },
          "maxCharacters": {
            "type": "integer",
            "minimum": 500,
            "description": "Optional explicit text cap for this call. Omit it to return all extracted text in the requested range."
          }
        },
        "required": [
          "paperId"
        ],
        "additionalProperties": false
      }
    }
    focus_regionAction

    Fly the shared browser view through spatial context to a recent search match or an explicit normalized region on a live PDF page, ensuring the target stays inside the viewport without drawing a focus box.

    View tool JSON
    {
      "name": "focus_region",
      "kind": "act",
      "impl": "imperative",
      "description": "Fly the shared browser view through spatial context to a recent search match or an explicit normalized region on a live PDF page, ensuring the target stays inside the viewport without drawing a focus box.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "matchId": {
            "type": "string",
            "description": "A recent matchId from search_papers. Use this instead of explicit target fields."
          },
          "paperId": {
            "type": "string",
            "description": "Exact paper id for an explicit region target."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "One-based PDF page."
          },
          "region": {
            "type": "object",
            "properties": {
              "x": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "y": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "width": {
                "type": "number",
                "exclusiveMinimum": 0,
                "maximum": 1
              },
              "height": {
                "type": "number",
                "exclusiveMinimum": 0,
                "maximum": 1
              }
            },
            "required": [
              "x",
              "y",
              "width",
              "height"
            ],
            "additionalProperties": false,
            "description": "Top-left normalized PDF page region. x + width and y + height must not exceed 1."
          },
          "padding": {
            "type": "number",
            "minimum": 0,
            "maximum": 0.35,
            "default": 0.06,
            "description": "Additional normalized page margin around the target."
          }
        },
        "oneOf": [
          {
            "required": [
              "matchId"
            ],
            "not": {
              "anyOf": [
                {
                  "required": [
                    "paperId"
                  ]
                },
                {
                  "required": [
                    "page"
                  ]
                },
                {
                  "required": [
                    "region"
                  ]
                }
              ]
            }
          },
          {
            "required": [
              "paperId",
              "page",
              "region"
            ],
            "not": {
              "required": [
                "matchId"
              ]
            }
          }
        ],
        "additionalProperties": false
      }
    }
    arrange_papersAction

    Reflow every page in each selected paper into reading-order grids, then lay out the unfolded paper groups as a grid, row, or columns. The app rejects layouts that crowd stationary papers or visuals unless force is true.

    View tool JSON
    {
      "name": "arrange_papers",
      "kind": "act",
      "impl": "imperative",
      "description": "Reflow every page in each selected paper into reading-order grids, then lay out the unfolded paper groups as a grid, row, or columns. The app rejects layouts that crowd stationary papers or visuals unless force is true.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "layout": {
            "type": "string",
            "enum": [
              "grid",
              "row",
              "columns"
            ]
          },
          "paperIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "description": "Optional exact paper subset. Omit to arrange every paper."
          },
          "force": {
            "type": "boolean",
            "default": false,
            "description": "Allow app-detected visual overlap or crowding. This bypasses only spatial presentation safeguards, never data, media, security, or target validation."
          }
        },
        "required": [
          "layout"
        ],
        "additionalProperties": false
      }
    }
    snapshot_paper_regionAction

    Rasterize an exact source region only when a persistent crop or side-by-side comparison is useful. Prefer focus_region or a paper-region sequence frame for ordinary navigation. The app rejects visual overlap or crowding unless force is true.

    View tool JSON
    {
      "name": "snapshot_paper_region",
      "kind": "act",
      "impl": "imperative",
      "description": "Rasterize an exact source region only when a persistent crop or side-by-side comparison is useful. Prefer focus_region or a paper-region sequence frame for ordinary navigation. The app rejects visual overlap or crowding unless force is true.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "paperId": {
            "type": "string"
          },
          "page": {
            "type": "integer",
            "minimum": 1
          },
          "region": {
            "type": "object",
            "properties": {
              "x": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "y": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "width": {
                "type": "number",
                "exclusiveMinimum": 0,
                "maximum": 1
              },
              "height": {
                "type": "number",
                "exclusiveMinimum": 0,
                "maximum": 1
              }
            },
            "required": [
              "x",
              "y",
              "width",
              "height"
            ],
            "additionalProperties": false,
            "description": "Top-left normalized PDF page region. x + width and y + height must not exceed 1."
          },
          "title": {
            "type": "string",
            "maxLength": 80
          },
          "caption": {
            "type": "string",
            "maxLength": 400
          },
          "scale": {
            "type": "number",
            "minimum": 0.75,
            "maximum": 3,
            "default": 2
          },
          "focus": {
            "type": "boolean",
            "default": true
          },
          "force": {
            "type": "boolean",
            "default": false,
            "description": "Allow app-detected visual overlap or crowding. This bypasses only spatial presentation safeguards, never data, media, security, or target validation."
          }
        },
        "required": [
          "paperId",
          "page",
          "region"
        ],
        "additionalProperties": false
      }
    }
    place_plotAction

    Create a safe declarative line plot only for semantically ordered numeric x values. Never invent numeric positions to connect categories, symbolic complexity classes, or table rows. Prefer an adequate source figure or table already identified in the compact briefing. The app rejects visual overlap or crowding unless force is true.

    View tool JSON
    {
      "name": "place_plot",
      "kind": "act",
      "impl": "imperative",
      "description": "Create a safe declarative line plot only for semantically ordered numeric x values. Never invent numeric positions to connect categories, symbolic complexity classes, or table rows. Prefer an adequate source figure or table already identified in the compact briefing. The app rejects visual overlap or crowding unless force is true.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "caption": {
            "type": "string",
            "maxLength": 400
          },
          "xLabel": {
            "type": "string",
            "maxLength": 60
          },
          "yLabel": {
            "type": "string",
            "maxLength": 60
          },
          "series": {
            "type": "array",
            "minItems": 1,
            "maxItems": 8,
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                },
                "points": {
                  "type": "array",
                  "minItems": 2,
                  "maxItems": 2000,
                  "items": {
                    "type": "object",
                    "properties": {
                      "x": {
                        "type": "number"
                      },
                      "y": {
                        "type": "number"
                      }
                    },
                    "required": [
                      "x",
                      "y"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "name",
                "points"
              ],
              "additionalProperties": false
            }
          },
          "focus": {
            "type": "boolean",
            "default": true
          },
          "force": {
            "type": "boolean",
            "default": false,
            "description": "Allow app-detected visual overlap or crowding. This bypasses only spatial presentation safeguards, never data, media, security, or target validation."
          }
        },
        "required": [
          "title",
          "series"
        ],
        "additionalProperties": false
      }
    }
    place_imageAction

    Place a generated PNG, JPEG, or WebP only when it resolves a comprehension gap not already answered by the source. Essential labels, legend mappings, and annotations must be visible inside the image; the caption is supplementary. The app rejects visual overlap or crowding unless force is true. Arbitrary HTML and SVG are rejected.

    View tool JSON
    {
      "name": "place_image",
      "kind": "act",
      "impl": "imperative",
      "description": "Place a generated PNG, JPEG, or WebP only when it resolves a comprehension gap not already answered by the source. Essential labels, legend mappings, and annotations must be visible inside the image; the caption is supplementary. The app rejects visual overlap or crowding unless force is true. Arbitrary HTML and SVG are rejected.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "dataUrl": {
            "type": "string",
            "minLength": 32,
            "pattern": "^data:image\\/(?:png|jpeg|webp);base64,",
            "description": "Base64 data URL for a PNG, JPEG, or WebP image no larger than 5 MB."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "caption": {
            "type": "string",
            "maxLength": 400
          },
          "focus": {
            "type": "boolean",
            "default": true
          },
          "force": {
            "type": "boolean",
            "default": false,
            "description": "Allow app-detected visual overlap or crowding. This bypasses only spatial presentation safeguards, never data, media, security, or target validation."
          }
        },
        "required": [
          "dataUrl",
          "title"
        ],
        "additionalProperties": false
      }
    }
    present_sequenceAction

    Use this as the default delivery for a paper introduction, explanation, review, comparison, or any answer grounded across multiple paper regions whenever PaperSpace is available; do not stop at a chat summary. Atomically present 1 to 20 semantic views. Lead with captioned original paper-region evidence and add derived artifacts only when source regions and captions cannot resolve a stated comprehension gap. Related original PDF pages are temporarily gathered in first-appearance order, while source slots preserve their place in the paper. Sequences are temporary by default and can be kept by the person.

    View tool JSON
    {
      "name": "present_sequence",
      "kind": "act",
      "impl": "imperative",
      "description": "Use this as the default delivery for a paper introduction, explanation, review, comparison, or any answer grounded across multiple paper regions whenever PaperSpace is available; do not stop at a chat summary. Atomically present 1 to 20 semantic views. Lead with captioned original paper-region evidence and add derived artifacts only when source regions and captions cannot resolve a stated comprehension gap. Related original PDF pages are temporarily gathered in first-appearance order, while source slots preserve their place in the paper. Sequences are temporary by default and can be kept by the person.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "maxLength": 80
          },
          "frames": {
            "type": "array",
            "minItems": 1,
            "maxItems": 20,
            "items": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "enum": [
                    "paper-region",
                    "artifact"
                  ]
                },
                "paperId": {
                  "type": "string"
                },
                "page": {
                  "type": "integer",
                  "minimum": 1
                },
                "region": {
                  "type": "object",
                  "properties": {
                    "x": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "y": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "width": {
                      "type": "number",
                      "exclusiveMinimum": 0,
                      "maximum": 1
                    },
                    "height": {
                      "type": "number",
                      "exclusiveMinimum": 0,
                      "maximum": 1
                    }
                  },
                  "required": [
                    "x",
                    "y",
                    "width",
                    "height"
                  ],
                  "additionalProperties": false,
                  "description": "Top-left normalized PDF page region. x + width and y + height must not exceed 1."
                },
                "artifactId": {
                  "type": "string"
                },
                "name": {
                  "type": "string",
                  "maxLength": 80
                },
                "caption": {
                  "type": "string",
                  "maxLength": 400
                }
              },
              "required": [
                "kind"
              ],
              "oneOf": [
                {
                  "properties": {
                    "kind": {
                      "const": "paper-region"
                    }
                  },
                  "required": [
                    "paperId",
                    "page",
                    "region"
                  ],
                  "not": {
                    "required": [
                      "artifactId"
                    ]
                  }
                },
                {
                  "properties": {
                    "kind": {
                      "const": "artifact"
                    }
                  },
                  "required": [
                    "artifactId"
                  ],
                  "not": {
                    "anyOf": [
                      {
                        "required": [
                          "paperId"
                        ]
                      },
                      {
                        "required": [
                          "page"
                        ]
                      },
                      {
                        "required": [
                          "region"
                        ]
                      }
                    ]
                  }
                }
              ],
              "additionalProperties": false
            }
          },
          "startAt": {
            "type": "integer",
            "minimum": 1,
            "default": 1
          },
          "save": {
            "type": "boolean",
            "default": false,
            "description": "Persist as the saved sequence. Temporary sequences can be kept by the person."
          }
        },
        "required": [
          "frames"
        ],
        "additionalProperties": false
      }
    }