PRzilla
Server Details
Search PRzilla's public CrossFit and HYROX workout catalog, read prescriptions and benchmark targets, and look up movement technique, scaling, and demo videos. Three read-only tools; no authentication or access to personal training history. Documentation: https://github.com/kangax/przilla-mcp
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
Each tool has a clearly distinct role: get_workout fetches a single workout's full prescription, search_workouts finds workouts by name/movement/category, and search_movements resolves a movement alias. The descriptions explicitly cross-reference each other ("use get_workout for prescriptions") and state scope limits, eliminating confusion between the search/retrieve pair.
All three names follow the same snake_case verb_noun convention (get_workout, search_movements, search_workouts) with verbs that accurately reflect behavior.
Three tools is on the thin side, but each earns its place in a read-only catalog server: two search entry points and one detail fetch. Slightly under-scoped rather than bloated.
Search plus detail retrieval covers the core catalog workflow, and the descriptions clearly mark personal scores/history as out of scope. Minor gaps remain: no way to enumerate movements or categories directly, and search_movements resolves only one alias at a time, but agents can work around these via search_workouts filters.
Available Tools
3 toolsget_workoutRead a PRzilla workoutARead-onlyIdempotentInspect
Get a public workout by its exact name or PRzilla slug, including its prescription, scaling notes, movements, and L2–L10 benchmark thresholds for available men's, women's, and vest variants. No personal scores are available.
| Name | Required | Description | Default |
|---|---|---|---|
| workout | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| name | Yes | |
| levels | Yes | |
| scaling | No | |
| category | Yes | |
| movements | Yes | |
| score_type | Yes | |
| description | Yes | |
| time_cap_minutes | No | |
| intended_stimulus | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, non-destructive lookup. The description adds useful context beyond that: only public workouts are returned, personal scores are excluded, and the response includes specific prescription and benchmark data. It stops short of describing not-found or ambiguity behavior.
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 with the core action and scope. The second sentence is short and adds a relevant exclusion; there is no wasted text.
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 read-only lookup with an output schema, the definition supplies the key calling context: exact-name/slug input, public-only scope, and no personal scores. Minor gaps like not-found behavior are acceptable given the output schema and annotations.
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?
Schema description coverage is 0%, so the description must carry the burden. It does so by explaining that the single 'workout' parameter accepts an exact workout name or PRzilla slug, which is meaningful beyond the bare string schema. It does not cover case sensitivity, formatting, or ambiguity resolution.
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?
States a specific verb and resource: 'Get a public workout by its exact name or PRzilla slug.' It also scopes the result content (prescription, scaling notes, movements, benchmark thresholds) and distinguishes exact lookup from searching by emphasizing the exact identifier.
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 phrase 'by its exact name or PRzilla slug' clearly indicates when this tool is appropriate versus a search tool, and 'No personal scores are available' sets a scope boundary. However, it does not explicitly name search_workouts as the alternative when the exact identifier is unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_movementsLook up a movementARead-onlyIdempotentInspect
Look up one canonical movement name or alias, such as HSPU or thruster. Returns equipment, technique description, easier versions, progressions, a demo video when available, and example PRzilla workouts. These are catalog suggestions, not personalized prescriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| movement | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| matches | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe, idempotent, closed-world read operation. The description adds useful behavioral context by listing the kind of catalog information returned and clarifying that suggestions are not personalized prescriptions.
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 front-loaded with the lookup action and examples, then quickly lists expected output and scope caveats. Every sentence adds useful information without wasting space.
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 lookup with an output schema and rich annotations, the description is complete enough. It defines the input domain, describes the catalog-style output, and sets expectations that results are suggestions rather than personalized prescriptions.
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?
Schema description coverage is 0%, so the description must carry the parameter meaning. It does this well by defining the sole input as one canonical movement name or alias and giving concrete examples, though it does not clarify matching behavior such as case sensitivity or partial matching.
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 states a specific verb-resource pair: looking up one canonical movement name or alias, with examples like HSPU and thruster. The scope is clear, but it does not explicitly distinguish this from sibling tools such as get_workout or search_workouts.
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?
Usage is implied by 'Look up one canonical movement name or alias' and the caveat that results are catalog suggestions, not personalized prescriptions. However, there is no explicit guidance on when to use this tool instead of search_workouts or get_workout.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_workoutsFind PRzilla workoutsARead-onlyIdempotentInspect
Search the public PRzilla workout catalog by workout name or movement. Optionally filter by category. Returns workout links and short summaries; use get_workout for prescriptions and benchmark targets. Does not search an athlete's workout history.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes | |
| total_matches | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds useful context beyond that: it returns links plus short summaries (not full prescriptions) and is scoped to the public catalog only. It stops short of describing result ordering or pagination behavior, which is minor given limit is capped.
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?
Three tight sentences, front-loaded with the primary action and scope, then the routing hint, then the exclusion. No filler, each sentence carries distinct information.
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?
With an output schema present, the return shape needn't be spelled out, and the description still gives a useful preview ('workout links and short summaries'). The only real gap for a 3-parameter search tool is the unaddressed 'limit' semantics and result ordering.
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?
Schema description coverage is 0%, so the description has to compensate and only partly does: it clarifies that 'query' matches workout name or movement and that 'category' is an optional filter. The 'limit' parameter (default 5, max 10) is never mentioned, leaving one of three parameters entirely undocumented outside the schema.
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?
States a specific verb and resource ('Search the public PRzilla workout catalog'), the match fields (name or movement), and the scope boundary (not athlete history). An agent can distinguish this from get_workout and search_movements without opening any schema.
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?
Explicitly routes downstream needs to get_workout for 'prescriptions and benchmark targets' and excludes athlete history searches. It does not name search_movements as the alternative for movement-only lookups, so the when-not coverage against all siblings is incomplete.
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
- First observed
get_workout - First observed
search_movements - First observed
search_workouts
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs113 npm55 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1618 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.