{"_id":"@cookie223/wger-mcp","_rev":"2-b4653e0c0d5a30c6b83e3c051b996b89","name":"@cookie223/wger-mcp","dist-tags":{"latest":"1.1.3"},"versions":{"1.1.2":{"name":"@cookie223/wger-mcp","version":"1.1.2","keywords":["mcp","model-context-protocol","wger","fitness","workout","exercise","ai","claude","health","training","gym"],"author":{"name":"wger MCP Contributors"},"license":"MIT","_id":"@cookie223/wger-mcp@1.1.2","maintainers":[{"name":"cookie223","email":"g.cookie223@gmail.com"}],"homepage":"https://github.com/Juxsta/wger-mcp#readme","bugs":{"url":"https://github.com/Juxsta/wger-mcp/issues"},"bin":{"wger-mcp":"dist/index.js"},"dist":{"shasum":"b6bad8c5af6afad805144a12e45a481acf71086f","tarball":"https://registry.npmjs.org/@cookie223/wger-mcp/-/wger-mcp-1.1.2.tgz","fileCount":98,"integrity":"sha512-7obYGu0G3nrhB5xDEVdzR1NduSvuBvQFGtglONy67yCVS3n6Gx/dW7pOkelFfJOhuh+tYTKPM3AB1qAV3Hf5Dw==","signatures":[{"sig":"MEQCIFbjnHTkY4aPvWR2nj/UqczoTyeqywZvX5PQrTPywdLQAiA8poB//25xMqzJoeR6dv3vDxoSLLWdoy7S92vHlL0ukQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331895},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8fdc4181dff06f83720ee9814edee903d2380abc","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","format":"prettier --write src/**/*.ts","prepare":"npm run build","type-check":"tsc --noEmit","format:check":"prettier --check src/**/*.ts","test:coverage":"jest --coverage","prepublishOnly":"npm run lint && npm run type-check"},"_npmUser":{"name":"cookie223","email":"g.cookie223@gmail.com"},"repository":{"url":"git+https://github.com/Juxsta/wger-mcp.git","type":"git"},"_npmVersion":"11.6.2","description":"MCP server for wger workout and fitness API - enables AI assistants to search exercises and manage workout routines","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.22.0","axios":"^1.6.0","dotenv":"^16.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"msw":"^1.3.2","jest":"^29.7.0","eslint":"^8.50.0","ts-jest":"^29.1.0","prettier":"^3.0.0","typescript":"^5.2.0","@types/jest":"^29.5.0","@types/node":"^18.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/wger-mcp_1.1.2_1768161262091_0.018681418416272688","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@cookie223/wger-mcp","version":"1.1.3","description":"MCP server for wger workout and fitness API - enables AI assistants to search exercises and manage workout routines","main":"dist/index.js","types":"dist/index.d.ts","bin":{"wger-mcp":"dist/index.js"},"scripts":{"build":"tsc","test":"jest","test:coverage":"jest --coverage","lint":"eslint src/**/*.ts","format":"prettier --write src/**/*.ts","format:check":"prettier --check src/**/*.ts","type-check":"tsc --noEmit","prepare":"npm run build","prepublishOnly":"npm run lint && npm run type-check"},"keywords":["mcp","model-context-protocol","wger","fitness","workout","exercise","ai","claude","health","training","gym"],"author":{"name":"wger MCP Contributors"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Juxsta/wger-mcp.git"},"bugs":{"url":"https://github.com/Juxsta/wger-mcp/issues"},"homepage":"https://github.com/Juxsta/wger-mcp#readme","engines":{"node":">=18.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","axios":"^1.6.0","dotenv":"^16.3.0","zod":"^3.22.0"},"devDependencies":{"@types/jest":"^29.5.0","@types/node":"^18.0.0","@typescript-eslint/eslint-plugin":"^6.0.0","@typescript-eslint/parser":"^6.0.0","eslint":"^8.50.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.0","jest":"^29.7.0","msw":"^1.3.2","prettier":"^3.0.0","ts-jest":"^29.1.0","typescript":"^5.2.0"},"gitHead":"43a6a2ff188ec9fd6b05c54ba214cc2013bd6d79","_id":"@cookie223/wger-mcp@1.1.3","_nodeVersion":"25.2.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-NrFtoGsVd/TXgfjrcxaite/dqjZRa8937o4YTK8cZ8D8jMVc+lMgfGkUvcagn4279tgnqyrTkZkXAzjthaSg3w==","shasum":"f5ac24c5c5fbfdc9dac9029c88441bb040ad8249","tarball":"https://registry.npmjs.org/@cookie223/wger-mcp/-/wger-mcp-1.1.3.tgz","fileCount":102,"unpackedSize":335241,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCSxmJ7nvb9MHmm4JporJpbXpPs9agr3Xn4/ewOh4aZUAIhALErST2skIAiJWSN5iVvLhJb3dFtQ5aT+xTFG8oHS6Zd"}]},"_npmUser":{"name":"cookie223","email":"g.cookie223@gmail.com"},"directories":{},"maintainers":[{"name":"cookie223","email":"g.cookie223@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wger-mcp_1.1.3_1768162567632_0.241276267368413"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-11T19:54:21.988Z","modified":"2026-01-11T20:16:07.975Z","1.1.2":"2026-01-11T19:54:22.243Z","1.1.3":"2026-01-11T20:16:07.785Z"},"bugs":{"url":"https://github.com/Juxsta/wger-mcp/issues"},"author":{"name":"wger MCP Contributors"},"license":"MIT","homepage":"https://github.com/Juxsta/wger-mcp#readme","keywords":["mcp","model-context-protocol","wger","fitness","workout","exercise","ai","claude","health","training","gym"],"repository":{"type":"git","url":"git+https://github.com/Juxsta/wger-mcp.git"},"description":"MCP server for wger workout and fitness API - enables AI assistants to search exercises and manage workout routines","maintainers":[{"name":"cookie223","email":"g.cookie223@gmail.com"}],"readme":"# wger MCP Server\n\n[![Build Status](https://github.com/Juxsta/wger-mcp/workflows/CI/badge.svg)](https://github.com/Juxsta/wger-mcp/actions)\n[![npm version](https://badge.fury.io/js/@juxsta/wger-mcp.svg)](https://www.npmjs.com/package/@juxsta/wger-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA production-ready Model Context Protocol (MCP) server that provides AI assistants like Claude with seamless access to the wger fitness API. Search through 400+ exercises, create workout routines, and manage fitness data - all through natural conversation.\n\n## Overview\n\nThe wger MCP server enables AI assistants to integrate with [wger](https://wger.de), a free, open-source fitness and workout management platform. With this MCP server, Claude Desktop and other AI applications can:\n\n- Search and discover exercises by muscle group, equipment, or keywords\n- Retrieve detailed exercise information including form instructions\n- Create and manage workout routines for authenticated users\n- Add exercises to routines with customizable sets, reps, and weights\n\nThis server implements the [Model Context Protocol](https://modelcontextprotocol.io/), making it compatible with any MCP-enabled AI application.\n\n## Key Features\n\n- **8 Powerful Tools**: Comprehensive exercise discovery and workout management capabilities\n- **Type-Safe**: Built with TypeScript in strict mode with full type definitions\n- **Intelligent Caching**: Automatic caching of static data to minimize API calls\n- **Robust Authentication**: JWT-based auth with automatic token refresh\n- **Error Handling**: User-friendly error messages with graceful fallbacks\n- **High Test Coverage**: 80%+ code coverage with unit and integration tests\n- **Production Ready**: Comprehensive logging, retry logic, and timeout handling\n- **Zero Cost**: Access to 400+ exercises from the free wger API\n\n## Quick Start\n\n### Prerequisites\n\n- **Node.js** 18.0.0 or higher\n- **Claude Desktop** (or another MCP-compatible application)\n- **wger Account** (optional, only needed for workout management features)\n\n### Installation\n\n**Option 1: Using Claude Code CLI (Recommended)**\n\n```bash\nclaude mcp add wger -e WGER_API_KEY=your_key_here -- npx -y @juxsta/wger-mcp\n```\n\n**Option 2: Install globally via npm**\n\n```bash\nnpm install -g @juxsta/wger-mcp\nclaude mcp add wger -e WGER_API_KEY=your_key_here -- wger-mcp\n```\n\n**Option 3: For development, clone and build locally**\n\n```bash\ngit clone https://github.com/Juxsta/wger-mcp.git\ncd wger-mcp\nnpm install\nnpm run build\n```\n\n### Basic Configuration\n\n1. **Get your wger API credentials** (optional for read-only features):\n   - Visit [wger.de](https://wger.de) and create an account\n   - Generate an API key from your account settings\n   - Or use your username and password\n\n2. **Configure Claude Desktop**:\n\n   Open your Claude Desktop configuration file:\n   - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`\n   - Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`\n   - Linux: `~/.config/Claude/claude_desktop_config.json`\n\n   Add the wger MCP server:\n\n   ```json\n   {\n     \"mcpServers\": {\n       \"wger\": {\n         \"command\": \"node\",\n         \"args\": [\"/absolute/path/to/wger-mcp/dist/index.js\"],\n         \"env\": {\n           \"WGER_API_KEY\": \"your_api_key_here\"\n         }\n       }\n     }\n   }\n   ```\n\n3. **Restart Claude Desktop** and start using the tools!\n\nFor detailed setup instructions, see [SETUP.md](docs/SETUP.md).\n\n## Available Tools\n\n### Exercise Discovery\n\n- **`search_exercises`** - Search exercises with filters for muscle, equipment, category, and keywords\n- **`get_exercise_details`** - Get comprehensive information about a specific exercise\n- **`list_categories`** - List all exercise categories (strength, cardio, stretching, etc.)\n- **`list_muscles`** - List all muscle groups for filtering exercises\n- **`list_equipment`** - List all equipment types available\n\n### Workout Management (Authentication Required)\n\n- **`create_workout`** - Create a new workout routine\n- **`add_exercise_to_routine`** - Add exercises to a routine with sets, reps, and weights\n- **`get_user_routines`** - Retrieve all workout routines for the authenticated user\n\nFor complete tool documentation, see [API.md](docs/API.md).\n\n## Example Usage\n\nOnce configured, simply chat with Claude:\n\n```\nYou: \"Find me some chest exercises I can do with dumbbells\"\n\nClaude: [Uses search_exercises tool with muscle=chest, equipment=dumbbells]\n\"I found several dumbbell chest exercises:\n1. Dumbbell Bench Press\n2. Dumbbell Flyes\n3. Incline Dumbbell Press\n...\"\n\nYou: \"Tell me more about the dumbbell bench press\"\n\nClaude: [Uses get_exercise_details tool]\n\"The dumbbell bench press is a compound exercise that targets...\"\n```\n\nFor more detailed examples and scenarios, see [EXAMPLES.md](docs/EXAMPLES.md).\n\n## Authentication\n\nThe wger MCP server supports two authentication methods:\n\n### Option 1: API Key (Recommended)\n\n```bash\nexport WGER_API_KEY=\"your_api_key_here\"\n```\n\n### Option 2: Username and Password\n\n```bash\nexport WGER_USERNAME=\"your_username\"\nexport WGER_PASSWORD=\"your_password\"\n```\n\nAuthentication is only required for workout management tools. Exercise discovery tools work without authentication.\n\n## Development\n\n### Setup Development Environment\n\n```bash\n# Clone the repository\ngit clone https://github.com/Juxsta/wger-mcp.git\ncd wger-mcp\n\n# Install dependencies\nnpm install\n\n# Copy environment variables\ncp .env.example .env\n\n# Edit .env with your credentials\n```\n\n### Build and Test\n\n```bash\n# Build the project\nnpm run build\n\n# Run tests\nnpm test\n\n# Run tests with coverage\nnpm run test:coverage\n\n# Lint code\nnpm run lint\n\n# Format code\nnpm run format\n```\n\n### Project Structure\n\n```\nwger-mcp/\n├── src/\n│   ├── tools/          # MCP tool implementations\n│   ├── client/         # HTTP client and auth\n│   ├── schemas/        # Zod validation schemas\n│   ├── types/          # TypeScript type definitions\n│   ├── utils/          # Error handling and logging\n│   ├── config.ts       # Configuration management\n│   ├── server.ts       # MCP server setup\n│   └── index.ts        # Entry point\n├── tests/\n│   ├── unit/           # Unit tests\n│   ├── integration/    # Integration tests\n│   └── fixtures/       # Test data\n├── docs/               # Documentation\n└── dist/               # Compiled JavaScript\n```\n\n## API Reference\n\nFor complete API documentation including parameters, return values, and examples for all 8 tools, see the [API Reference](docs/API.md).\n\n## Contributing\n\nWe welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for:\n\n- How to set up your development environment\n- Code style guidelines\n- How to run tests\n- Pull request process\n- How to report bugs and request features\n\n## Resources\n\n- [wger API Documentation](https://wger.de/en/software/api)\n- [Model Context Protocol Documentation](https://modelcontextprotocol.io/)\n- [Claude Desktop](https://claude.ai/download)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Support\n\n- **Issues**: [GitHub Issues](https://github.com/Juxsta/wger-mcp/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/Juxsta/wger-mcp/discussions)\n- **wger Community**: [wger GitHub](https://github.com/wger-project/wger)\n\n## Acknowledgments\n\n- Built with the [Model Context Protocol SDK](https://github.com/modelcontextprotocol)\n- Powered by [wger - Workout Manager](https://wger.de/)\n- Created for seamless fitness data integration with AI assistants\n\n---\n\nMade with ❤️ for the AI and fitness communities\n","readmeFilename":"README.md"}