personal-mcp
Provides integration with Hevy, a fitness tracking app, enabling tools for retrieving recent workouts, exercise lookup, and training volume summaries.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@personal-mcplist my latest workouts from Hevy"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
personal-mcp
A personal MCP server for connecting your own API integrations and exposing them as tools/resources/prompts.
Initial Scope
Fitness domain
Hevy provider integration
Related MCP server: Hevy MCP Pro
Project Structure
personal-mcp/
├── .github/
│ └── copilot-instructions.md
├── src/
│ ├── core/
│ │ ├── server/
│ │ ├── config/
│ │ ├── types/
│ │ └── utils/
│ ├── domains/
│ │ └── fitness/
│ │ ├── providers/
│ │ │ └── hevy/
│ │ ├── services/
│ │ ├── tools/
│ │ ├── resources/
│ │ ├── prompts/
│ │ └── types/
│ └── index.ts
├── tests/
│ ├── core/
│ └── domains/
│ └── fitness/
├── .env.example
├── package.json
├── tsconfig.json
└── README.mdQuick Start
Install dependencies.
Copy
.env.exampleto.envand set your API key(s).Start in dev mode.
npm install
npm run devNext Steps
Implement Hevy API client methods.
Add MCP tools for recent workouts, exercise lookup, and training volume summaries.
Add domain-focused tests under
tests/domains/fitness.
Available Tools
2 toolshevy_recent_workoutsB
Return a placeholder list of recent Hevy workouts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It discloses that the output is a 'placeholder list', which is a key behavioral trait, but it does not elaborate on what placeholder means or describe the exact output format. This is minimal but non-misleading.
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 sentence that directly states the tool's function. There is no wasteful wording, and it is appropriately front-loaded with the action and resource.
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 no output schema, the description should explain the return value in enough detail. It mentions a 'list of recent Hevy workouts' but says 'placeholder', which is ambiguous about whether the list contains fake data. This leaves some uncertainty, but the simplicity of the tool limits the impact.
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 tool has zero parameters, and the schema is empty. Per the calibration guidance, a baseline of 4 is appropriate when there are no parameters to describe, so the description needs to add no extra parameter information.
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 uses a specific verb 'Return' and names the resource 'recent Hevy workouts', clearly distinguishing it from the sibling tool 'hevy_status'. The term 'placeholder' introduces some ambiguity about whether the data is real or mock, but the core purpose is understandable.
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?
No guidance is provided on when to use this tool versus the sibling 'hevy_status'. The description does not mention alternatives, exclusions, or typical use cases, leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hevy_statusB
Report whether Hevy API configuration is available
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 only states the core purpose (reporting availability) and does not mention potential errors, side effects, or output characteristics beyond the implicit yes/no.
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, concise sentence that directly states the tool's purpose. It is front-loaded and contains no unnecessary words.
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?
Given the tool's simplicity (0 params, no output schema, no annotations), the description adequately conveys that it reports a boolean status. It does not mention integration with sibling tools, but this is acceptable for such a minimal tool.
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 tool has 0 parameters, so the description does not need to explain any. The baseline for 0 params is 4, and the empty schema is adequately covered.
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's function with a specific verb ('Report') and resource ('Hevy API configuration availability'). It is distinct from the sibling tool hevy_recent_workouts, which focuses on retrieving workout data.
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?
No guidance is provided on when to use this tool versus the sibling or any alternatives. There is no mention of prerequisites or typical usage context.
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.
2 tool updates
v0.1.0- First observed
hevy_recent_workouts - First observed
hevy_status
TDQS
Scored across 2 tools
The two tools are clearly distinct: one reports configuration status, the other returns workout data. There is no overlap in their purposes or expected outputs.
Both tool names follow a consistent pattern: 'hevy_' prefix followed by a snake_case noun. This makes the naming predictable and easy to understand.
With only two tools, the server feels thin and borderline under-scoped. While each tool serves a purpose, a typical server for a domain like workouts would benefit from more coverage.
The tool set is significantly incomplete for a Hevy workout integration. It only provides a status check and a placeholder list, lacking any real workout retrieval, creation, update, or delete operations.
Maintenance
Related MCP Connectors
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Connect your health, fitness, nutrition, sleep, and wearable data to your AI assistant.
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceExposes Garmin Connect data and workout management to AI agents, supporting tools, resources, and prompts for health data, workout creation, and coaching workflows.1-
- AlicenseBqualityDmaintenanceA production-ready MCP server for the Hevy fitness API that exposes 27 tools for reading, writing, and analyzing workout data, enabling LLM-driven personal trainer workflows.279 npmMIT
- AlicenseBqualityDmaintenanceConnects Lelly.chat workspace with AI agents, offering tools for tasks, reminders, health tracking, CRM, knowledge base, finance, and spiritual journaling via MCP.31MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol (MCP) server that provides AI assistants with access to the Hevy fitness tracking API. This allows you to log workouts, manage routines, browse exercises, and track your fitness progress directly through AI chat interfaces.14 npmMIT