MCP tools, prompts and resources

The tools, prompts and skill resources a server offers an AI agent over MCP, each tool and prompt with its arguments, for the newest release.

An agent connected to a server over MCP calls the tools below, and its client lists the prompts and resources that follow them.

This page lists version 0.17.0 of the server, the newest release. An entry that names no version it was added in was in version 0.13.0.

This page leaves out each tool’s description, which is written for the agent. An agent reads it, and the tools your server’s version has, from its client’s tool list. Learn more about what an agent can do.

On a server older than the version in an entry’s Changed in field, the entry’s arguments or its description differ from this page’s. An argument whose line ends with “Added in” and a version is missing on a server older than that version.

read_skill

Arguments: name

Read a skill

  • name (required, one of "answering", "triage", "placing") — Which document to read.

list_projects

Arguments: none

List projects

create_project

Arguments: name

Create a project

  • name (required, string)

set_active_project

Arguments: projectId

Work in a project

  • projectId (required, string or null)

rename_project

Arguments: projectId, name

Rename a project

  • projectId (required, string)
  • name (required, string)

edit_project_patterns

Arguments: projectId, addPatterns, removePatterns

Change the addresses a project claims

  • projectId (required, string)
  • addPatterns (optional, array of string)
  • removePatterns (optional, array of string)

move_site

Arguments: projectId, siteId

Move a site into a project

  • projectId (required, string)
  • siteId (required, string)

whoami

Arguments: none · Changed in: 0.16.0

Who am I

list_users

Arguments: none

List users

list_sites

Arguments: none

List sites

get_site

Arguments: siteId

Get a site

  • siteId (required, string)

list_threads

Arguments: url, projects

List the threads on a page

  • url (required, string)
  • projects (optional, "all" or array of string) — Which projects to read: "all", or a list of project ids from list_projects. Omit it to read every project; each answer says which project it is from.

get_thread

Arguments: threadId · Changed in: 0.16.0

Open one thread

  • threadId (required, string)

Arguments: query, scope

Search

  • query (required, string)
  • scope (optional, object with kind or object with kind, projectId or object with kind, siteId or object with kind, pageId)

get_thread_image

Arguments: threadId, image, clipped

See a thread's screenshot

  • threadId (required, string)
  • image (optional, one of "flattened", "screenshot", "drawing", default "flattened")
  • clipped (optional, boolean, default true)

upload_file

Arguments: content, encoding, mediaType · Changed in: 0.16.0

Put a file on this server

  • content (required, string) — The file itself: its text when encoding is utf8, or base64 of its bytes when it is base64.
  • encoding (required, one of "utf8", "base64") — How to read content. No default: guessing wrong stores a corrupt file silently.
  • mediaType (required, string) — What the file is, e.g. "application/pdf", "text/plain".

Arguments: mediaType · Added in: 0.16.0

Get a link to send a file to

  • mediaType (required, string) — What the file is, e.g. "text/markdown", "image/png", "application/pdf".

get_attachment

Arguments: blobId

Read a file on a comment

  • blobId (required, string) — From a comment's attachments, not the attachment's own id.

create_thread

Arguments: url, body, selector, hostPath, title, nickname, mentions, attachments, projectId · Changed in: 0.16.0

Open a comment thread

  • url (required, string)
  • body (required, string)
  • selector (optional, string)
  • hostPath (optional, array of string) — The frames and shadow hosts between the top document and the element, outermost first: one CSS selector each, resolved in the document or shadow root above it, ending in an element name. A hop ending in iframe, frame or object enters that frame's page; any other enters that element's shadow root. An embed cannot be entered, so comment on one by passing it as selector. selector is then resolved inside the last one, and is required: hostPath: ["iframe#checkout"] with selector: "form > button" is a button inside that iframe. A thread a person pinned inside one carries the same list as its placement.selectors entry's hostPath; a hop there written as a bare id, such as #checkout, needs its element name in front, iframe#checkout. To comment on an iframe as a whole, pass it as selector and leave this out. Added in 0.14.0.
  • title (optional, string)
  • nickname (optional, string)
  • mentions (optional, array of string)
  • attachments (optional, array of object with blobId, name) — Files to post with this comment, at most 10. Each blobId comes from upload_file_link or upload_file, or from the attachments of a comment this server already holds; name is what a person downloading it will see.
  • projectId (optional, string) — Which project to write into. Omit it and the write goes to the project whose address pattern matches the URL, else to the one this access key is in (set_active_project); there is no default beyond those, so omitting it can fail. Ids come from list_projects.

