
adamwalt/myfitnesspal-mcp-python
Developer tools이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기
adamwalt/myfitnesspal-mcp-python는 MCP 서버 후보자는 https://github.com/adamwalt/myfitnesspal-mcp-python.에서 수입했습니다
개요
adamwalt/myfitnesspal-mcp-python는 MCP 서버 후보자는 https://github.com/adamwalt/myfitnesspal-mcp-python.에서 수입했습니다
개요(AI 번역)
A Model Context Protocol (MCP) 서버는 식품 일기, 운동, 신체 측정, 영양 목표 및 물 섭취를 포함한 MyFitnessPal 데이터와 상호 작용하는 Claude와 같은 AI 조수를 가능하게합니다.
특징
| 도구 | 유형 | 묘사 |
|------|-------|
| mfp_get_diary | 읽다 | 날짜별 음식 일기표
| mfp_search_food | 읽다 | MyFitnessPal 식품 데이터베이스 검색 |
| mfp_get_food_details | 읽음 | 음식에 대한 자세한 영양정보를 얻으십시오 |
| [T3] | 글쓰기 | 특정 식사 및 날짜에 대한 일기에 음식 항목을 추가 |
| mfp_remove_food_from_diary | 글쓰기 | 일기에서 로그온을 제거 |
| mfp_create_custom_food | 글쓰기 | 전체 영양 패널과 개인 맞춤식 식품 만들기 |
| mfp_list_own_foods | 읽음 | 자신만의 주문식품 일람표(개인은 검색되지 않습니다) |
| mfp_delete_custom_food | 글쓰기 | 사용자 지정 식품의 삭제 |
| mfp_get_measurements | 읽다 | 체중/체중 측정 내역 |
| mfp_set_measurement | 글쓰기 | 새로운 무게나 신체 측정에 로그인 |
| mfp_get_exercises | 읽음 | 로그인 연습 (cardio & strength) |
이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.
README
원문 README의 일부입니다. 원문 보기.
MyFitnessPal MCP Server
A Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with your MyFitnessPal data, including food diary, exercises, body measurements, nutrition goals, and water intake.
Features
| Tool | Type | Description |
|---|---|---|
mfp_get_diary |
Read | Get food diary entries for any date |
mfp_search_food |
Read | Search the MyFitnessPal food database |
mfp_get_food_details |
Read | Get detailed nutrition info for a food item |
mfp_add_food_to_diary |
Write | Add a food item to your diary for a specific meal and date |
mfp_remove_food_from_diary |
Write | Remove a logged entry from your diary |
mfp_create_custom_food |
Write | Create a private custom food with a full nutrition panel |
mfp_list_own_foods |
Read | List your own custom foods (private ones do not appear in search) |
mfp_delete_custom_food |
Write | Delete one of your custom foods |
mfp_get_measurements |
Read | Get weight/body measurement history |
mfp_set_measurement |
Write | Log a new weight or body measurement |
mfp_get_exercises |
Read | Get logged exercises (cardio & strength) |
mfp_get_goals |
Read | Get daily nutrition goals |
mfp_set_goals |
Write | Update daily nutrition goals |
mfp_get_water |
Read | Get water intake for a date |
mfp_set_water |
Write | Log water intake for a date |
mfp_get_steps |
Read | Get daily step counts synced from Apple Health / devices |
mfp_log_fast |
Write | Log a completed intermittent fasting window (start + end) |
mfp_update_fast |
Write | Update the start/end times of an existing fasting entry |
mfp_delete_fast |
Write | Delete a fasting entry by id |
mfp_get_report |
Read | Get nutrition reports over a date range |
refresh_browser_cookies |
Utility | Extract and save session cookies from browser |
How diary writes work
MyFitnessPal has no public API. Reads here are scraped from the website via
python-myfitnesspal, and diary
writes go through MFP’s internal v2 JSON API — the same one their web client uses,
authenticated with your existing session token.
Custom-food writes (mfp_create_custom_food, mfp_list_own_foods,
mfp_delete_custom_food) use a different endpoint family: MFP’s v2 API exposes no
custom-food create, so these call the same cookie-authenticated web endpoints their
website uses (/api/auth/csrf, /api/services/users/foods/mine, /api/services/foods).
No browser needs to be running — the stored session cookies are sufficient.
That interface is undocumented and was determined by observing the web client. It works today,
but MyFitnessPal can change it without notice. They have already done so once: this server
originally posted to /food/diary/{user}/add, which now returns 404, leaving food logging
설치
docker run -it --rm \설정
{
"mcpServers": {
"myfitnesspal": {
"command": "/Users/yourname/myfitnesspal-mcp-python/venv/bin/python",
"args": ["-m", "mfp_mcp.server"],
"env": {
"MFP_USERNAME": "gAAAAAB...<encrypted_email>",
"MFP_PASSWORD": "gAAAAAB...<encrypted_password>"
}
}
}
}