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 分