sisrun-mcp
sisrun-mcp
非公式の MCP サーバーであ、あなたの SisRUN (appsisrun.com.br) のトレーニングプランを Claude なとの AI アシスタントに提携します。「今周、コーチは何を予定したか?」と尋ると、構造化された返答が得られます。
SisRun には公開 API が無いので、あなたがブラウザで見る同 page をあなた自身の認証情報で読取し、それを構造化したを一クアウト・デーたにパースします。読み取り専用で、一切 Iis Run に書込をことはありません。
ツール
Tool | 戻り値 |
| 今週のすべてのワークアウト行 |
| 指定しされたISO 日付 ( |
| 今日以降に予定されいてたが、まだ完末していないワークアウト |
各ワークアウト行には、日付、ス地タス(Proposto = 予定、Feito = 完了、Feito Avulso = 自動インポート・予 定外)、種目、予定距離、ペース範囲、心拍数範囲、コーチの構造されセッション(ウォームアップ、エペート、リカバリー)、コーチのメモ、および SisRun が実施済みとして照合したもの(日付、距離、時列、平均心拍数、kecal。SisRun はあなたの Garmin/Srava のアクティビティを自動インポートします)が含まれます。
planned_km vs distance_km: SisRun 自体の Distância フーールドは、インターバル・起フ・時間ベースのセッションではすべて空ラで、インタバル日は回数だけを数えます。そのカ月の合計では正実の処方内容が約 35% 少なく計算され(Sكم間 自身の「Evolução SeEm天线」panel にも同っバグがあります)。planned_km はコーチの構造されたセッションから正誤し屋数値を導出し、Repetir Nx ブロックを解しています。planned_km_is_est: "yes" は、時間ベースの手順を仮定ペースで換算した行を示します。
Related MCP server: garmin-mcp
インストール
uvx sisrun-mcp # zero-install run from PyPI
# or
pipx install sisrun-mcp
# or straight from GitHub
uvx --from git+https://github.com/cdutr/sisrun-mcp sisrun-mcp認証情報の設定
使用するのは、あなた自身の SisRun ログイン(コーチから渡されたも のです)。環境変数を使う場合はこちら:
export SISRUN_EMAIL=you@example.com
export SISRUN_PASSWORD=yourpasswordまたは、認証情報ファイルを使う場合はこちら:
mkdir -p ~/.sisrun
cat > ~/.sisrun/credentials <<'EOF'
email=you@example.com
password=yourpassword
EOF
chmod 600 ~/.sisrun/credentials⚠️ パスワードは平文のまま保存されます。 SisRun にはトークンや OA月th の仕組みが無いため、これ以の選を受きません。ファイルの権限は ch摩od 600 に保ち、絶対にコミットしないでください。
Claude Desktop / Claude Code の設定
{
"mcpServers": {
"sisrun": {
"command": "uvx",
"args": ["sisrun-mcp"]
}
}
}デバッグ
MCP クリアントを使わずに今週を取得して出す場合に:
python -m sisrun_mcp selftestこの結実に 警告 が含まれて場合は、JSF のフォーム状態の累積が後退しています。出力内容(認証情報は含まれません)を添えて issue を開いてください。
動作のしくみ(詳しく知りたい人向け)
SisRun は JSF + PrimeFences 8.0 です。すべてのリクエストに javax.faces.ViewState トークンがは付し、ウィジェット ID はすべても生成されます。再デプロイのたびに変わるので、どこにもハードコーディングされません。ボタンは安定した可読性の高い title 属性で特定し、ViewState は各応答から読み取ります。
ここで: 日別 detail에 パネルが アコーデン式と、サーバ(javax.faces.partial.execute=@all) と共に、ナビゲーション間で累積された postedвляем вва が送られた場合のみサーバ はレンダリングします。そうでないと、処方が含まれない概要行だけが黙って返されます。詳細は client.py のコメント参照してください。
クライアントは意図的に控えめした。1 リクエストにつき 1 週間分ずつ、0.6 秒間隔で取し、週の HTML はプロセスごとに Circle 倉されます。
コントリビューション
バグ報告、機能提案、PR を歓迎します。英語でもポルトガル語でも構いません。CONTRIBUTING.md を参照してください。
ス地ータスと免責
非公式。 です。Sik RUN とは提携・承認・サポートは一切ありません。SисRun がサイトを変えると動かなくなる可能性があります。issue や PR は歓迎です。
自分のデータのみ。 あなた自身の認証情報で、あなた自身のトレーニング планаだけにアクセスЦель。これは LGPD があなたに保証するデタ・ポータビティと同様のものです。他人のものではないアカウント对他では使いませ、SisRun の利用規約てに従ってください。
2026-07 から実際のアカウントでテストしています。Python ≥ 3.10、依存 deps は単一に(
mcp)。
インストール/ポルトガル語版 (pt-BR)
非公式の MCP サーバーで、あなたの SisRun (https://apps عکConfidence.. ACP) のトーレーンニグププランを Claude など AI にアシスタントに出しています。これを利用して「今週、コーチは何を指定しましたか?」と訪聞すると、構造化されたワークアウトが返ります: ス地タス (Propoosto / Feito / Feito Avuluso)、距離、ペース - 心拍数範囲、セッション構造 (ウォームアップ、ビッション、リカバリ)、コーチのオブ used サーバーが作成したメモ、および Sis력 が実施として一致したもの(SisRun が Garmin/Strava のアクティビティを自動インポートします)。
SisRun に公開 API がないため、このサーバーは、あなたがブラウザーで見ているものと同じ、あなたの認証情報でログインしたページを読み込み、構造化ワークアウトデータに割り当てます。読み取り専用で: SisRun に書き込むことは決してありません。
フェラメンタス: get_current_w所() (現在の週), get_week(date) (指定日の属する週), get_upward(weeks_Ahead) (今日の未来的なプルポート)。
インストール:
uvx sisrun-mcp
# ou
pipx install sisrun-mcp認証情報: あなたの SisRunへログイン (コーチから与えられたもの) を、環境変数 (SisRun_MAIL / SisRun_PASSWORD) または認証ファイル:
email=voce@exemplo.com
password=suasenhachmod 600 ~/.sisrun/credentials⚠️ パスワードは平文のまま降。 SisRun にはトークンや OAuth の仕組みがなく、それ以上良いた選択肢はありません。ファイルには chmod 600 をして、コミットしないでください。
planned_km について: SisRun 自体の Distância フィールドは、インターバル、起伏、時間基盤の各ワークアウトでは空で、インターバルの日は距離ではなく本数だけを数えます。その列の合計は実際のプレス部より約 35% 少な目になります (この法 (この の Evolução Semanal パネルにも同様のバグがあります)。 planned_km は、コーチの構造セッションから、Repetir Nx ブロックを展開してそれを正しい数値をきます。
注意事項: Qual はこのフロジェクトは SisRun と無関係であり、非承認・非サポートです。サイトが変更されると壊れることがあります(issue & PR は歓迎です)。また、アプリはあなたの自身のログイン情報を利用し、あなた自身のデータだけにアクセスします。これは LGPD が保証するデータ・ポータビリティと同じです。他人のものではありません、あなたのものですではない。使用条件は、SisRun の利用約款を遵守してください。
デバッグ (MCP クライアントを使用せず、JSON) の場合: python-م mcp sisrun_mcp selftest.
ライセンス
MIT
Available Tools
3 toolsget_current_weekA
The current week's training plan: every workout with status (Proposto = prescribed / Feito = done / Feito Avulso = auto-imported, not prescribed), modality, prescribed distance (planned_km is the honest number; the raw distance_km field is blank on interval days), pace/HR windows, the coach's structured session, and what SisRUN matched as delivered.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does this exceptionally well: it explains the status vocabulary, warns that planned_km is the reliable number and raw distance_km may be blank on interval days, and clarifies what the coach's session vs. SisRUN-matched delivered data means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single structured enumeration with no filler words, and all listed items are meaningful. It is slightly long and runs the items together in one sentence, so a bulleted or shorter phrasing would be improve readability without losing content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read tool, the description is almost complete: it covers the data included, notable field quirks, and status meanings. It does not specify things like timezone, but that is a minor omission given the output schema exists and the intended meaning is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema covers everything needed. The description adds value by focusing on the output structure, which is appropriate given the zero-parameter context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource by saying 'The current week's training plan' and enumerates what it contains. It is more than a tautology and distinguishes from siblings by the 'current week' qualifier, though it lacks an explicit retrieval verb and does not directly compare to siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly say when to use this tool versus get_week or get_upcoming. The 'current week' phrasing implies the usage context, but there is no direct guidance about alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upcomingA
Prescribed workouts (status Proposto) from today forward, across the
current week plus weeks_ahead future weeks (default 1, max 8).
| Name | Required | Description | Default |
|---|---|---|---|
| weeks_ahead | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden of behavioral disclosure. It explains the status filter, exclusion of past workouts, and the configurable future-week window, which are the key behavioral characteristics needed by an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, tight sentence covers purpose, status filter, time window, default, and max. No filler or redundant restating of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with an output schema, the description provides enough information to understand what the tool returns and how the parameter behaves. It could be improved by acknowledging the sibling tools and clarifying ordering, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only provides the type and default, but the description adds semantic meaning: weeks_ahead controls the number of future weeks beyond the current week, with a default of 1 and max of 8. This makes the parameter's effect clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource (prescribed workouts) and a specific status filter (Proposto) with a clear time window (today forward through future weeks). It does not explicitly mention sibling tools, but the 'today forward' scope differentiates it from get_current_week and get_week well enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The time window implies the intended use: retrieving upcoming proposed workouts. However, it does not give explicit guidance on when to choose this over get_current_week or get_week, nor when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_weekA
The training plan for the week containing date (YYYY-MM-DD).
Navigating far from the current week costs one request per week hop.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses a non-obvious behavioral trait: each week hop away from the current week costs an extra request. It does not discuss edge cases or invalid dates, but it gives the agent useful insight beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded purpose, no filler. It states what the tool does and then adds the cost caveat efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only one required parameter, an output schema exists, and the description covers parameter format and an important behavioral cost. It could be more complete by explicitly naming which sibling to use for current or upcoming weeks, but the essentials for invoking it correctly are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only says date is a string, so the description's 'YYYY-MM-DD' format and statement that the week contains that date add critical meaning. With 0% schema coverage, the description compensates well for the tool's one parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'the training plan for the week containing date', making the resource and action identifiable. It does not explicitly distinguish itself from get_current_week or get_upcoming, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The cost note ('Navigating far from the current week costs one request per week hop') implies that dates far from the current week should be avoided when possible, but it never says when to use this tool rather than get_current_week or get_upcoming. The usage context is implied, not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.1.0- First observed
get_current_week - First observed
get_upcoming - First observed
get_week
TDQS
Scored across 3 tools
Each tool addresses a clearly different temporal scope: the current week, an arbitrary week by date, and the rolling set of upcoming prescribed workouts. While get_current_week and get_week could both return the current week in some cases, their intended use cases are distinct and visible from the descriptions.
All tools follow a get_ prefix and use temporal terms, which creates a predictable pattern. get_upcoming is slightly less noun-like than get_current_week and get_week, but the naming style is still consistent and readable.
Three tools is a well-scoped size for a read-only training-plan retrieval server. Each tool serves a distinct need and none feels redundant or padding.
The server covers the primary retrieval needs for a training plan: current week, any specific week, and upcoming planned workouts. Minor gaps like direct workout-level detail or historical summaries are not obviously required for the stated scope.
Maintenance
Related MCP Connectors
- Coach MCPOAuthai.iamcoach
Your endurance training data in your AI assistant: activities, recovery, plan, workout edits.
- FlaMapOAuthapp.flamap
Your own cycling data for your AI assistant: rides, power, climbs and routes. Read-only.
AI coach for Garmin: builds training plans and structured workouts, synced straight to your watch.
Your strength-training data for any AI assistant: workouts, progress, muscle volume, routines.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to read Garmin activities and create/schedule structured workouts and multi-week training plans on Garmin Connect, syncing to the user's watch.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to read Garmin activities and create/schedule structured workouts and multi-week training plans directly on Garmin Connect, syncing to your watch with guided prompts.1MIT
- AlicenseAqualityBmaintenanceProvides AI assistants with read-only access to an athlete's Intervals.icu training data, including activities, wellness metrics, zones, and planned events, for use with MCP clients like ChatGPT and Claude.15MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to read your Strava training data and answer plain-language questions about activities, splits, and totals across sports like running, skiing, and hiking.45 npmMIT