layernote

io.layernotePublished by layernote.ioOfficial publisherv0.11.1Updated Oct 29, 2026

Client feedback pinned on live sites, Figma frames, PDFs, images and video, for Claude and agents.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowMedia & Design

Overview

AI-generated overview

Lets an assistant work with layernote client feedback pinned on live sites, Figma frames, PDFs, images and video.

What you can do
  • The manifest lists no tools, so capabilities are inferred from the description only.
  • The server connects an assistant to layernote, where client feedback is pinned to specific spots on live sites, Figma frames, PDFs, images and video.
  • It is offered both as a hosted remote endpoint and as a local npm package over stdio, so an assistant can reach the same feedback data either way.
When to use it
Useful when you review design or web work with clients and want an assistant to work with the pinned feedback rather than copying comments by hand. Suited to teams already collecting feedback in layernote.
Requirements
A layernote account and OAuth authentication, or a personal token supplied through the LAYERNOTE_TOKEN environment variable for the local package. The LAYERNOTE_API_URL variable is only needed for a self-hosted or non-production layernote. Network access to the layernote service.
Before you install
The server requires authentication and accepts a personal access token; treat LAYERNOTE_TOKEN as a secret and keep it out of shared configuration. Feedback data from client projects is sent to the layernote service and to the assistant, so consider confidentiality before connecting. The tool list is not published, so what the assistant can read or change cannot be verified in advance.

Installation

In SourceWeft

  1. Open layernote in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.layernote%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "layernote": {
      "type": "http",
      "url": "https://app.layernote.io/mcp"
    }
  }
}

Tools

23

list_projects

List projects

List the layernote projects this token reaches, newest activity first, with their kind (WEBSITE, FIGMA, STATIC_FILES for uploaded files) and how many open comments each has. A personal token reaches every project its owner reaches in one workspace; pass a project from here (name or id) as `project` to the other tools.

Takes no parameters.

list_feedback

List feedback

List the layernote project's comments, newest first: by default the open ones (status OPEN, IN_PROGRESS or IN_REVIEW). Each has its text, author, date, assignee, due date, board column, thread and where it is: on a live page (URL and CSS selectors) or on an uploaded file (file id and name, pin in percent, PDF page or video moment). Comparison-generated items carry an expected/actual analysis. Narrow it with the filters, e.g. one file, or `since` for what happened in a week (that includes resolved ones). Use get_feedback for one item with its screenshot, get_file to see a file with its pins.

ParametersfilelimitsinceauthorstatusprojectassigneeincludeResolved

get_feedback

Get one feedback item

Get a single feedback item by id, including its full comment thread, the screenshot of the spot it is about (the element on a live page, or the part of the file around the pin) and the pictures attached to it, returned inline as images. Other attachments are listed by name.

Parametersidrequiredproject

list_files

List uploaded files

List the files uploaded to the layernote project (images, PDFs and videos) in the order of its Files sidebar: each file with its id, kind, page count or length, and how many open and total comments it has. A file with more than one version is listed once, at its latest version, with its `versions` (each with its own id and counts; comments stay on the version they were made on). Use get_file to look at a file with its open comments pinned on it, compare_versions to check an older version's comments against a newer one, and list_feedback with `file` for the comments themselves. On a Figma design project it lists the frames instead, in the order of its Frames sidebar: pictures of the design’s screens, marked `figma`, that get_file, add_comments and show_file take like files (a frame marked `rendering` has no picture yet). A website project has no files.

Parameterssearchproject

get_file

Look at an uploaded file

Show an uploaded file, or a Figma project’s frame, with its open comments pinned on it as numbered pins, returned inline as an image, with a legend that ties each number to the comment's id and first line. An image or a frame is shown whole; a PDF one page at a time (default: the first page with open comments); a video as a sheet of the frames its comments are on (up to nine, continue with `from`), or the single frame at `at`. The numbers only label this picture: refer to comments by their id in other tools. Rendering a PDF page or video frames can take a few seconds.

ParametersatfrompagefileIdrequiredproject

compare_versions

Compare versions of a file

