mcpField
M
Mahonia

Mahonia

远程服务
mahonia.app地图与出行02 天前更新

关于 Mahonia

Mahonia 是面向徒步者的装备清单与背包重量追踪应用,可用于规划、称重和分享清单。其远程 MCP 服务允许 AI 助手读取共享清单,并凭编辑链接修改清单,无需账户。

主要功能

  1. 01统计基础、穿戴和消耗品重量
  2. 02支持逐行单位与消耗品热量
  3. 03分享只读链接和协作编辑链接
  4. 04提供打包清单模式
  5. 05导入和导出多种清单格式
  6. 06装备目录与可复用装备库

适用场景

  1. 01徒步前比较背包重量
  2. 02与他人共同规划装备清单
  3. 03将清单用作出发前核对表
  4. 04复用装备并导入现有清单

MCP 相关

`/mcp` 上的远程 MCP 服务提供七种工具,可读取共享清单、搜索装备目录,并在提供编辑链接时修改清单。它不开放需要账户的装备库。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mahonia.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

7
参数类型必填说明
share_codestring是清单的分享代码或分享链接(mahonia.app/s/CODE)。编辑链接不可用。

详细介绍

Mahonia

面向徒步者的装备清单和背包重量追踪器。创建打包清单,查看重量, 然后分享。

清单无需注册:开始输入后,清单便归你所有,并由一个私密且不可猜测的链接保存。 装备库是唯一需要账户的部分,因为“我拥有的装备”必须能在不同设备间跟随你, 而不是只存在于某个浏览器中。

功能

  • 称量背包。 显示基础装备、穿戴装备和消耗品的总重量,并细分穿戴装备(例如三双 袜子,其中一双穿在脚上)和随身携带的重量。重量为可选项——没有填写重量的清单 不会显示总重量。
  • 精心整理的装备目录,可通过自动补全使用,条目附有引用且可以更正,并且每行的 值都可以单独覆盖。
  • 每行可设置单位。 在以克为单位的清单中输入 32.5 oz,该行仍以盎司显示, 而总重量保持以克显示。
  • 消耗品的卡路里,并汇总清单中的总卡路里。
  • 行程日期,以日历日期记录——没有时间和时区,因此乘飞机出行也不会改变行程日期。
  • 两种分享方式: 只读链接,以及用于共同规划的编辑链接。如果链接泄露,两种都可以 更换。
  • 打包模式——将同一份清单显示为核对清单,方便在出发前一晚使用。
  • 装备库会在你整理清单时自动填充,让你下次只需一次选择即可添加装备。
  • 导入 LighterPack(分享链接或 CSV)或 JSON 备份;导出为 CSV、 JSON 或 Markdown。
  • 恢复点,让误删的内容在提示消失很久之后仍可撤销。

本地运行

需要 Node 24(固定版本,参见 .nvmrc)。

npm install
npm run seed   # load the gear catalog into a local database
npm run dev    # http://localhost:3000

未设置环境变量时,应用会完全在你的机器上运行,并使用本地 PGlite 数据库。将 .env.example 复制为 .env, 即可连接真实的 Postgres(Neon)和 Redis(Upstash), 用于生产环境部署。

任何需要连接外部服务的功能都会降级为输出到控制台,而不是直接跳过,因此全新检出的代码 也能正常运行,而非无法使用:

未设置的变量本地环境中的行为
RESEND_API_KEY登录链接会输出到服务器控制台,而不会通过电子邮件发送。
GITHUB_FEEDBACK_TOKEN / _REPO“发送反馈”(位于编辑器的操作菜单中)会将内容输出到控制台,并告知你反馈尚未提交。

这两项在生产环境中都会明确报错,而不是悄悄接受无法送达的输入。

技术栈

Nuxt 4 · Vue 3 · TypeScript · Drizzle ORM · 部署于 Vercel。

MCP 连接器

