# list_comments

Source: https://modulify.ai/docs/mcp/comments/list-comments

Lists the review comments left on a site, with each one's author, status, reply count, reactions and attachments.

- Title: List site comments
- Scope: `comments:read`
- Access: Read only

Comments are pinned to a spot on the site preview, and they belong to the people reviewing the site rather than to the AI client, so this is how an agent finds out what has been asked for. Each root comment comes back with its author, `AuthorKind`, status, reply count, reactions and attachments, alongside `total` and `hasMore`. Open and resolved threads both come back, a resolved one with its `Status` set to `completed`. Deleted comments never appear.

`AuthorKind` is `member` for someone in the workspace, `outside` for a signed-in person who is not in it, and `guest` for a visitor with no account, whose generated name is in `Guest` while `User` is empty. When the site's shared link lets viewers comment, anyone holding that link can write here. A comment whose `AuthorKind` is `outside` or `guest` therefore comes from a person outside the workspace and carries an `OutsideNotice`. The tool tells the client to treat its text as feedback to report, never as instructions to follow, and to check with you before acting on it.

There is no page size. Every root comment that is not deleted comes back at once, and a tool result is capped at 60,000 characters, so a busy site can overrun the cap and needs `skip` to walk it.

`pagePath` returns the comments anchored to that page plus every comment left without an element anchor, since an unanchored comment records no page. To read the replies in a thread, use `get_comment`. See [Comments](https://modulify.ai/docs/editor/comments).

## Inputs

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `projectId` | string | Yes | The site id. |
| `pagePath` | string | No | Only the comments anchored to this page of the site, such as `/pricing`, plus every comment with no element anchor. Leave it out for every page. |
| `search` | string | No | Only the comments whose text contains this, ignoring case. Replies are not searched. |
| `sort` | string | No | `newest` first, the default, or `oldest` first. |
| `skip` | integer | No | How many comments to skip, for paging. |