mcpField
M
MarkLayer

MarkLayer

本地服务
marklayer.app开发工具441 周前更新

关于 MarkLayer

MarkLayer MCP 将网页评审房间连接到 AI 编码 Agent。Agent 可处理人工批注、更新状态,并为评审者留下评论或文本修改建议。

主要功能

  1. 01读取页面结构与批注
  2. 02监听新反馈
  3. 03确认、解决、忽略或回复批注
  4. 04创建评论和文案修改建议
  5. 05分享预览房间并跟踪后续步骤

适用场景

  1. 01将网页反馈整理为 Agent 工作队列
  2. 02审阅尚无批注的页面并发表评论
  3. 03跟踪不同预览版本的修复进度

MCP 相关

该服务向 MCP 客户端提供 MarkLayer 房间、页面和批注工具。客户端可连接远程房间端点,也可运行 stdio 程序访问房间。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"thevrus-marklayer": {
"command": "npx",
"args": [
"-y",
"marklayer-mcp"
],
"env": {
"MARKLAYER_ROOM": "<MARKLAYER_ROOM>",
"MARKLAYER_API_BASE": "<MARKLAYER_API_BASE>",
"MARKLAYER_AGENT": "<MARKLAYER_AGENT>"
}
}
}
}
启动命令npx -y marklayer-mcp
需要配置的环境变量
MARKLAYER_ROOMSame as --room: the share URL or room id to join at startup.
MARKLAYER_API_BASEOverride the MarkLayer worker base URL. Defaults to https://marklayer.app; useful against a local dev worker.
MARKLAYER_AGENTName shown to the humans in the room for this agent. Defaults to claude-code.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmarklayer-mcp0.6.0

工具

12

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

marklayer-mcp

MCP(Model Context Protocol)服务,可将 MarkLayer 标注接入 AI 编码 Agent。

用户使用 MarkLayer 为任意网页添加标注后,Agent 会收到这些评论,并将其作为结构化任务队列处理:它可以确认、解决、忽略每条评论,也可以逐条回复,而人类可以实时看到状态更新。反过来也可以:让 Agent 查看某个房间并评审页面,它就能留下自己的评论和文案编辑建议,供人类审核处理。

安装

你可能不需要安装。每个 MarkLayer 分享链接本身就是远程 MCP 服务,地址为原链接后加 /mcp。因此,支持远程(Streamable HTTP)服务的客户端无需安装任何内容即可连接:

claude mcp add --transport http marklayer https://marklayer.app/s/abc123/mcp

添加 ?agent=cursor 或其他名称,让房间内的人知道是谁在处理;默认值为 agent。该端点绑定到对应房间,因此具备下方列出的所有工具,但 marklayer_connect_room 除外。

此软件包提供相同工具的 stdio 版本,不包含 Claude 专用配置。当客户端无法连接远程服务,或你希望安装一次即可处理所有房间(Claude Code、Cursor、Windsurf、VS Code、Codex CLI 等)时,请使用此版本:

# Claude Code:
claude mcp add marklayer -- npx -y marklayer-mcp

# Or pre-connect to a specific room:
claude mcp add marklayer -- npx -y marklayer-mcp --room https://marklayer.app/s/abc123

对于其他 MCP 客户端,请添加一个指向相同命令的 stdio 服务条目(根据你的客户端调整配置文件或键名,例如 Cursor 的 ~/.cursor/mcp.json、Windsurf 的 mcp_config.json、VS Code 的 .vscode/mcp.json 等):

{
  "mcpServers": {
    "marklayer": {
      "command": "npx",
      "args": ["-y", "marklayer-mcp"],
      "env": { "MARKLAYER_AGENT": "cursor" }
    }
  }
}

设置 MARKLAYER_AGENT(或 --agent)以标识此 Agent——人类会看到它作为评论作者和“分配给”徽标,因此非 Claude 客户端不应使用默认值。

使用方法

在 Agent 提示词中:

关注我的 MarkLayer 标注。对每条标注,先确认,再修复,最后附上摘要并将其解决。