add_comment

Arguments: threadId, body, nickname, mentions, attachments, notifyParticipants · Changed in: 0.16.0

Reply to a thread

  • threadId (required, string)
  • body (required, string)
  • nickname (optional, string)
  • mentions (optional, array of string)
  • attachments (optional, array of object with blobId, name) — Files to post with this comment, at most 10. Each blobId comes from upload_file_link or upload_file, or from the attachments of a comment this server already holds; name is what a person downloading it will see.
  • notifyParticipants (optional, boolean)

edit_comment

Arguments: commentId, body, mentions

Edit your own comment

  • commentId (required, string)
  • body (required, string)
  • mentions (optional, array of string)

move_thread

Arguments: threadId, selector, hostPath

Move a pin to another element

  • threadId (required, string)
  • selector (optional, string)
  • hostPath (optional, array of string) — The frames and shadow hosts between the top document and the element, outermost first: one CSS selector each, resolved in the document or shadow root above it, ending in an element name. A hop ending in iframe, frame or object enters that frame's page; any other enters that element's shadow root. An embed cannot be entered, so comment on one by passing it as selector. selector is then resolved inside the last one, and is required: hostPath: ["iframe#checkout"] with selector: "form > button" is a button inside that iframe. A thread a person pinned inside one carries the same list as its placement.selectors entry's hostPath; a hop there written as a bare id, such as #checkout, needs its element name in front, iframe#checkout. To comment on an iframe as a whole, pass it as selector and leave this out. Added in 0.14.0.

set_page_url

Arguments: pageId, url, merge

Point a page at the URL its content moved to

  • pageId (required, string)
  • url (required, string)
  • merge (optional, boolean, default false)

resolve_thread

Arguments: threadId, resolved

Resolve or reopen a thread

  • threadId (required, string)
  • resolved (required, boolean)

mark_read

Arguments: threadId, throughCommentId

Record how far you have read

  • threadId (required, string)
  • throughCommentId (optional, string)

mark_unread

Arguments: threadId, fromCommentId

Leave a thread for somebody

  • threadId (required, string)
  • fromCommentId (required, string)

delete_comment

Arguments: commentId

Delete a comment

  • commentId (required, string)

delete_thread

Arguments: threadId

Delete a thread

  • threadId (required, string)

list_notifications

Arguments: projects

What happened to me

  • projects (optional, "all" or array of string) — Which projects to read: "all", or a list of project ids from list_projects. Omit it to read every project; each answer says which project it is from.

wait_for_notifications

Arguments: projects, maxSeconds

Wait for a notification

  • projects (optional, "all" or array of string) — Which projects to read: "all", or a list of project ids from list_projects. Omit it to read every project; each answer says which project it is from.
  • maxSeconds (optional, integer) — Seconds to wait before answering []. Above 600 is cut to 600.

ack_notifications

Arguments: ids

Acknowledge notifications

  • ids (required, array of string)

read_notifications

Arguments: ids

Mark notifications acted on

  • ids (required, array of string)

create_document

Arguments: title, markdown, markdownBlobId, images, projectId · Experimental: planner · Changed in: 0.16.0

Open a document for comment

Part of the planner, which is experimental: it may change or be removed in any release.

  • title (required, string)
  • markdown (optional, string) — The document, as Markdown. GitHub-flavored Markdown and $…$ / $$…$$ math render; raw HTML is dropped. Pass this or markdownBlobId, not both.
  • markdownBlobId (optional, string) — The blobId upload_file_link answered for the Markdown file, in place of markdown. The file must be UTF-8 text. Added in 0.16.0.
  • images (optional, object) — Each local image the Markdown names, mapped from its path exactly as the Markdown writes it (e.g. "./fig.png") to the blobId upload_file_link or upload_file answered for it. At most 64; PNG, JPEG, WebP or GIF. A path left out is shown as its alt text, and a remote image as a link.
  • projectId (optional, string) — Which project to file the document in. Omit it and it goes to the project this access key is in (set_active_project), and the call is refused when the key is in none. Ids come from list_projects.