For a file with more than one version (list_files shows a file's `versions`): shows the open comments of an older version each beside the same spot in a newer one, so you can tell which comments the newer version took care of. Each picture has the older version on the left with the comment's numbered pin, and the newer version on the right with a dashed ring where the pin was; the spot is the same page or video moment, at the same place in percent. By default the latest version against the one before it. Comments stay on the version they were made on: resolve the ones that are taken care of with resolve_feedback (only when the user asks), by their id. Six comments per call; continue with `offset`.

ParameterstofromfileIdrequiredoffsetproject

show_file

Show a file to the user

Open an uploaded file, or a Figma project’s frame, in an interactive viewer in the chat, for the user: the picture with its open comments as pins they can click to read, resolve or ask you about, a PDF page by page, a video moment by moment, and a switch between its versions. Use it when the user wants to see a file or go through its comments. To look at a file yourself, use get_file: this answer only names the comments. In a client that shows no MCP Apps, nothing opens.

ParametersfileIdrequiredproject

file_picture

Picture for the file viewer

Used by the file viewer that show_file opens: the picture of a file, a PDF page or a video frame without pins (the viewer draws its own). To look at a file yourself, use get_file.

ParametersatpagefileIdrequiredproject

resolve_feedback

Resolve a feedback item

Mark a feedback item as resolved in layernote. Only call this once the point has actually been dealt with: in the code, the design or the file. If it will NOT be done (a false positive, intentional, out of scope), use wont_fix_feedback instead so the team sees the reason rather than a false "fixed".

Parametersidrequiredproject

verify_feedback

Verify a feedback fix

Only for feedback on a live website page. Ask layernote to confirm a fix: it re-screenshots the live page, re-runs the design comparison, and auto-resolves the feedback item when the underlying difference is gone. Prefer this over resolve_feedback for comparison-generated items — it proves the fix instead of trusting it. The deployed page must include your change first. Takes up to ~30 seconds. Comments on uploaded files cannot be verified this way.

Parametersidrequiredproject

add_feedback_comment

Reply to a feedback item

Add a reply to a feedback item's thread in layernote so the team can follow along: what was changed, why, a question for the reviewer, or that a fix is waiting on a deploy. The reply appears in the item's thread under the name of the person who created the token.

Parametersidrequiredtextrequiredproject

wont_fix_feedback

Mark a feedback item as won’t-fix

Mark a feedback item as "won't fix" in layernote, with a mandatory reason that is posted to the item’s thread. Use this instead of resolve_feedback when it is deliberately not acted on: e.g. the item is a false positive, intentional, or out of scope. The team sees the item as dismissed with the explanation, not as fixed.

Parametersidrequiredreasonrequiredproject

set_feedback_status

Set the status of a feedback item

Move a feedback item to another status on the project board. Statuses are the project's own board columns — list_feedback returns them under "workflow.statuses", and clients can rename columns or add custom ones (e.g. "Design Review"), so always use a name from that list. Built-in names like "In Progress" also work. For resolving prefer resolve_feedback (or verify_feedback on a website), and for dismissing use wont_fix_feedback: that also records why in the thread.

Parametersidrequiredstatusrequiredproject

add_comments

Place comments on a file

Place one or more comments on an uploaded file in layernote, or on a Figma project’s frame, each as a pin at a spot on the picture (in percent, 0,0 top left), on a PDF page or at a moment in a video. A frame takes no page or moment. They appear at once for everyone on the project, clients on a share link included, under the name of the person who created the token and marked "via Claude". Look at the file with get_file first to place the pins well. Put every comment for one file in one call: the team then gets one notification, not one per pin. Only place comments when the user asks for it.

ParametersfileIdrequiredprojectcommentsrequired

update_feedback

Assign a feedback item, or set its priority or due date

Change who a feedback item is assigned to, its priority or its due date in layernote. The assignee is someone on the project (list_people shows who), by name or email; they get the usual notification. Use "none" to take an assignment, priority or due date away. For the status use set_feedback_status.

ParametersidrequireddueDateprojectassigneepriority

list_people

List the people on a project

The people who can work on the project's feedback, with their name, email and workspace role: who update_feedback can assign.

Parametersproject

upload_file

Upload a file or a new version

Add an image (JPEG, PNG, WebP, GIF, AVIF) or a PDF to a Static files project in layernote, as a new file or, with versionOf, as the next version of a file (the same kind of file). Give `url` for one link or `files` for up to 10, for example the exports of designs you just fixed in Figma: layernote fetches them itself. For a file the user has on their computer, give no link: an upload panel opens in the chat and the user drags the file into it. Tell them so; an image pasted in the chat itself can’t be passed on. Only upload when the user asks.

ParametersurlfilesprojectfileNameversionOf

add_attachment

Attach a file to a comment

Attach an image (JPEG, PNG, WebP, GIF, AVIF) or a PDF to a comment in layernote, for example a picture of how it looks after the fix. Give `url`, an https link layernote fetches itself (such as an image link from the Figma connector). For a file the user has on their computer, give no link: an upload panel opens in the chat and the user drags the file into it. Tell them so; an image pasted in the chat itself can’t be passed on. Only attach when the user asks.

ParametersurlprojectfileNamefeedbackIdrequired

store_upload

Store the file dropped in the upload panel

Used by the upload panel in the chat, not by you: it sends the file the user dropped in it, with the ticket upload_file or add_attachment gave it. To upload a file, call upload_file or add_attachment.

ParametersdatarequiredticketrequiredprojectfileNamerequiredmimeTyperequired

create_project

Create a project

Make a new layernote project in the workspace this token is for: FIGMA for a Figma design (then bring its screens in with import_figma_frames), STATIC_FILES for pictures, PDFs and videos (then upload_file), or WEBSITE for a live site (give websiteUrl). It counts against the workspace’s plan like a project made in the app, and is the user’s, made in their name. Only create one when the user asks.

ParametersnamerequiredtyperequiredwebsiteUrlfigmaFileUrl

list_figma_frames

List the frames in a Figma file

List the screens (top-level frames) in a Figma file, with their size and whether the project already has them: new, imported, or changed in Figma since. layernote reads the file with the user’s own Figma connection in layernote, not with a Figma connector in this chat. The project must be a Figma design project. Use it to pick frames for import_figma_frames. A big file gives up to 200 at a time: narrow it with `search`.

ParameterssearchfileUrlrequiredproject

import_figma_frames

Import frames from Figma

Bring screens from a Figma file into a Figma design project, the way “Add your Figma design” in layernote does: each frame becomes a screen the team can comment on. Name the frames (by name or id from list_figma_frames, up to 50), or leave them out for the whole file. A named frame the project already has is brought up to date when Figma changed it, and keeps its comments. One Figma file per project. layernote uses the user’s own Figma connection in layernote; when it is missing, the answer says how the user connects it. The pictures appear a few seconds after. Only import when the user asks.

ParametersframesfileUrlrequiredproject

share_project

Share a project

Give the project’s share link, to send to a client or anyone outside the team: they open the project without an account and comment (or, with access "view", only look). A project has one link: the first call makes it, later ones give the same link. `access` changes what guests may do for everyone on the link. A link the team paused or that expired stays closed; `reopen` opens it again, only when the user asks for that. Anyone with the link gets in, so only share when the user asks.

Parametersaccessreopenproject

Version history

1
  1. v0.11.1LatestOct 26, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.