Write whole barbell programmes, not just workouts: weeks, progressions, ramps, and plate maths.
MCPpedia last refreshed this data
app.tectonicplates/tectonic-plates is an MCP server that write whole barbell programmes, not just workouts: weeks, progressions, ramps, and plate maths. Its tool list has not been published yet over http, requires no API key, and scores 68/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
https://tectonicplates.app/mcpRemote servers are added as connectors, not in claude_desktop_config.json, which is for local servers.
Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Write whole barbell programmes, not just workouts: weeks, progressions, ramps, and plate maths.
This server supports HTTP transport. Be the first to test it - help the community know if it works.
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in health
MCP server for the ClinicalTrials.gov v2 API. Search trials, retrieve study details and results, and match patients to eligible trials.
Search ClinicalTrials.gov: find studies, retrieve results, match patients to candidate trials.
Control FL Studio with Claude: in-DAW mixing, diagnosis, routing, and composition.
MCP server providing seamless access to FHIR APIs for AI tools and healthcare applications
MCP Security Weekly
Get CVE alerts and security updates for app.tectonicplates/tectonic-plates and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Tectonic is a barbell strength-training tracker. An account logs workouts; a workout holds sets of an exercise at a weight and a rep count, in the order they are lifted. All weights are integer pounds.
What makes it more than a list is that a session is written before it is lifted. A program expands into ordinary set rows — warmup ramp included, every weight rounded to something a bar can actually be loaded to — so lifting is tapping through a list that already knows what comes next, and each row keeps the prescription beside what was actually done. An MCP endpoint exposes the same data to an LLM as a connector, which is the second half of this file.
The stack is Roda and Sequel on Postgres, with Rodauth for accounts and rodauth-oauth
for the OAuth 2.1 authorization server the MCP endpoint authenticates against. Views are
ERB with Tailwind from a CDN, and htmx for the parts of the session screen that have to
change without a page load. It deploys to Render.
/workouts/:id/session) — the gym-floor screen, as distinct from
/workouts/:id, which is the record of one. A progress bar across the top, sets grouped
by lift with warmups dimmed, the per-side plate breakdown under each weight ("per side
1×25 1×10"), and a Done button per set that toggles, so a mis-tap is undone by tapping
again. A set lifted differently is entered inline and the row turns amber rather than
lime, because done-as-written and done-differently have to read differently. The whole
session gets an RPE rating, with a bar-speed guide for choosing one./mcp.You need Ruby at the version in .ruby-version (the Gemfile reads the same file, so the
two cannot drift), a local Postgres, and — only for the browser specs — Firefox with
geckodriver.
bundle install
npm install # only for the stylesheet; see below
dotenv loads .env when the app is required, and .env-example is a file to copy:
cp .env-example .env gives a working development setup, pointed at the
tectonic_development database rake db:create makes below. The keys that are secrets in
a deployment are commented out there rather than left blank, each with the command that
generates it, because a blank is worse than an absence here — dotenv sets the name to the
empty string, every fallback in this project tests for nil, and an empty DATABASE_URL
reaches Sequel.connect and raises rather than falling back to a default.
| Variable | Required | Notes |
|---|---|---|
DATABASE_URL | yes | app.rb connects at require time, so nothing loads without it. .env.rb, which only the Rakefile reads, defaults it from RACK_ENV to postgres:///tectonic_development or postgres:///tectonic_test, but it defaults with ` |
SESSION_SECRET | yes | At least 64 bytes. Roda's sessions plugin refuses a shorter one, and app.rb builds the app at require time, so a short or missing secret raises before a single route is reached. .env-example carries one that is long enough and says in its own text that it is for development; generate a real one with ruby -rsecurerandom -e 'puts SecureRandom.hex(64)' for anything deployed. |
RACK_ENV | no | development unless |