hevy-mcp
Version:
A Model Context Protocol (MCP) server implementation that interfaces with the Hevy fitness tracking app and its API.
170 lines (120 loc) • 4.62 kB
Markdown
# hevy-mcp: Model Context Protocol Server for Hevy Fitness API
[](https://opensource.org/licenses/MIT)
[](https://smithery.ai/server/@chrisdoc/hevy-mcp)
A Model Context Protocol (MCP) server implementation that interfaces with the [Hevy fitness tracking app](https://www.hevyapp.com/) and its [API](https://api.hevyapp.com/docs/). This server enables AI assistants to access and manage workout data, routines, exercise templates, and more through the Hevy API (requires PRO subscription).
## Features
- **Workout Management**: Fetch, create, and update workouts
- **Routine Management**: Access and manage workout routines
- **Exercise Templates**: Browse available exercise templates
- **Folder Organization**: Manage routine folders
## Prerequisites
- Node.js (v20 or higher)
- npm or yarn
- A Hevy API key
## Installation
### Installing via Smithery
To install hevy-mcp for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@chrisdoc/hevy-mcp):
```bash
npx -y @smithery/cli install @chrisdoc/hevy-mcp --client claude
```
### Manual Installation
```bash
# Clone the repository
git clone https://github.com/chrisdoc/hevy-mcp.git
cd hevy-mcp
# Install dependencies
npm install
# Create .env file from sample
cp .env.sample .env
# Edit .env and add your Hevy API key
```
### Integration with Cursor
To use this MCP server with Cursor, you need to update your `~/.cursor/mcp.json` file by adding the following configuration:
```json
{
"hevy-mcp-server": {
"command": "npx",
"args": ["-y", "hevy-mcp"],
"env": {
"HEVY_API_KEY": "your-api-key-here"
}
}
}
```
Make sure to replace `your-api-key-here` with your actual Hevy API key.
## Configuration
Create a `.env` file in the project root with the following content:
```
HEVY_API_KEY=your_hevy_api_key_here
```
Replace `your_hevy_api_key_here` with your actual Hevy API key.
## Usage
### Development
```bash
npm run dev
```
This starts the MCP server in development mode with hot reloading.
### Production
```bash
npm run build
npm start
```
## Available MCP Tools
The server implements the following MCP tools:
### Workout Tools
- `get-workouts`: Fetch and format workout data
- `get-workout`: Get a single workout by ID
- `create-workout`: Create a new workout
- `update-workout`: Update an existing workout
- `get-workout-count`: Get the total count of workouts
- `get-workout-events`: Get workout update/delete events
### Routine Tools
- `get-routines`: Fetch and format routine data
- `create-routine`: Create a new routine
- `update-routine`: Update an existing routine
- `get-routine`: Get a single routine by ID
### Exercise Template Tools
- `get-exercise-templates`: Fetch exercise templates
- `get-exercise-template`: Get a template by ID
### Routine Folder Tools
- `get-routine-folders`: Fetch routine folders
- `create-routine-folder`: Create a new folder
- `get-routine-folder`: Get a folder by ID
## Project Structure
```
hevy-mcp/
├── .env # Environment variables (API keys)
├── src/
│ ├── index.ts # Main entry point
│ ├── tools/ # Directory for MCP tool implementations
│ │ ├── workouts.ts # Workout-related tools
│ │ ├── routines.ts # Routine-related tools
│ │ ├── templates.ts # Exercise template tools
│ │ └── folders.ts # Routine folder tools
│ ├── generated/ # API client (generated code)
│ │ ├── client/ # Kiota-generated client
│ └── utils/ # Helper utilities
│ ├── formatters.ts # Data formatting helpers
│ └── validators.ts # Input validation helpers
├── scripts/ # Build and utility scripts
└── tests/ # Test suite
```
## Development
### Code Style
This project uses Biome for code formatting and linting:
```bash
npm run check
```
### Generating API Client
The API client is generated from the OpenAPI specification using Kiota:
```bash
npm run export-specs
npm run build:client
```
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## Acknowledgements
- [Model Context Protocol](https://github.com/modelcontextprotocol) for the MCP SDK
- [Hevy](https://www.hevyapp.com/) for their fitness tracking platform and API