mcpField
K
Kilter Board Logbook

Kilter Board Logbook

本地服务
github.com健康医疗23 周前更新

关于 Kilter Board Logbook

Kilter Board Logbook 是一个非官方、只读的 MCP 服务,让 AI Agent 查询并分析用户自己的攀岩日志。它提供训练记录、项目、难度统计和进展趋势,且不会写入 Kilter 账户。

主要功能

  1. 01查询攀岩日志与训练场次
  2. 02筛选完攀记录和项目
  3. 03按角度比较攀爬数据
  4. 04查看难度分布与闪攀率
  5. 05分析周度或月度进展
  6. 06只读访问,不修改账户

适用场景

  1. 01回顾最近一次训练
  2. 02查看特定墙面角度的项目
  3. 03比较不同角度的攀爬表现
  4. 04检查难度分布与进展趋势

MCP 相关

该项目是标准本地 MCP 服务,向 MCP 客户端提供日志、完攀、项目、场次、难度统计和进展查询工具。所有工具均为只读,并使用配置的 Kilter 账户凭据。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"wmmg101-kilter": {
"command": "uvx",
"args": [
"kilter-mcp"
],
"env": {
"KILTER_USERNAME": "<KILTER_USERNAME>",
"KILTER_PASSWORD": "<KILTER_PASSWORD>",
"KILTER_TIMEZONE": "<KILTER_TIMEZONE>"
}
}
}
}
启动命令uvx kilter-mcp
需要配置的环境变量
KILTER_USERNAME密钥Kilter Board account username or email
KILTER_PASSWORD密钥Kilter Board account password
KILTER_TIMEZONEIANA timezone for grouping climbs into days (default: host timezone)

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

安装包
pypikilter-mcp0.2.2

工具

9

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

参数类型必填说明
angleany否墙面角度,单位为度(例如 20、30、40)。省略则查询所有角度。
limitany否要返回的条目数上限。
toppedany否true = 仅返回已完攀(成功)的条目,false = 仅返回未成功的尝试。
end_dateany否含首尾的结束日期,格式为 YYYY-MM-DD,使用用户所在时区。
start_dateany否含首尾的开始日期,格式为 YYYY-MM-DD,使用用户所在时区。

详细介绍

kilter-mcp

一个非官方的 MCP 服务,可让你的 AI Agent 读取并 分析你自己的 Kilter Board 日志。

将它添加到 Kiro(或其他 MCP 客户端),提供你的 Kilter 登录信息,然后直接与 Agent 对话:

我上次的 Kilter 训练情况如何? 我目前在 30° 角度下的项目有哪些? 比较一下我在 20° 和 40° 角度下的攀爬表现。 展示我的难度等级分布。我的最高难度完攀是什么?我有进步吗?

Kiro 回答“我上次的 Kilter 训练情况如何?”,调用 kilter_get_sessions 并总结:在 20° 角度下记录了 16 次攀爬,其中 14 次一次完攀,并指出两次未成功尝试的线路,最高难度完攀为 V0(4C)。

只读,不会向你的 Kilter 账户写入任何内容。

添加到 Kiro 和其他客户端(Claude、Codex、Cursor 等)

添加到 Kiro

