fix(mcp): always register self.assets.set_download_url tool for 32MB flash devices (#1971)

* fix(m5stack-tab5): remove stale esp_video==0.7.0 dependency instructions

The README previously instructed users to override esp_video to 0.7.0
and esp_ipa to 0.1.0, but this causes build failures because:
- esp_video 0.7.0 does not export esp_video_deinit(), resulting in
  linker errors ('MAP_FAILED' and 'esp_video_deinit' not declared)
- The project's main/idf_component.yml already pins the correct
  version (esp_video==1.3.1) that the source code expects

Users should now use the default dependency versions from idf_component.yml
without modification.

Fixes #1957

* fix(mcp): always register self.assets.set_download_url tool

On 32MB flash devices the assets partition layout differs from the
default, causing partition_valid() to return false and silently
skipping registration of the self.assets.set_download_url MCP tool.
Users see 'Unknown tool: self.assets.set_download_url' from their MCP
client.

The tool writes to Settings storage which works regardless of the
partition map, so the partition_valid() guard is unnecessary.
Move the AddUserOnlyTool call outside the guard so the tool is always
available for explicit configuration via MCP.

Fixes #1962

---------

Co-authored-by: Aayush Pratap Singh <aayushpratap.singh@gmail.com>
This commit is contained in:
Aayush Pratap Singh
2026-05-02 03:53:25 +05:30
committed by GitHub
parent e12e7351d9
commit 2be3c2cb1a
2 changed files with 6 additions and 28 deletions

View File

@ -8,27 +8,9 @@
## 基础使用 ## 基础使用
* idf version: v6.0-dev * idf version: v5.5.2 or above (recommended: v6.0-dev)
1. 调整 idf_component.yml * No dependency override needed — the project already specifies the correct `esp_video` and `esp_ipa` versions in `main/idf_component.yml`. Do NOT change the dependency versions unless you are also modifying the source code to match the older API.
```yaml
espressif/esp_video:
version: ==1.3.1 # for compatibility. update version may need to modify this project code.
rules:
- if: target not in [esp32]
```
修改为
```yaml
espressif/esp_video:
version: '==0.7.0'
rules:
- if: target not in [esp32]
espressif/esp_ipa: '==0.1.0'
```
* idf version: v5.5.3
针对 ESP32-P4 Rev <3.0 用户: 针对 ESP32-P4 Rev <3.0 用户:
确保你的 sdkconfig.defaults 包含: 确保你的 sdkconfig.defaults 包含:
@ -37,7 +19,7 @@ CONFIG_ESP32P4_SELECTS_REV_LESS_V3=y
否则烧写的时候会出现'bootloader/bootloader.bin' requires chip revision in range [v3.0 - v3.99] (this chip is revision v1.x) 否则烧写的时候会出现'bootloader/bootloader.bin' requires chip revision in range [v3.0 - v3.99] (this chip is revision v1.x)
2. 使用 release.py 编译 1. 使用 release.py 编译
```shell ```shell
python ./scripts/release.py m5stack-tab5 python ./scripts/release.py m5stack-tab5
@ -45,7 +27,7 @@ python ./scripts/release.py m5stack-tab5
如需手动编译请参考 `m5stack-tab5/config.json` 修改 menuconfig 对应选项 如需手动编译请参考 `m5stack-tab5/config.json` 修改 menuconfig 对应选项
3. 编译烧录程序 2. 编译烧录程序
```shell ```shell
idf.py flash monitor idf.py flash monitor
@ -62,5 +44,3 @@ idf.py flash monitor
1. listening... 需要等几秒才能获取语音输入??? 1. listening... 需要等几秒才能获取语音输入???
2. 亮度调节不对 2. 亮度调节不对
3. 音量调节不对 3. 音量调节不对
## TODO

View File

@ -284,10 +284,8 @@ void McpServer::AddUserOnlyTools() {
} }
#endif // HAVE_LVGL #endif // HAVE_LVGL
// Assets download url // Assets download url (always registered — Settings storage works regardless of partition layout)
auto& assets = Assets::GetInstance(); AddUserOnlyTool("self.assets.set_download_url", "Set the download url for the assets",
if (assets.partition_valid()) {
AddUserOnlyTool("self.assets.set_download_url", "Set the download url for the assets",
PropertyList({ PropertyList({
Property("url", kPropertyTypeString) Property("url", kPropertyTypeString)
}), }),