Agent 会循环调用 marklayer_watch_annotations,并在收到反馈时进行处理。

工具

工具描述
marklayer_connect_room通过分享 URL 或纯 ID 连接到房间。
marklayer_room_info页面 URL、视口宽度和时间戳。
marklayer_read_page获取页面的标题、文本、链接和控件,并附带选择器。可让 Agent 评审尚无人添加标注的页面。
marklayer_list_annotations列出标注,可按状态筛选。
marklayer_get_annotation获取一条标注的完整详情和回复线程。
marklayer_watch_annotations阻塞等待新标注到达,并返回一批标注。
marklayer_acknowledge将状态设为处理中,并标记为由此 Agent 处理。
marklayer_resolve将状态设为已解决,可附带摘要回复。
marklayer_dismiss将状态设为已忽略,并附上人类可见的原因。
marklayer_reply发布回复但不更改状态(例如提出澄清问题)。
marklayer_create_annotation自行留下新评论,主动提供反馈而非回复。
marklayer_suggest_edit对一段文本提出精确的文案或语法修改建议,以差异形式呈现,供人类接受。
marklayer_share_preview在你创建的 URL 上开启新的评审房间并连接到该房间。使用与当前房间相同的 repo 和 branch(或 previous),即可将其设为下一个版本。
marklayer_set_next_steps发布按顺序排列的检查清单,每个步骤都关联标注 ID。会替换之前的清单。
marklayer_complete_next_step勾选完成某个步骤;评审者会实时看到更新。
marklayer_ask在房间中发起一个包含 2-6 个选项的投票。每位评审者可投一票,并可重新投票。
marklayer_get_feedback一次读取各状态的标注数量、未解决的标注、检查清单进度和投票统计。

选项

--room <url-or-id>   Connect at startup; otherwise call marklayer_connect_room.
--api-base <url>     Override worker URL (default https://marklayer.app).
--agent <name>       Identifier shown to humans (default "claude-code").

对应的环境变量:MARKLAYER_ROOM、MARKLAYER_API_BASE、MARKLAYER_AGENT。

故障排查

首次启动时出现“Connection closed”。 首次运行时,npx -y 会下载软件包,冷启动下载可能耗时过长,超过 MCP 客户端的启动超时时间。先预热一次缓存(npx -y marklayer-mcp --help)再重新连接,或者提前安装:npm i -g marklayer-mcp,并让客户端指向该二进制文件。

工具返回“room is not connected”。 WebSocket 已断开连接——房间由 Durable Object 保持开启,长时间空闲的 Agent 可能会断开连接。使用相同的 URL 调用 marklayer_connect_room 以重新连接。

以编程方式创建房间

此服务会使用现有的分享链接。若要通过代码创建一个或多个分享链接——例如,在让 Agent 连接之前,为一批 URL 中的每个页面预先创建一个房间——请直接向公共 HTTP API 发送 POST 请求:

curl -X POST https://marklayer.app/api/$ID \
  -H 'Content-Type: application/json' \
  -d '{"ops":[],"url":"https://example.com/page-1","width":1440,"expires_in":2592000}'
# Share link: https://marklayer.app/s/$ID

对于预览构建版本的评审房间,POST /api/$ID/preview 接受 { url, title, repo?, branch?, sha?, note?, questions?, previous? },且绝不会覆盖已存在的 id。版本只能通过 previous 链接到你已有的房间:两个房间不会仅凭 repo 和 branch 建立关联,因为版本切换器会显示每个房间的相邻房间。marklayer_share_preview 会通过 stdio 调用此路由;通过 HTTP(/s/:id/mcp)调用时,它会在 Worker 中创建房间,与 URL 中的房间建立链式关联,并返回用于重新连接的 mcpUrl,因为该端点始终绑定到自己的房间。

$ID 由调用方提供(使用 nanoid / crypto.randomUUID()——它就是访问令牌)。无需身份验证,也无需 SDK。完整详情:https://marklayer.app/llms-full.txt

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。