mcpField
H
honeybook-mcp

honeybook-mcp

本地服务
github.com/chrischall商业与营销14 天前更新

关于 honeybook-mcp

honeybook-mcp 是供 Claude 使用的 HoneyBook 客户门户 MCP 服务,面向需要查看婚礼供应商合同、账单和沟通记录的账户持有人。它通过已登录的浏览器会话访问门户,并对签约、付款和发消息等操作要求确认。

主要功能

  1. 01读取供应商合同与账单
  2. 02查看项目、消息和会议
  3. 03读取任务、备注与附件
  4. 04查看付款计划及支付状态
  5. 05确认后生成签约和付款链接
  6. 06通过门户发送或回复消息

适用场景

  1. 01查找尚未签署的合同和待付账单
  2. 02查看供应商发送的清单与消息
  3. 03确认下一场会议时间及加入链接
  4. 04核对已付金额和未结款项

MCP 相关

作为 MCP 服务,它向 Claude 提供 HoneyBook 工作区、文件、消息、会议及付款等工具。通过 ContextMint Bridge 使用用户已登录的门户会话;写入操作需确认。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"chrischall-honeybook": {
"command": "npx",
"args": [
"-y",
"honeybook-mcp"
],
"env": {
"HONEYBOOK_API_VERSION": "<HONEYBOOK_API_VERSION>",
"HONEYBOOK_DISABLE_FETCHPROXY": "<HONEYBOOK_DISABLE_FETCHPROXY>",
"HONEYBOOK_SESSIONS_DIR": "<HONEYBOOK_SESSIONS_DIR>",
"FETCHPROXY_WS_PORT": "<FETCHPROXY_WS_PORT>",
"FETCHPROXY_WS_HOST": "<FETCHPROXY_WS_HOST>",
"FETCHPROXY_IDENTITY_DIR": "<FETCHPROXY_IDENTITY_DIR>"
}
}
}
}
启动命令npx -y honeybook-mcp
需要配置的环境变量
HONEYBOOK_API_VERSIONPin the hb-api-client-version header (a positive integer, e.g. 2601) instead of auto-fetching it from /api/gon. Leave unset normally — a pinned value can go stale and HoneyBook then answers 400.
HONEYBOOK_DISABLE_FETCHPROXYSet to 1/true to refuse to call the fetchproxy bootstrap (CI / headless). use_magic_link and use_flow_link then fail instead of capturing a credential. Defaults to false.
HONEYBOOK_SESSIONS_DIRBase directory holding sessions.json and flows.json (the captured portal sessions and questionnaire credentials). Defaults to ~/.honeybook-mcp.
FETCHPROXY_WS_PORTLocalhost port of the fetchproxy concentrator the ContextMint Bridge extension connects to (default 37149). Every MCP on one machine shares it, so move it for all of them or not at all.
FETCHPROXY_WS_HOSTBind interface for the fetchproxy concentrator, a literal IP only (default 127.0.0.1). Keep on loopback; it exists for hosted deployments that run each MCP in its own network namespace.
FETCHPROXY_IDENTITY_DIRAbsolute path where the fetchproxy long-term identity keypair is stored (default ~/.fetchproxy/identity/).

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

安装包
npmhoneybook-mcp1.2.8

工具

22

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

参数类型必填说明
magic_link_urlstring是来自供应商 HoneyBook 电子邮件的完整 magic-link URL,例如 https://<vendor>.hbportal.co/app/workspace_file/<id>/...。仅用于推导门户来源;你必须已在安装了 ContextMint Bridge 扩展程序的 Chrome 标签页中打开此 URL。

详细介绍

HoneyBook MCP

CI npm license

一个 Model Context Protocol 服务,可将 Claude 连接到 HoneyBook 客户门户,让你能够用自然语言访问婚礼供应商发送的合同和发票。

警告

AI 开发的项目。 此代码库由 Claude Code 构建并持续维护。没有人类审核过其实现。使用前请检查所有代码和工具权限。

你可以做什么

向 Claude 提出类似这样的问题:

  • “粘贴你的魔法链接——我会连接到你的 HoneyBook 门户。”
  • “显示所有尚未签署的合同。”
  • “我下个月有哪些到期发票?”
  • “总结一下 Silk Veil Events 的合同。”
  • “给我一个签署摄影师合同的深层链接。”
  • “策划师这个月给我发了什么?把清单读给我听。”
  • “回复 Ivy 的上一条消息,询问彩排时间。”
  • “我和策划师下次 Zoom 会议是什么时候?链接是什么?”
  • “到目前为止我付了多少钱?还有多少未付?”

