Kilter Board Logbook について
Kilter Board Logbookは、本人のクライミングログを照会・分析する非公式の読み取り専用MCPサーバーです。セッション、プロジェクト、グレード、進捗を確認でき、Kilterアカウントには書き込みません。
主な機能
- 01クライミングログとセッションの照会
- 02完登とプロジェクトの絞り込み
- 03壁の角度別の比較
- 04グレード分布とフラッシュ率の表示
- 05週次・月次の進捗分析
- 06アカウントへの読み取り専用アクセス
活用シーン
- 01直近のセッションを振り返る
- 02角度別にプロジェクトを確認する
- 03角度ごとの登攀状況を比較する
- 04グレード分布と進捗を調べる
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
AI エージェントがあなた自身の Kilter Board のログブックを読み取り、分析できる非公式の MCP サーバーです。
Kiro(または別の MCP クライアント)に追加し、Kilter のログイン情報を渡せば、あとはエージェントに話しかけるだけです。
最後の Kilter セッションはどうでしたか? 30°での現在のプロジェクトは何ですか? 20°と40°でのクライミングを比較してください。 グレードピラミッドを表示してください。最難の完登は何ですか?上達していますか?
読み取り専用です。Kilter アカウントには何も書き込まれません。
Kiro とその他のクライアント(Claude、Codex、Cursor など)に追加する
ボタンをクリックし(Kiro で最初に確認ダイアログが表示されます)、手順3に進みます。または、次の手順で手動設定します。
- Kiro で MCP 設定を開きます。コマンドパレット → Kiro: Open user MCP config (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を環境変数として設定します(Kiro は Settings → Mcp Approved Env Vars で変数を承認すると${VAR}を展開します。macOS、Linux、Windows での設定方法を参照してください)。または${...}のプレースホルダーを実際の値に置き換えます。この操作は ユーザー 設定(~/.kiro/settings/mcp.json)でのみ行い、コミットする可能性のあるワークスペース設定では絶対に行わないでください。
- 保存します。Kiro がサーバーを起動すると、
kilter_*ツールが表示されます。あとは自由に質問してください。
うまく動作しませんか?ターミナルで同じ環境変数をエクスポートした状態で、uvx kilter-mcp --check を実行してください。ログインしてログブックの件数を数え、秘密情報や記録内容を含まない簡単なレポートを出力します。このレポートは issue に貼り付けられます。
要件: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=...
オプション:タイムゾーン
セッションは、サーバーを実行しているマシンから検出したタイムゾーンに基づき、暦日ごとにグループ化されます。これが正しくない場合(たとえば、リモートホストやコンテナ化されたホストを使用している場合)は、"KILTER_TIMEZONE": "Europe/Rome"(任意の IANA 名)を env ブロックに追加してください。すべての応答で、使用したタイムゾーンが示されます。
その他のクライアント
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?
エージェントが使用するツール
| ツール | 返される内容 |
|---|---|
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 | 角度別の比較 |
すべてのツールは読み取り専用で、設定した認証情報のアカウントのみを参照します。
データの解釈方法
- ログブックの1件の記録は、ある日、ある壁の角度で登った1つの課題を表し、その記録でのトライ数も含まれます。課題を再度記録すると、新しい記録が作成されます。
statusは、flash(1トライ目で完登)、send(完登)、attempt(未完登)のいずれかです。- プロジェクトは、ある角度でトライ済みだが、その角度では未完登の
(climb, angle)の組み合わせです。 - グレードは、その角度での課題に対するKilterの現在の合意グレードです。
gradeはVスケール、font_gradeはFontスケールです。生のdifficulty_id(1~39)は常に含まれます。グレード表は起動時にKilterから取得し、取得できない場合に備えて組み込みの代替表も用意されています。 - アプリで課題を自分で評価した場合、
my_gradeとmy_rating(1~5つ星)にその評価が設定されます。それ以外の場合、これらはnullです。 - 日付はお使いのタイムゾーンで報告されます(上記を参照)。セッションは暦日1日分です。
セキュリティとプライバシー
- ユーザー名とパスワードは、Kilterのログインサーバー(
idp.kiltergrips.com)からOAuthトークンを取得するためだけに使用されます。それ以外の用途で、これらがお使いのマシンから外部に送信されることはありません。 - トークンはMCPプロセスの実行中、メモリ内に保持され、ディスクに書き込まれることはありません。
- 認証情報とトークンがツールの出力、ログ、エラーメッセージに含まれることはありません。
- サーバーは
idp.kiltergrips.comとportal.kiltergrips.comにのみリクエストを送信します。 - MCP Registryでも
io.github.wmmg101/kilter-mcpとして公開されています。 - パスワードをJSONファイルではなく、シェル環境またはシークレットマネージャーで管理できるよう、
${KILTER_PASSWORD}形式の使用を推奨します。 - エージェントがいくつツールを呼び出しても、ログブックは最大で1分に1回だけ取得され、Kilterからのレート制限応答も尊重されます。
詳細と、問題を非公開で報告する方法については、SECURITY.mdをご覧ください。
免責事項
kilter-mcpは非公式のコミュニティプロジェクトであり、Kilter Gripsとの提携や承認を受けていません。Kilterアプリと同じエンドポイントにアクセスしますが、これらは公開ドキュメントのないAPIであり、いつでも変更されたり、動作しなくなったりする可能性があります。Kilterの利用規約では、公式アプリ以外からのサービスへのアクセスが制限されています。このプロジェクトはご自身の判断で、ご自身のアカウントのみを使用して利用し、リクエストの頻度を抑えてください(サーバーはツールの呼び出しごとにログブックを取得します)。
貢献
Issueやプルリクエストを歓迎します。開発環境のセットアップ(git clone、uv sync、uv run pytest)、アーキテクチャに関する説明、ツールの追加方法については、CONTRIBUTING.mdをご覧ください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。