Note: This repository consolidates all Cookidoo Assistant services. The previous
cookidoo-mcprepository has been archived and merged here.
AI-powered meal planning assistant using Cookidoo recipes with MCP servers and REST API.
Create an intelligent meal planning system that generates weekly meal plans based on:
- Regional and seasonal availability
- User dietary preferences (omnivore, vegetarian, vegan, etc.)
- Allergies and intolerances
- Health data and nutrition goals
- User recipe preferences (liked/disliked recipes)
This is a monorepo containing all services in a single repository:
cookidoo-assistant/
βββ cookidoo-mcp/ # MCP Server for Cookidoo API
βββ cookidoo-assistant-shared/ # Shared business logic & data layer
βββ cookidoo-assistant-mcp/ # MCP Server for user data
βββ cookidoo-assistant-api/ # REST API (for future UI)
MCP Server that interfaces with Cookidoo API:
- Language: Python 3.11+
- Library:
cookidoo-api==0.17.0(miaucl/cookidoo-api) - Features: Recipe details, Custom/Managed collections, Calendar/Weekplan, Shopping List
- OAuth authentication with token refresh
- Full async/await support
Shared library containing:
- Language: TypeScript 5+
- Database models and repositories (TypeORM/Prisma)
- Business logic services
- Common utilities and types
MCP Server for managing user data:
- Language: TypeScript 5+
- MCP SDK:
@modelcontextprotocol/sdk - User profiles and preferences
- Dietary restrictions and allergies
- Health data and nutrition targets
- Recipe ratings (liked/disliked)
- Week plan management and history
REST API for future web/mobile UI (lower priority):
- Language: TypeScript 5+
- Framework: Express.js
- RESTful endpoints
- Same business logic as assistant-mcp (via shared library)
- Python 3.11+ (for cookidoo-mcp)
- Node.js >= 18 (for TypeScript services)
- Docker and Docker Compose
- Valid Cookidoo subscription
# Clone the repository
git clone https://github.com/TheRealKoller/cookidoo-assistant.git
cd cookidoo-assistant
# Install dependencies
npm install
# Setup environment variables
cp cookidoo-mcp/.env.example cookidoo-mcp/.env
cp cookidoo-assistant-mcp/.env.example cookidoo-assistant-mcp/.env
cp cookidoo-assistant-api/.env.example cookidoo-assistant-api/.env
# Edit .env files with your credentials# Start all services with Docker Compose
npm run docker:up
# Or start individual services
npm run dev:mcp # cookidoo-mcp on port 3000
npm run dev:assistant-mcp # cookidoo-assistant-mcp on port 3001
npm run dev:assistant-api # cookidoo-assistant-api on port 3002# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
# Lint all code
npm run lint
# Format all code
npm run formatTrigger: On every push to main and on all pull requests
The CI workflow runs automatically and includes:
- Linting: Code style checks with ESLint and Prettier
- Type Checking: TypeScript type validation
- Unit Tests: Jest tests for TypeScript services, pytest for Python
- Test Coverage: Uploaded to Codecov
- Build: Compiles all TypeScript services
- Docker: Builds Docker images (without pushing)
Trigger: On version tag push (e.g., v1.0.0)
Creates a new release with:
- Versioned Docker Images: Semantic versioning (major.minor.patch)
- GitHub Container Registry: Images pushed to
ghcr.io - GitHub Release: Auto-generated release notes
- Changelog: Git log-based changelog
Usage:
git tag v1.0.0
git push origin v1.0.0Trigger: Manual dispatch or on PR changes to service code
End-to-end testing workflow:
- Spins up full docker-compose stack
- Waits for service health checks
- Runs E2E test suite
- Captures logs on failure
- Cleans up resources
Manual Trigger:
gh workflow run e2e.yml --repo TheRealKoller/cookidoo-assistantOr via GitHub Actions UI: Actions β E2E Tests β Run workflow
- Repository: https://github.com/TheRealKoller/cookidoo-assistant
- Project Board: https://github.com/users/TheRealKoller/projects/5
- Instructions: .opencode/instructions.md
- Skills: .opencode/skills/
- Service-specific docs in each service's README
Status: β Decided in Issue #21
- Language: Python 3.11+
- MCP SDK:
mcp(Python SDK) - Cookidoo API:
cookidoo-api==0.17.0(miaucl/cookidoo-api) - Async:
asyncio+aiohttp - Testing:
pytest+pytest-asyncio - Type Hints: Full annotations with
mypy - Linting/Format:
ruff
- Language: TypeScript 5+
- Runtime: Node.js 18+
- MCP SDK:
@modelcontextprotocol/sdk(assistant-mcp only) - Framework: Express.js (api)
- ORM: TypeORM or Prisma (shared)
- Testing: Jest + Supertest
- Linting/Format: ESLint + Prettier
- Containerization: Docker + Docker Compose
- Databases: PostgreSQL (separate instances per service)
- Package Management: npm workspaces (TypeScript), pip (Python)
| Service | Status | Priority |
|---|---|---|
| cookidoo-mcp | π§ Planning | High |
| cookidoo-assistant-shared | π§ Planning | High |
| cookidoo-assistant-mcp | π§ Planning | High |
| cookidoo-assistant-api | π Planned | Medium |
Note: Issue numbers updated after monorepo migration (old cookidoo-mcp#1-11 β #20-30)
- #20 - Initialize Monorepo Structure β COMPLETED
- #21 - Evaluate Cookidoo API Libraries β COMPLETED (Decision: Python + miaucl/cookidoo-api)
- #19 - Create Tech-Stack-Specific Instructions & Skills π§ IN PROGRESS
- Setup Docker infrastructure
- Database schema design
- Implement cookidoo-mcp MCP tools
- Implement shared library (DB, services)
- Implement cookidoo-assistant-mcp MCP tools
- Unit and integration tests
- E2E tests
- CI/CD pipeline
- Comprehensive documentation
- REST API implementation
- API documentation (OpenAPI)
See CONTRIBUTING.md for development guidelines.
- Pick an issue from the Project Board
- Create a feature branch:
git checkout -b feature/ISSUE_NUMBER-description - Make changes and commit using Conventional Commits
- Create a Pull Request referencing the issue
- Ensure all tests pass and code is reviewed
feature/- New featuresfix/- Bug fixesdocs/- Documentationrefactor/- Code refactoring
Follow Conventional Commits:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changestest:- Test changesrefactor:- Code refactoringchore:- Maintenance tasks
MIT
- GitHub Repository: https://github.com/TheRealKoller/cookidoo-assistant
- GitHub Project Board: https://github.com/users/TheRealKoller/projects/5
- Archived cookidoo-mcp Repository: https://github.com/TheRealKoller/cookidoo-mcp (archived, moved to monorepo)
- Cookidoo: https://cookidoo.de
This repository consolidates the following projects:
cookidoo-mcp(Issues #1-11 β transferred as #20-30)cookidoo-assistant(Issues #1-19 β unchanged)
All development now happens in this single monorepo.