要求

  • Claude Desktop 或 Claude Code
  • Node.js 22 或更高版本
  • 使用 HoneyBook 的婚礼供应商发送的魔法链接邮件
  • ContextMint Bridge 浏览器扩展——在 Chrome 中,从发布页面下载 Chrome 压缩包并以解压缩的方式加载(chrome://extensions → 开发者模式 → 加载已解压的扩展程序)。目前尚未提供 Safari 版本(它将随 ContextMint 应用一起发布,但该应用目前没有公开下载),因此暂时请使用 Chrome。use_magic_link 用它从已登录供应商门户的标签页中获取会话快照。

条款确认

使用此 MCP 服务,即表示你确认并同意以下内容:

1. 此服务访问的是你自己的 HoneyBook 工作区。 每个请求都会通过 ContextMint Bridge 扩展,使用你本人已登录的浏览器会话发送。此服务不会也无法访问其他人的工作区。

2. 你使用此服务须遵守 HoneyBook 的服务条款,就像你直接使用 honeybook.com 时一样。与此处最相关的条款如下:

在使用本服务时,你不得进行或使用任何数据挖掘、机器人、抓取或类似的数据收集或提取方法。

此外,用户不得“修改、复制、嵌入、抓取、出租、租赁、出借、出售、分发本服务或服务内容,也不得基于本服务或服务内容创作衍生作品”。

每次调用此服务中的工具,即表示你同意这些条款——维护者于 2026-05-23 阅读了这些条款。HoneyBook 的服务条款广泛禁止数据挖掘和抓取;此 MCP 是未经官方认可的自动化工具,HoneyBook 并未为其授予例外。

3. 仅限个人单一业务使用。 本项目与 HoneyBook, Inc. 无关联,未获其认可或赞助,也不与其合作。它是一款个人自动化工具,供个人 HoneyBook 账户持有人操作自己的工作区。请勿代表其他业务使用此工具,请勿批量提取 HoneyBook 的目录或模板内容,也请勿在此基础上创建衍生 SaaS 产品。

4. 不保证稳定性。 此服务会调用 HoneyBook 的内部接口,而 HoneyBook 可能随时更改这些接口。此服务可能会失效。

5. 你须对使用此服务时与你的 HoneyBook 账户相关的任何后果承担全部责任,包括速率限制、账户警告、暂停或 HoneyBook 采取的任何执法行动。HoneyBook 能够检测自动化流量,且可能封锁你的 IP 或工作区。如果 HoneyBook 对你的使用提出异议,请停止使用此服务。

本节是维护者本着诚信对条款所作的概述,不构成法律建议,也不会修改或取代 HoneyBook 的实际服务条款。

安装

从源代码安装
git clone https://github.com/chrischall/honeybook-mcp.git
cd honeybook-mcp
npm install
npm run build

将以下内容添加到 Claude Desktop 配置文件(macOS 上为 ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "honeybook": {
      "command": "node",
      "args": ["/absolute/path/to/honeybook-mcp/dist/bundle.js"]
    }
  }
}

无需设置环境变量。以下可选变量可调整写入操作的确认方式,详见确认。

会话

HoneyBook 没有公开的客户门户 API。此 MCP 通过 ContextMint Bridge 浏览器扩展,复用你在浏览器中点击供应商的魔法链接后已有的身份验证状态。

