SisRUN Training Plan

io.github.cdutr由 GitHub 帳號 cdutr 發布v0.1.0更新於 Oct 24, 2026

Read your SisRUN (appsisrun.com.br) training plan: prescribed workouts, pace/HR windows, structure

已驗證STDIO僅桌面位置與生活效率與工作流

概覽

AI 產生的概覽

非官方本機 MCP 伺服器,讀取你的 SisRUN 訓練計畫,向 AI 助理回傳規定訓練、配速/心率區間與課表結構。

可以做什麼
取得本週訓練列,含狀態、項目、距離、配速與心率區間、教練課表結構、備註,以及 SisRUN 從 Garmin/Strava 匯入後比對到的完成資料(get_current_week)。取得包含指定 ISO 日期的整週訓練(get_week)。取得從今天起已規定但未完成的訓練(get_upcoming)。估算計畫距離,展開重複組,並標記以假定配速換算的計時步驟。
適用情境
適合教練在 SisRUN 中安排訓練計畫的跑者,用來向助理詢問本週安排、查詢過去某一週或查看接下來的訓練,而不必開啟網站。
執行需求
以 Python 套件形式在本機執行(Python 3.10 以上),可透過 uvx 或 pipx 安裝。需要你自己的 SisRUN 登入帳號,透過 SISRUN_EMAIL 與 SISRUN_PASSWORD 環境變數或家目錄下的憑證檔提供。需要連線至 SisRUN 網站的網路;該站沒有公開 API,伺服器讀取的是與瀏覽器相同的網頁。
安裝前請注意
SisRUN 密碼以明文保存,無論是在環境變數或憑證檔中,因為該站不提供權杖或 OAuth;請限制憑證檔權限且不要提交到版本庫。它用你的帳號登入,只讀取你自己的訓練資料;不要用於他人的帳號。它對 SisRUN 唯讀,但屬非官方專案,網站改版時可能失效。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 SisRUN Training Plan,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

sisrun-mcp

🇧🇷 Versão em português abaixo

Unofficial MCP server that exposes your SisRUN (appsisrun.com.br) training plan to AI assistants like Claude, so you can ask "what did my coach prescribe this week?" and get a structured answer.

SisRUN has no public API, so this reads the same web pages you see in your browser, with your own credentials, and parses them into structured workout data. It is read-only: it never writes anything to SisRUN.

Tools

ToolWhat it returns
get_current_week()Every workout row of the current week
get_week(date)The week containing an ISO date (YYYY-MM-DD)
get_upcoming(weeks_ahead=1)Prescribed-but-not-done workouts from today forward

Each workout row carries: date, status (Proposto = prescribed, Feito = done, Feito Avulso = auto-imported, not prescribed), modality, prescribed distance, pace and HR windows, the coach's structured session (warm-up, repeats, recoveries), the coach's note, and what SisRUN matched as delivered (date, distance, time, avg HR, kcal; SisRUN auto-imports your Garmin/Strava activities).

planned_km vs distance_km: SisRUN's own Distância field is empty for every interval, hill and time-based session, and on interval days it counts the reps only. Summing that column undercounts the real prescription by ~35% (SisRUN's own "Evolução Semanal" panel has the same bug). planned_km derives the honest number from the coach's structured session, expanding Repetir Nx blocks; planned_km_is_est: "yes" marks rows where a timed step had to be converted at an assumed pace.

Install

bash
uvx sisrun-mcp            # zero-install run from PyPI# orpipx install sisrun-mcp# or straight from GitHubuvx --from git+https://github.com/cdutr/sisrun-mcp sisrun-mcp

Credentials

Your own SisRUN login (the one your coach gave you). Either environment variables:

bash
export [email protected]export SISRUN_PASSWORD=yourpassword

or a credentials file:

bash
mkdir -p ~/.sisruncat > ~/.sisrun/credentials <<'EOF'[email protected]password=yourpasswordEOFchmod 600 ~/.sisrun/credentials

⚠️ The password is stored in plain text. SisRUN offers no token or OAuth mechanism, so there is no better option. Keep the file chmod 600, and never commit it.

