Kilter Board Logbook

io.github.wmmg101由 GitHub 账号 wmmg101 发布v0.2.2更新于 Oct 24, 2026

Read-only access to your Kilter Board logbook: sessions, sends, projects and grade stats

已验证STDIO仅桌面位置与生活数据与分析

概览

AI 生成的概览

只读访问你自己的 Kilter Board 攀岩日志,让助手汇总训练场次、完攀、项目和难度统计。

可以做什么
提供一组只读工具读取个人 Kilter Board 日志: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。可返回日志条目、已完攀线路、未完成项目、总计、各难度完攀数与一次成功率、最难完攀、按天分组的场次、按月或按周的趋势以及各角度的对比。不会向 Kilter 账户写入任何内容。
适用场景
当你希望助手回答关于自己攀岩记录的问题时使用,例如最近一次训练表现如何、当前有哪些项目、不同难度或角度之间如何对比,以及一段时间内是否在进步。
运行要求
以 stdio 方式在本地运行,通过 uvx 启动(需安装 uv,Python 由 uv 处理)。需要 Kilter Board 账户,通过环境变量 KILTER_USERNAME 和 KILTER_PASSWORD 提供。可选环境变量 KILTER_TIMEZONE 指定用于按天分组攀爬记录的 IANA 时区。需要访问 Kilter 端点的网络连接。
安装前请注意
KILTER_USERNAME 和 KILTER_PASSWORD 是必需的机密信息;README 建议使用 ${KILTER_PASSWORD} 环境变量形式,并警告不要将明文值写入可能被提交的工作区配置。凭据用于从 Kilter 登录服务器获取 OAuth 令牌,且仅发送至 Kilter 端点。该项目为非官方项目,使用未公开的端点,可能随时变更,且 Kilter 的服务条款限制在官方应用之外访问其服务。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Kilter Board Logbook,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

kilter-mcp

An unofficial MCP server that lets your AI agent read and analyse your own Kilter Board logbook.

Add it to Kiro (or another MCP client), give it your Kilter login, and then just talk to the agent:

How did my last Kilter session go? What are my current projects at 30°? Compare my climbing at 20° and 40°. Show my grade pyramid. What are my hardest sends? Am I progressing?

[Kiro answering "How did my last Kilter session go?" by calling kilter_get_sessions and summarising: 16 climbs logged at 20°, 14 flashed, the two misses named, hardest send V0 (4C).]

Read-only. Nothing is written to your Kilter account.

Add to Kiro + Other Clients (Claude, Codex, Cursor etc.)

[Add to Kiro]

Click the button (Kiro shows a confirmation dialog first), then jump to step 3. Or do it by hand:

  1. Open your MCP config in Kiro: command palette → Kiro: Open user MCP config (JSON) (or the workspace one, .kiro/settings/mcp.json).
  2. Add the server:
json
{  "mcpServers": {    "kilter": {      "command": "uvx",      "args": ["kilter-mcp"],      "env": {        "KILTER_USERNAME": "${KILTER_USERNAME}",        "KILTER_PASSWORD": "${KILTER_PASSWORD}"      },      "disabled": false,      "autoApprove": []    }  }}
  1. Provide your Kilter credentials. Either:
    • set KILTER_USERNAME and KILTER_PASSWORD as environment variables (Kiro expands ${VAR} after you approve the variables in Settings → Mcp Approved Env Vars; see how to set them on macOS, Linux and Windows), or
    • replace the ${...} placeholders with the literal values. Only do this in the user config (~/.kiro/settings/mcp.json), never in a workspace config you might commit.
  2. Save. Kiro starts the server and the kilter_* tools appear. Ask away.

Something not working? With the same variables exported in a terminal, run uvx kilter-mcp --check. It logs in, counts your logbook and prints a short report with no secrets or entries in it, which you can paste into an issue.

Requirements: uv installed (uvx comes with it). Python is handled by uv.

Kiro CLI users can do the same with kiro-cli mcp add --name kilter --scope global --command uvx --args kilter-mcp --env KILTER_USERNAME=... --env KILTER_PASSWORD=....

Optional: timezone

Sessions are grouped by calendar day in your timezone, which is detected from the machine running the server. If that is wrong (for example a remote or containerised host), add "KILTER_TIMEZONE": "Europe/Rome" (any IANA name) to the env block. Every response states the timezone it used.

Other clients

kilter-mcp is a standard local MCP server, so it also works in Claude Desktop, Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI and Zed. Copy-paste configs for each are in docs/clients.md. (ChatGPT's chat interface only accepts remote HTTP servers, so it is not supported directly; details in the same document.)

Example questions

text
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?

Tools the agent gets

ToolWhat it returns
kilter_get_logsLogbook entries (filter by limit, angle, topped, date range)
kilter_get_sendsTopped climbs, newest first
kilter_get_projectsClimbs attempted but never topped at that angle
kilter_get_summaryTotals, angles, date range, hardest send/flash, sends by grade
kilter_get_grade_pyramidSends per grade with flash rates
kilter_get_hardest_sendsHardest unique sends
kilter_get_sessionsEntries grouped by day
kilter_get_progressionMonth-by-month or week-by-week trend
kilter_get_angle_statsPer-angle comparison

All tools are read-only and only ever see the account whose credentials you configured.

How the data is interpreted

  • One logbook entry is one climb at one wall angle on one date, with the number of tries in that entry. Re-logging a climb creates a new entry.
  • status is flash (topped first try), send (topped) or attempt (not topped).
  • A project is a (climb, angle) pair with attempts but no top at that angle.
  • Grades are Kilter's current consensus grade for the climb at that angle. grade is the V-scale and font_grade the Font scale; the raw difficulty_id (1-39) is always included. The grade table is fetched from Kilter at startup with an embedded fallback.
  • If you rated a climb yourself in the app, my_grade and my_rating (1-5 stars) carry your opinion; otherwise they are null.
  • Dates are reported in your timezone (see above). A session is one calendar day.

Security and privacy

  • Your username and password are only used to obtain an OAuth token from Kilter's login server (idp.kiltergrips.com). They never leave your machine otherwise.
  • Tokens are kept in memory for the life of the MCP process and are never written to disk.
  • Credentials and tokens are never included in tool output, logs or error messages.
  • The server makes requests only to idp.kiltergrips.com and portal.kiltergrips.com.
  • Also available in the MCP Registry as io.github.wmmg101/kilter-mcp.
  • Prefer the ${KILTER_PASSWORD} form so the password lives in your shell environment or secret manager rather than in a JSON file.
  • Your logbook is fetched at most once a minute, however many tools the agent calls, and Kilter's rate-limit responses are respected.

Full details and how to report a problem privately: SECURITY.md.

Disclaimer

kilter-mcp is an unofficial community project and is not affiliated with or endorsed by Kilter Grips. It talks to the same endpoints the Kilter app uses; these are not a documented public API and may change or stop working at any time. Kilter's Terms of Use restrict access to their services outside the official apps; use this project at your own discretion, only with your own account, and keep request volume low (the server fetches your logbook once per tool call).

Contributing

Issues and pull requests are welcome. See CONTRIBUTING.md for the development setup (git clone, uv sync, uv run pytest), architecture notes, and how to add a tool.

License

MIT

来源:README.md,提交 87e3712

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

2
  1. v0.2.2最新Sep 18, 2026
  2. v0.2.1Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分