LeashIndex Get the report

Index / data

S-Bike Training Hub

io-github-jharp199345-s-bike-hub declares 124 capabilities across 124 tools, with 1 critical issue.

99/100 exposureHigh exposure

Manifest recorded 2026-10-13 from tools/list answered by the PyPI package s-bike-training-hub==1.12.2 (published to PyPI as s-bike-training-hub, listed in the official MCP registry as io.github.JHarp199345/s-bike-hub 1.12.2), run in an isolated container with no network access and no credentials. The date changes only when the manifest does. Not verified by a maintainer.

Issues

These describe what this server's manifest declares. A product can provide controls that MCP has no way to express — token revocation, an admin console, audit logs — and this page cannot see them. The absence of a declaration is not evidence that a control is absent.

critical · no-revocation · All 124 tools

124 of 124 tools declare no way for the customer to switch them off once granted. This applies to every tool because MCP has no field in which to declare a revocation mechanism; the product may provide one outside MCP that a manifest cannot show.

high · no-expiry · All 124 tools

124 of 124 tools declare no expiry. This applies to every tool because MCP has no field in which to declare an expiry; the product may provide one outside MCP that a manifest cannot show.

high · no-audit-trail · All 124 tools

124 of 124 tools declare no record of their actions that the customer can read. This applies to every tool because MCP has no field in which to declare an audit requirement; the product may provide one outside MCP that a manifest cannot show.

high · uncapped-write · 47 of 124 tools

47 tools can modify data and declare no limit.

low · uncapped-read · 77 of 124 tools

77 tools can read data and declare no limit.

Declared capabilities

How each tool was read. declared means the server's own annotation said so — self-reported and unverified. inferred is from the tool's name. assumed means nothing indicated either way.

ToolRead asBasis
get_activity_reportread declared
record_activity_reportwrite assumed
get_recorded_swim_draftread declared
record_completed_swim_detailsread inferred
preview_strength_workoutread declared
record_completed_lift_detailsread inferred
save_completed_workout_to_librarywrite inferred
preview_sled_effortread declared
get_activity_effort_windowsread declared
update_session_explanationwrite inferred
get_coaching_reviewread declared
preview_coaching_changeread inferred
apply_coaching_changewrite assumed
get_schedule_adherenceread declared
get_recent_weeksread declared
record_missed_sessionwrite assumed
get_bike_setup_requestread declared
capture_bike_datawrite assumed
propose_bike_profilewrite assumed
run_bike_checkwrite assumed
record_bike_feelwrite assumed
activate_bike_profilewrite assumed
get_training_calendarread declared
explain_training_readingread declared
get_running_recovery_reviewread declared
record_capacity_followupwrite assumed
get_capacity_reviewread declared
get_adaptation_reviewread declared
get_programread declared
preview_programread inferred
apply_programread inferred
get_progress_evidenceread declared
get_todayread inferred
get_checkinsread declared
record_checkinwrite inferred
settle_journal_flagread inferred
set_planwrite inferred
get_ridesread declared
get_ride_storyread declared
get_fitnessread declared
get_milestonesread declared
get_statusread declared
list_workoutsread declared
create_timed_workoutwrite inferred
create_workoutwrite inferred
get_loadread declared
get_programmingread declared
set_swim_settingswrite inferred
run_walk_testwrite assumed
record_weekly_checkinread inferred
get_training_blockread inferred
get_liftingread declared
get_planning_contextread declared
set_sport_baselinewrite inferred
get_setup_statusread declared
save_athlete_basicswrite assumed
get_health_historyread declared
record_health_historyread inferred
get_lifting_frameworkread declared
describe_lift_structureread inferred
design_lift_sessionwrite assumed
plan_lift_sessionwrite assumed
evaluate_lift_sessionread declared
log_lift_sessionwrite assumed
record_lift_followupread inferred
set_lift_rulewrite inferred
record_swim_activitywrite assumed
get_recording_link_choicesread declared
link_workout_recordingwrite assumed
import_activitiesread inferred
set_capacitywrite inferred
record_stepsread inferred
plan_area_routeread inferred
save_planned_routeread inferred
get_routesread declared
get_route_climbsread declared
set_route_sessionwrite inferred
get_climb_historyread declared
rate_ridewrite assumed
record_morningwrite assumed
get_skillsread inferred
set_skill_levelwrite inferred
set_eventwrite inferred
get_calibrationread inferred
schedule_testwrite assumed
schedule_test_weekwrite assumed
get_aerobicread declared
get_insightsread declared
get_transferread declared
record_testwrite assumed
get_attentionread declared
get_race_predictionsread declared
save_race_predictionwrite assumed
start_workoutwrite assumed
start_diagnosticwrite assumed
schedule_route_workoutwrite inferred
preview_run_workoutread declared
save_run_workoutwrite assumed
get_library_workoutread declared
get_workout_libraryread declared
get_workout_goalsread declared
save_workout_goalwrite inferred
preview_workout_goalsread declared
save_library_workoutwrite assumed
favorite_workoutwrite assumed
get_running_responseread declared
preview_running_response_modelread declared
apply_running_response_modelwrite assumed
record_running_response_feedbackread inferred
get_workout_importsread declared
get_workout_importread declared
record_swim_drill_splitswrite assumed
preview_swim_workoutread declared
save_swim_workoutread inferred
get_work_rateread declared
get_load_outlookread declared
set_wearable_estimatesread inferred
get_rechecksread declared
record_recheckwrite assumed
remember_library_workoutwrite assumed
set_body_weightwrite inferred
preview_report_snapshotsread declared
apply_report_snapshotsread inferred
get_guideread declared
Answering this question about your own agent? The self-serve stack report applies the same reading to your own stack or server and gives you a dated document you can hand to a customer's security review. It is generated in your browser, with nobody to wait for. Buying one does not change this page, its score or its place in the index — see Independence.
Maintain this server? If this page misreads your manifest, or your server has changed, submit its current tools/list response and it will be re-scored and dated. Corrections are published alongside the original, not in place of it.