get_document

Arguments: id, url · Experimental: planner

Read a document

Part of the planner, which is experimental: it may change or be removed in any release.

  • id (optional, string)
  • url (optional, string)

update_document

Arguments: id, markdown, markdownBlobId, title, images · Experimental: planner · Changed in: 0.16.0

Revise a document

Part of the planner, which is experimental: it may change or be removed in any release.

  • id (required, string)
  • markdown (optional, string) — The document, as Markdown. GitHub-flavored Markdown and $…$ / $$…$$ math render; raw HTML is dropped. Pass this or markdownBlobId, not both.
  • markdownBlobId (optional, string) — The blobId upload_file_link answered for the Markdown file, in place of markdown. The file must be UTF-8 text. Added in 0.16.0.
  • title (optional, string)
  • images (optional, object) — Each local image the Markdown names, mapped from its path exactly as the Markdown writes it (e.g. "./fig.png") to the blobId upload_file_link or upload_file answered for it. At most 64; PNG, JPEG, WebP or GIF. A path left out is shown as its alt text, and a remote image as a link.

delete_document

Arguments: id · Experimental: planner

End a review

Part of the planner, which is experimental: it may change or be removed in any release.

  • id (required, string)

export_threads

Arguments: scope, url, projectId · Experimental: exports · Added in: 0.14.0

Export threads to a file

Part of export and import, which are experimental: they may change or be removed in any release.

  • scope (required, one of "page", "site", "project") — What to export: "page" is the page at url, "site" is every page of the site url is on, and "project" is every site in the project.
  • url (optional, string) — An address on the page or site to export. Required for "page" and "site"; not taken for "project".
  • projectId (optional, string) — The project to export from. Omitted, a "page" or "site" export uses the project whose address pattern matches url, else this key's project; a "project" export uses this key's project.

import_threads

Arguments: projectId · Experimental: exports · Added in: 0.14.0

Import threads from a file

Part of export and import, which are experimental: they may change or be removed in any release.

  • projectId (optional, string) — The project to import into. Omitted, this key's project; a file's pages go into this one project whatever their addresses' patterns say.

delete_exported_threads

Arguments: exportId, sha256 · Experimental: exports · Added in: 0.14.0

Delete the threads an export holds

Part of export and import, which are experimental: they may change or be removed in any release.

  • exportId (required, string) — The exportId export_threads answered.
  • sha256 (required, string) — The SHA-256 of the saved file, as 64 lowercase hex digits.

Prompts

A prompt is a job that your MCP client lists for you to start. The client asks you for the arguments listed under each prompt. This section leaves out each prompt’s description, which is written for the agent.

answer_thread

Arguments: threadId

Answer a comment thread

  • threadId (required) — The thread to answer. A permalink's first hash segment is one.

catch_up

Arguments: project

Catch up on what is waiting

  • project (optional) — A project id, or a project's exact name, to work that project alone. Leave it out to work every project.

discuss

Arguments: project

Keep answering as people reply

  • project (optional) — A project id, or a project's exact name, to work that project alone. Leave it out to work every project.

open_in_planner

Arguments: file · Experimental: planner

Open a document in the planner

Part of the planner, which is experimental: it may change or be removed in any release.

  • file (required) — The Markdown file to open, as a path you can read.

Resources

A resource is a skill: a document on how to work with the server. An agent whose client does not read MCP resources gets the same text from the read_skill tool. This section leaves out each resource’s description, which is written for the agent.

answering

URI: commentware://skills/answering · Media type: text/markdown

Answering somebody in a thread

triage

URI: commentware://skills/triage · Media type: text/markdown

What is waiting for you

placing

URI: commentware://skills/placing · Media type: text/markdown

Where a comment goes

Documentation

Type to search…

↑↓ navigate↵ selectEsc close