一次性设置:

  1. 从其发布页面安装 ContextMint Bridge:在 Chrome 中,加载解压后的 chrome zip。Safari 目前尚不可用(它将随 ContextMint 应用一同发布,但该应用没有公开下载渠道)——暂时请使用 Chrome。 ContextMint Bridge 是更名后的 fetchproxy 浏览器扩展,由同一位维护者开发——fetchproxy 自己的 README(fetchproxy#extension)提供了该扩展的链接。其源代码公开在 nullnet-app/contextmint-bridge:你可以自行构建,或使用旁边发布的 .sha256 文件校验发布 zip(shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256)。
  2. 在常用浏览器中点击每个供应商的魔法链接。这会让你登录其 *.hbportal.co 门户。

按供应商激活:

  1. 确保供应商的门户标签页已打开(即其邮件中的魔法链接)。
  2. 在 Claude 中,使用魔法链接 URL 调用 use_magic_link——该工具会要求 ContextMint Bridge 扩展从页面的 localStorage["HONEYBOOK_REACT_CURR_USER"] 中提取身份验证字段并生成快照,然后关闭 Bridge。标签页只需保持打开且已登录;不会从实时请求中读取任何内容。不会启动无头浏览器。
  3. 所有其他工具默认使用最近激活的会话。多个供应商处于激活状态时,请明确传入 origin。

会话保存在内存中,并持久化到 ~/.honeybook-mcp/sessions.json(mode 0600),以便在 MCP 重启后继续使用。会话过期时,请重新运行 use_magic_link。

问卷(“flow”)链接

供应商可能会发送另一种不同格式的链接:

https://<vendor>.hbportal.co/flow/<flowId>?hash=…&userId=…

该链接不会让你登录门户。它会打开一个问卷,并存储该流程专用的凭据——HoneyBook 称之为弱身份验证——位置为 localStorage["HONEYBOOK_REACT_WEAK_AUTH_<flowId>"]。使用 use_flow_link 捕获该凭据,并使用 get_flow 读取。

这两种凭据会刻意分开保存,分别存放在两个文件和两个存储中:

门户会话流程凭据
捕获工具use_magic_linkuse_flow_link
链接格式/app/link/resolve/…/flow/<flowId>?hash=…
存储位置~/.honeybook-mcp/sessions.json~/.honeybook-mcp/flows.json
可读取内容工作区、文件、发票、付款方式该问卷

每个工具都会按名称拒绝另一种格式的链接;如果门户工具仅使用流程凭据运行,它也会直接说明这一点,而不是等到稍后才返回难以理解的 HoneyBook 错误。list_active_sessions 会分别报告这两种凭据。

get_flow 会执行与问卷页面相同的两个调用:先调用公开的 GET /api/v2/flow/<flowId>/minimal 获取供应商公司 ID,然后调用 GET /api/v2/client/flow/<flowId>/active?ctxc=<companyId>。如果第一个调用未返回公司 ID,它就会在此处停止并说明原因——不带 ctxc 调用 /active 会返回一个裸露的 400,看起来像是凭据过期。

需要注意的是:存储键中包含流程 ID,因此每份新问卷都会在已声明的 fetchproxy 作用域中生成一个新键。扩展会根据配对时批准的作用域进行限制,所以每份问卷都需要重新批准一次。这是扩展的正常工作,并非故障。

可用工具

与供应商交互的工具接受可选的 origin 参数(例如 https://acme.hbportal.co)。仅有一个会话处于活动状态时,系统会自动推断该参数。

工具功能权限
use_magic_link从魔法链接 URL 捕获会话确认
list_active_sessions显示活动凭据,并按类型分类自动
use_flow_link捕获问卷(流程)凭据确认
get_flow读取一份问卷及其答案自动
list_workspace_files列出某个供应商的文件;可按类型筛选自动
get_workspace_file查看某个文件的完整详情自动
get_workspace工作区详情及状态标记自动
list_payment_methods已保存的付款方式(品牌、末 4 位、到期日期)自动
sign_contract获取用于在门户中签署的深层链接(确认后)确认
pay_invoice获取用于在门户中付款的深层链接(确认后)确认
list_projects列出你与某个供应商的项目及其工作区 ID自动
get_project项目详情:日期、地点、人员、自定义字段自动
list_messages列出工作区中的消息(或活动日志),按时间从新到旧排列自动
get_message查看一条消息的完整内容:正文、附件、送达状态自动
send_message通过门户发送消息或回复(确认后)确认
mark_messages_seen将动态消息标记为已读(读取本身不会自动执行此操作)自动
list_meetings列出已安排的会议及加入链接,按最新时间排序自动
list_tasks列出供应商分配给你的任务及数量自动
list_notes列出供应商分享的备注自动
list_attachments列出工作区中的零散图片、文件和书签自动
list_payments列出付款计划及已付/未付总额自动

send_message 是唯一一个代表你执行操作的工具:它会创建与门户“活动”编辑器相同的 send_workspace_message 任务,并等待 HoneyBook 完成任务,因此供应商会收到一封普通的 HoneyBook 电子邮件。 在你确认之前,它只会预览收件人、主题和正文 — 参见确认。

确认

sign_contract、pay_invoice 和 send_message 在执行前会要求你确认。能够显示 MCP 确认提示的客户端(Claude Code)会显示提示。无法显示提示的客户端(claude.ai、Claude Desktop)上,首次调用不会执行任何操作,而是返回预览和一个 confirmToken;只有使用相同参数和该令牌再次调用,操作才会继续。令牌只能使用一次;如果两次调用之间令牌所覆盖的内容发生变化(文件标题、消息正文、工作区的收件人),令牌就会被拒绝。

变量默认值
MCP_CONFIRM_MODEask-user在无法显示确认提示的客户端(claude.ai、Claude Desktop)上,写入操作的处理方式。ask-user:分两步执行——首次调用不执行任何操作,而是返回预览和令牌;模型必须先在聊天中获得你的批准,然后才能使用令牌再次调用。auto:同样分两步执行,但模型查看预览后可以使用令牌。refuse:在此类客户端上拒绝写入操作。能够显示提示的客户端(Claude Code)始终会显示实际提示,除非 MCP_CONFIRM_ELICITATION=off。无法识别的值会按 refuse 处理。
MCP_CONFIRM_ELICITATIONonoff 表示不发送确认提示,因此所有客户端都会采用 MCP_CONFIRM_MODE 的处理方式。对于声明能够显示提示、但实际上从不显示的客户端,请设置此项(受控调用会挂起——opencode 2.0.x)。其他任何值都会保持为 on,并显示 stderr 警告。
MCP_CONFIRM_TTL_SECONDS600令牌的有效时长。
MCP_CONFIRM_SECRET每个进程随机生成签名密钥;只有在令牌必须在服务重启后继续有效时才设置。

故障排除

  • “HoneyBook auth expired” — 在 Chrome 中重新打开供应商的 magic link,然后重新运行 use_magic_link。
  • “No active HoneyBook session” — 先调用 use_magic_link。
  • “No active HoneyBook portal session. N flow (questionnaire) credentials are active” — 你捕获的是 /flow/ 链接,但调用的工具需要客户端门户链接。使用 /app/link/resolve/… 链接运行 use_magic_link,或使用 get_flow 读取问卷。
  • “that is a questionnaire (flow) link, not a client-portal link” — 对该链接使用 use_flow_link。
  • “no auth hash for flow …” — 你传入的链接丢失了 ?hash= 参数(页面加载后会重写 URL)。请从供应商邮件中重新复制原始链接。
  • 在 get_flow 中出现 “HoneyBook error 400 … NOT an auth failure” — 缺少必需的输入,并非凭据问题。通常是固定的 HONEYBOOK_API_VERSION 已过期:取消设置该变量,以便从 /api/gon 读取当前值。重新运行 use_flow_link 无济于事。
  • “no context id for flow …” — HoneyBook 的公共 /minimal 路由未返回问卷读取所需的供应商公司 ID。这也不是凭据问题。
  • “fetchproxy capture failed” — 安装 ContextMint Bridge,然后在该浏览器中打开供应商的 magic link。
  • “fetchproxy capture timed out” — 扩展程序没有找到可读取的已登录门户标签页。打开供应商的 magic link,确认门户页面已加载,然后重试。
  • “no confirmed browser session” — 扩展程序已连接,但尚未批准此 MCP。打开 ContextMint Bridge 弹出窗口,批准其中显示的配对码,然后重试。
  • “this browser … cannot serve the … capability” — 你配对的浏览器缺少捕获操作所需的 API。MCP 或配对并没有问题,重试或重新批准也无济于事:请在提供该 API 的浏览器中运行(例如 Chrome)。
  • “localStorage keys not in declared set” — MCP 现在读取的存储键不在现有配对的覆盖范围内。请参阅从 0.4.4 或更早版本升级。重试无济于事,这也不是版本问题。

从 0.4.4 或更早版本升级

0.4.5 需要在浏览器扩展中重新批准一次。 HoneyBook 将客户端门户会话从 localStorage["jStorage"] 移到了 localStorage["HONEYBOOK_REACT_CURR_USER"],因此 0.4.5 会读取不同的存储键。扩展会在配对时批准 MCP 声明的作用域,因此已有的配对不包含新的键,每次捕获都会被拒绝,并显示:

localStorage keys not in declared set: HONEYBOOK_REACT_CURR_USER

要解决此问题,只需执行一次以下操作:

  1. 打开 ContextMint Bridge 扩展弹出窗口。
  2. 撤销 honeybook-mcp。
  3. 重新运行 use_magic_link——会显示一个新的配对码。
  4. 在弹出窗口中批准该配对码。你批准的是新的作用域。

其他一切都不变:~/.honeybook-mcp/sessions.json 中的现有会话仍可使用,只有在会话本身过期时才需要重新捕获。

安全性

  • 会话在本地捕获——身份验证令牌不会离开你的计算机
  • ~/.honeybook-mcp/sessions.json 的权限模式为 0600;目录的权限模式为 0700
  • 写入工具(sign_contract、pay_invoice、send_message)会先要求你确认(请参阅确认);sign_contract 和 pay_invoice 会返回门户深层链接,而不会在无头模式下签署或付款

开发

npm test        # run tests
npm run build   # tsc + esbuild bundle

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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