应用在 /mcp 提供远程 MCP 服务,因此可以直接将 https://mahonia.app/mcp 交给 AI 助手作为连接器,无需安装任何内容,也无需登录。共有七个工具:将共享清单读取为数据或 Markdown、搜索目录、获取某件商品的款式,以及持有编辑链接时创建清单、添加条目并设置行程日期和路线。分享码是读取权限,编辑链接的片段令牌是写入权限;令牌到达后会经过哈希处理,且仅作为工具参数传递,因此不会引入新的信任关系。传输方式是通过 POST 进行无状态 JSON-RPC(MCP 修订版 2025-06-18 和 2025-11-25;无会话、无事件流,GET 返回 405),由 server/routes/mcp.post.ts 手工实现,工具位于 server/utils/mcp.ts;这两个文件都记录了设计理由。我的装备功能刻意不开放:它需要账户令牌,这是另一项独立决策。

将其添加到客户端:

在 Cursor 中安装 在 VS Code 中安装

  • Claude(claude.ai、桌面版、移动版):将 Mahonia 添加为连接器 并选择“No sign-in”。在此处添加的连接器也可在 Claude Code 中使用。
  • Claude Code: claude mcp add --transport http --scope user mahonia https://mahonia.app/mcp
  • Gemini CLI: gemini mcp add --transport http mahonia https://mahonia.app/mcp
  • **ChatGPT:**依次进入 Settings、Developer mode,添加 https://mahonia.app/mcp,并选择“No Authentication”。
  • 任何可读取 mcp.json 的客户端: {"mcpServers":{"mahonia":{"url":"https://mahonia.app/mcp"}}}
  • **仅支持 stdio 的客户端:**使用 npx mcp-remote https://mahonia.app/mcp 建立桥接。

此服务已列入官方 MCP 注册表,名称为 app.mahonia/mahonia;server.json 是注册信息,通过域名的 DNS 验证并使用 mcp-publisher 发布。

更新日志

更新日志位于 GitHub Releases:每当有内容发布时,每天发布一个版本,并以日期标记(v2026.09.12),由工作流根据下方条目生成。当变更会影响用户时,请在同一个 PR 中添加一条简单的一句话说明:

npm run changelog -- --added "Sort folders by weight."
npm run changelog -- --fixed "…" --changed "…"

条目按 Added / Changed / Fixed 分类,描述可观察到的变更,而非实现方式。

每次运行都会在 content/changelog.d/ 下写入自己的文件,因此同时打开的 PR 中的条目不会冲突——content/changelog.json 是整理后的归档,npm run changelog:compact 会不时将片段合并到其中。太平洋时间一天结束后,.github/workflows/releases.yml 会将其生成一个版本;迟交的条目会更新当天的说明。

对于缺少条目的用户可见变更 PR,PR 评论会提醒作者,但不会自动填充,因此条目始终由人工撰写(文字简洁、经过筛选)。如果 PR 合并时没有条目,该日版本就会暂时省略这项变更,直到补录。对于非用户可见的工作,请为 PR 标题添加前缀(refactor:、chore:、ci:、test:、docs:、build:),或添加 skip-changelog 标签——perf: 和 style: 不适用,因为这两类变更都会被访客注意到。

许可证

代码采用 MIT 许可证。seed/ 下的齿轮目录数据单独授权,详见 seed/LICENSE.md。

客户端打包的库的第三方声明位于 public/licenses.txt,并通过 /licenses.txt 提供。之所以需要此文件, 是因为 Mahonia 会打包其依赖项,而不是从 CDN 加载(CDN 中的 <script> 可能会从 location.hash 读取列表的编辑令牌)。因此,提供该网站 也构成了对这段代码的再分发,而且压缩器会移除这些库用于标注版权信息的横幅注释。当某个依赖项的代码开始进入 浏览器时,请添加相应条目;仅供服务器使用的软件包不会被再分发,因此不列出。

评论

支持 Markdown

第一次接触 MCP?

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

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