关于 Kilter Board Logbook
Kilter Board Logbook 是一个非官方、只读的 MCP 服务,让 AI Agent 查询并分析用户自己的攀岩日志。它提供训练记录、项目、难度统计和进展趋势,且不会写入 Kilter 账户。
主要功能
- 01查询攀岩日志与训练场次
- 02筛选完攀记录和项目
- 03按角度比较攀爬数据
- 04查看难度分布与闪攀率
- 05分析周度或月度进展
- 06只读访问,不修改账户
适用场景
- 01回顾最近一次训练
- 02查看特定墙面角度的项目
- 03比较不同角度的攀爬表现
- 04检查难度分布与进展趋势
MCP 相关
该项目是标准本地 MCP 服务,向 MCP 客户端提供日志、完攀、项目、场次、难度统计和进展查询工具。所有工具均为只读,并使用配置的 Kilter 账户凭据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx kilter-mcpKILTER_USERNAME密钥Kilter Board account username or emailKILTER_PASSWORD密钥Kilter Board account passwordKILTER_TIMEZONEIANA timezone for grouping climbs into days (default: host timezone)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
9收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| angle | any | 否 | 墙面角度,单位为度(例如 20、30、40)。省略则查询所有角度。 |
| limit | any | 否 | 要返回的条目数上限。 |
| topped | any | 否 | true = 仅返回已完攀(成功)的条目,false = 仅返回未成功的尝试。 |
| end_date | any | 否 | 含首尾的结束日期,格式为 YYYY-MM-DD,使用用户所在时区。 |
| start_date | any | 否 | 含首尾的开始日期,格式为 YYYY-MM-DD,使用用户所在时区。 |
详细介绍
kilter-mcp
一个非官方的 MCP 服务,可让你的 AI Agent 读取并 分析你自己的 Kilter Board 日志。
将它添加到 Kiro(或其他 MCP 客户端),提供你的 Kilter 登录信息,然后直接与 Agent 对话:
我上次的 Kilter 训练情况如何? 我目前在 30° 角度下的项目有哪些? 比较一下我在 20° 和 40° 角度下的攀爬表现。 展示我的难度等级分布。我的最高难度完攀是什么?我有进步吗?
只读,不会向你的 Kilter 账户写入任何内容。
添加到 Kiro 和其他客户端(Claude、Codex、Cursor 等)
点击按钮(Kiro 会先显示确认对话框),然后跳到第 3 步。也可以手动操作:
- 在 Kiro 中打开 MCP 配置:命令面板 → Kiro: 打开用户 MCP 配置 (JSON)
(或打开工作区配置
.kiro/settings/mcp.json)。 - 添加服务:
{
"mcpServers": {
"kilter": {
"command": "uvx",
"args": ["kilter-mcp"],
"env": {
"KILTER_USERNAME": "${KILTER_USERNAME}",
"KILTER_PASSWORD": "${KILTER_PASSWORD}"
},
"disabled": false,
"autoApprove": []
}
}
}
- 提供你的 Kilter 凭据。可以:
- 将
KILTER_USERNAME和KILTER_PASSWORD设为环境变量(在 Settings → Mcp Approved Env Vars 中批准这些变量后,Kiro 会展开${VAR};请参阅如何在 macOS、Linux 和 Windows 上设置环境变量),或 - 将
${...}占位符替换为实际值。仅在用户配置(~/.kiro/settings/mcp.json)中这样做,切勿放入可能会提交的工作区配置中。
- 将
- 保存。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)、架构说明以及添加工具的方法。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。