Claude Desktop / Claude Code config

json
{  "mcpServers": {    "sisrun": {      "command": "uvx",      "args": ["sisrun-mcp"]    }  }}

Debugging

Fetch and print your current week without any MCP client:

bash
python -m sisrun_mcp selftest

If a result ever contains a warning about missing detail panels, the JSF form-state accumulation regressed. Please open an issue with the output (it contains no credentials).

How it works (for the curious)

SisRUN is JSF + PrimeFaces 8.0. Every request carries a javax.faces.ViewState token, and all widget ids are server-generated: they change on any redeploy, so nothing here hardcodes them. Buttons are located by their stable, human-authored title attributes, and the ViewState is re-read from every response. The non-obvious part is that the day detail panels are accordions the server only renders when the request carries their expanded state, accumulated across navigation hops, together with javax.faces.partial.execute=@all. Without that you silently get summary rows with no prescriptions. See the comments in client.py.

The client is deliberately polite: one week per request, spaced 0.6 s apart, and week HTML is cached per process.

Contributing

Bug reports, feature suggestions and PRs are welcome, in English or Portuguese. See CONTRIBUTING.md.

Status & disclaimers

  • Unofficial. Not affiliated with, endorsed by, or supported by SisRUN. It may break whenever SisRUN changes their site; issues and PRs welcome.
  • Your data only. This accesses your own training plan with your own credentials, the same data portability the LGPD grants you. Don't use it against accounts that aren't yours, and respect SisRUN's terms of service.
  • Tested against real accounts since 2026-07. Python ≥ 3.10, single dependency (mcp).

Em português (pt-BR)

Servidor MCP não oficial que expõe sua planilha de treinos do SisRUN (appsisrun.com.br) para assistentes de IA como o Claude. Com ele você pergunta "o que o treinador prescreveu essa semana?" e recebe os treinos estruturados: status (Proposto / Feito / Feito Avulso), distância, faixas de ritmo e FC, a estrutura da sessão (aquecimento, tiros, recuperações), a observação do treinador e o que o SisRUN associou como realizado (o SisRUN importa suas atividades do Garmin/Strava automaticamente).

O SisRUN não tem API pública, então o servidor lê as mesmas páginas que você vê no navegador, com as suas próprias credenciais. É somente leitura: nunca escreve nada no SisRUN.

Ferramentas: get_current_week() (semana atual), get_week(date) (semana de uma data), get_upcoming(weeks_ahead) (treinos propostos daqui pra frente).

Instalação:

bash
uvx sisrun-mcp# oupipx install sisrun-mcp

Credenciais: seu próprio login do SisRUN, por variáveis de ambiente (SISRUN_EMAIL / SISRUN_PASSWORD) ou pelo arquivo ~/.sisrun/credentials:

[email protected]password=suasenha
bash
chmod 600 ~/.sisrun/credentials

⚠️ A senha fica em texto puro. O SisRUN não oferece token nem OAuth, então não existe opção melhor. Mantenha o arquivo com chmod 600 e nunca faça commit dele.

Sobre planned_km: o campo Distância do próprio SisRUN fica vazio em todo treino intervalado, de subida ou por tempo, e em dias de tiro conta só as repetições. Somar essa coluna subestima a prescrição real em ~35% (o painel "Evolução Semanal" do próprio SisRUN tem esse mesmo bug). O planned_km deriva o número honesto a partir da sessão estruturada do treinador, expandindo os blocos Repetir Nx.

Avisos: projeto não afiliado, não endossado e não suportado pelo SisRUN. Pode quebrar quando o site mudar (issues e PRs são bem-vindos). Ele acessa apenas os seus dados, com as suas credenciais, a mesma portabilidade de dados que a LGPD garante a você. Não use contra contas que não são suas e respeite os termos de uso do SisRUN.

Para depurar sem cliente MCP: python -m sisrun_mcp selftest imprime a semana atual em JSON.

License

MIT

來源:README.md,提交 f713420

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分