点击按钮(Kiro 会先显示确认对话框),然后跳到第 3 步。也可以手动操作:

  1. 在 Kiro 中打开 MCP 配置:命令面板 → Kiro: 打开用户 MCP 配置 (JSON) (或打开工作区配置 .kiro/settings/mcp.json)。
  2. 添加服务:
{
  "mcpServers": {
    "kilter": {
      "command": "uvx",
      "args": ["kilter-mcp"],
      "env": {
        "KILTER_USERNAME": "${KILTER_USERNAME}",
        "KILTER_PASSWORD": "${KILTER_PASSWORD}"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}
  1. 提供你的 Kilter 凭据。可以:
    • 将 KILTER_USERNAME 和 KILTER_PASSWORD 设为环境变量(在 Settings → Mcp Approved Env Vars 中批准这些变量后,Kiro 会展开 ${VAR};请参阅如何在 macOS、Linux 和 Windows 上设置环境变量),或
    • 将 ${...} 占位符替换为实际值。仅在用户配置(~/.kiro/settings/mcp.json)中这样做,切勿放入可能会提交的工作区配置中。
  2. 保存。Kiro 会启动服务,并显示 kilter_* 工具。开始提问吧。

遇到问题?在终端中导出相同的变量后,运行 uvx kilter-mcp --check。它会登录、统计你的日志,并打印一份不含机密或记录内容的简短报告,你可以将报告粘贴到问题反馈中。

要求:已安装 uv(其中包含 uvx)。Python 由 uv 管理。

Kiro CLI 用户也可以运行以下命令完成相同操作: kiro-cli mcp add --name kilter --scope global --command uvx --args kilter-mcp --env KILTER_USERNAME=... --env KILTER_PASSWORD=...。

可选:时区

训练记录会按你所在时区的日历日期分组,时区会根据运行服务的机器自动检测。如果检测有误(例如使用远程主机或容器化主机),请在 env 块中添加 "KILTER_TIMEZONE": "Europe/Rome"(可填写任意 IANA 名称)。每个响应都会注明所使用的时区。

其他客户端

kilter-mcp 是标准的本地 MCP 服务,也适用于 Claude Desktop、Claude Code、 Codex、Cursor、VS Code、Windsurf、Gemini CLI 和 Zed。各客户端的配置示例见 docs/clients.md。(ChatGPT 的聊天界面只接受远程 HTTP 服务,因此无法直接使用;详情请参阅同一文档。)

示例问题

Show my latest Kilter session.
What did I climb last Saturday?
List my sends from this month at 40°.
What are my current projects?
Which projects have I put the most attempts into?
Show my grade pyramid at 30°.
What is my flash rate per grade?
What are my five hardest sends?
Compare my climbing at 20° and 30°.
How has my climbing progressed over the last six months?

Agent 可使用的工具

工具返回内容
kilter_get_logs日志条目(可按数量上限、角度、完攀状态和日期范围筛选)
kilter_get_sends完攀线路,按时间从新到旧排列
kilter_get_projects在对应角度尝试过但从未完攀的线路
kilter_get_summary总计、角度、日期范围、最难的完攀线路/闪攀线路,以及按难度等级统计的完攀线路
kilter_get_grade_pyramid按难度等级统计的完攀线路数量及闪攀率
kilter_get_hardest_sends最难的不同完攀线路
kilter_get_sessions按天分组的条目
kilter_get_progression按月或按周统计的趋势
kilter_get_angle_stats按角度进行比较

所有工具均为只读,且只能访问你配置了凭据的账户。

数据解读方式
  • 一条日志记录代表某一天在某个墙面角度尝试的一条线路,并包含该条记录中的尝试次数。重新记录同一条线路会创建新条目。
  • status 的值为 flash(首尝完攀)、send(完攀)或 attempt(未完攀)。
  • 项目是一个 (climb, angle) 组合:在该角度尝试过,但未完攀。
  • 难度等级是 Kilter 对该角度下线路的当前共识等级。grade 表示 V 级别,font_grade 表示 Font 级别;始终会包含原始 difficulty_id(1-39)。启动时会从 Kilter 获取难度等级表,并在获取失败时使用内置备用表。
  • 如果你在应用中为线路评分,my_grade 和 my_rating(1-5 星)会记录你的评价;否则值为 null。
  • 日期按你的时区报告(见上文)。一场训练对应一个日历日。

安全与隐私

  • 你的用户名和密码仅用于从 Kilter 登录服务器(idp.kiltergrips.com)获取 OAuth 令牌,除此之外不会离开你的设备。
  • MCP 进程运行期间,令牌仅保存在内存中,绝不会写入磁盘。
  • 凭据和令牌绝不会包含在工具输出、日志或错误消息中。
  • 服务只会向 idp.kiltergrips.com 和 portal.kiltergrips.com 发送请求。
  • 也可在 MCP Registry 中找到,名称为 io.github.wmmg101/kilter-mcp。
  • 建议使用 ${KILTER_PASSWORD} 的形式,让密码保存在 shell 环境或密钥管理器中,而不是 JSON 文件里。
  • 无论 Agent 调用多少工具,你的日志每分钟最多获取一次;同时会遵守 Kilter 的速率限制响应。

完整详情及如何私下报告问题,请参阅:SECURITY.md。

免责声明

kilter-mcp 是一个非官方社区项目,与 Kilter Grips 无关,也未获其认可。它会调用与 Kilter 应用相同的端点;这些端点并非有文档说明的公共 API,且可能随时更改或停止工作。Kilter 的使用条款限制通过官方应用以外的方式访问其服务;请自行决定是否使用本项目,仅使用你自己的账户,并保持较低的请求量(服务每次工具调用都会获取一次你的日志)。

贡献

欢迎提交问题和拉取请求。请参阅 CONTRIBUTING.md,了解开发环境配置(git clone、uv sync、uv run pytest)、架构说明以及添加工具的方法。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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