mcpField
K
Kilter Board Logbook

Kilter Board Logbook

ローカル
github.comヘルスケア23 週間前に更新

Kilter Board Logbook について

Kilter Board Logbookは、本人のクライミングログを照会・分析する非公式の読み取り専用MCPサーバーです。セッション、プロジェクト、グレード、進捗を確認でき、Kilterアカウントには書き込みません。

主な機能

  1. 01クライミングログとセッションの照会
  2. 02完登とプロジェクトの絞り込み
  3. 03壁の角度別の比較
  4. 04グレード分布とフラッシュ率の表示
  5. 05週次・月次の進捗分析
  6. 06アカウントへの読み取り専用アクセス

活用シーン

  1. 01直近のセッションを振り返る
  2. 02角度別にプロジェクトを確認する
  3. 03角度ごとの登攀状況を比較する
  4. 04グレード分布と進捗を調べる

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

AI エージェントがあなた自身の Kilter Board のログブックを読み取り、分析できる非公式の MCP サーバーです。

Kiro(または別の MCP クライアント)に追加し、Kilter のログイン情報を渡せば、あとはエージェントに話しかけるだけです。

最後の Kilter セッションはどうでしたか? 30°での現在のプロジェクトは何ですか? 20°と40°でのクライミングを比較してください。 グレードピラミッドを表示してください。最難の完登は何ですか?上達していますか?

Kiro が「最後の Kilter セッションはどうでしたか?」という質問に対して kilter_get_sessions を呼び出し、20°で16本登り、14本を一撃し、2つの失敗した課題を挙げ、最難の完登は V0 (4C) だったと要約している様子

読み取り専用です。Kilter アカウントには何も書き込まれません。

Kiro とその他のクライアント(Claude、Codex、Cursor など)に追加する

Kiro に追加

ボタンをクリックし(Kiro で最初に確認ダイアログが表示されます)、手順3に進みます。または、次の手順で手動設定します。

  1. Kiro で MCP 設定を開きます。コマンドパレット → Kiro: Open user MCP config (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 を環境変数として設定します(Kiro は Settings → Mcp Approved Env Vars で変数を承認すると ${VAR} を展開します。macOS、Linux、Windows での設定方法を参照してください)。または
    • ${...} のプレースホルダーを実際の値に置き換えます。この操作は ユーザー 設定(~/.kiro/settings/mcp.json)でのみ行い、コミットする可能性のあるワークスペース設定では絶対に行わないでください。
  2. 保存します。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をご覧ください。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。