Marek Fiala and Cursor
3b3c7c7abf
fix(tools): send mcp-server startup diagnostics to stderr
...
idf.py mcp-server printed startup, shutdown, and error messages on
stdout. On the stdio MCP transport, stdout is the JSON-RPC channel, so
those non-JSON lines can confuse or break strict clients. Route them to
stderr like the other diagnostics in mcp_ext.py.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-01 08:10:42 +02:00
Marek Fiala
cac2e57758
fix(tools): detach MCP tool subprocess stdin from JSON-RPC pipe
...
idf.py mcp-server tool handlers were spawning idf.py without redirecting
stdin, so the child inherited the long-lived MCP JSON-RPC transport and
could hang indefinitely on tools/call. Pass stdin=subprocess.DEVNULL on
every spawn of idf.py.
Closes https://github.com/espressif/esp-idf/issues/18961
2026-09-01 08:10:42 +02:00
Marek Fiala and Cursor
85a6c1d8c1
fix(tools): support mcp Python SDK 2.0 for mcp-server
...
FastMCP was renamed to MCPServer in mcp 2.0, which made idf.py mcp-server
report a false "MCP dependencies not available" error. Prefer MCPServer
and keep a FastMCP fallback for mcp 1.x.
Closes https://github.com/espressif/esp-idf/issues/18904
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-05 15:36:43 +02:00
Marek Fiala and Cursor
57365fdfb4
docs(tools): update mcp-server docs for project_dir and create-project
...
- Server can now start from any directory, not just a valid project dir
- Document project_dir argument available on all tools
- Add create-project tool to the list of available tools
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-25 09:14:01 +02:00
Marek Fiala
56fb3657a2
feat(tools): Improved verification of ESP-IDF project
...
Closes https://github.com/espressif/esp-idf/issues/18675
2026-06-25 09:14:01 +02:00
Marek Fiala
14d3b3cbc0
feat(tools): mcp-server added create-project tool
2026-06-25 09:14:01 +02:00
Marek Fiala
a2adc0ab1e
feat(tools): mcp-server accepts project_dir from chat
...
At the same time, it's possible to start idf.py mcp-server
outside ESP-IDF project directory.
Added ESP-IDF mcp server tests
2026-06-25 09:14:01 +02:00
Marek Fiala
e5322213a9
fix(tools): Patch rich-click version < 1.9.5
2026-05-29 10:52:17 +02:00
Marek Fiala
ab20f29305
fix(tools): Patch rich-click version < 1.9.0
2026-05-29 10:52:17 +02:00
Marek Fiala
b6872d32a0
feat(tools): Visibly grouped custom extension actions in idf.py --help
2026-05-29 10:52:17 +02:00
Marek Fiala
007e0139d7
feat(tools): Replaced click with rich_click
2026-05-29 10:52:09 +02:00
Marek Fiala
46cc126c50
feat(tools): Restrict loading extension components to trusted sources
2026-04-27 22:04:34 +08:00
Marek Fiala
b4fd738389
feat(tools): Added cmake and ninja arm binaries
...
Closes https://github.com/espressif/esp-idf/issues/18272
2026-03-19 19:11:22 +08:00
Marek Fiala
e7e8c09a33
docs(tools): Adjusted mcp server documentation
2026-03-11 09:36:01 +01:00
Marek Fiala
72a8d690de
feat(tools): mcp_ext.py commands adjustments
2026-03-11 09:36:00 +01:00
Marek Fiala
dfabcbb822
change: Moved esp-tls hint to component specific hints.yml file
2026-02-18 13:54:59 +01:00
Marek Fiala
16c766097c
test(tools): Added test for coponent hints loading
2026-02-18 13:54:58 +01:00
Marek Fiala
dc7ae3352a
feat(tools): Extended hints.yml loading from components
2026-02-18 13:54:58 +01:00
Marek Fiala
28dbaeb210
docs(tools): Made static link for config profile files
...
Made the reference link to v5.5 to reflect the correct example,
as in later version the example was changed.
2026-01-19 16:15:32 +01:00
Marek Fiala
471c2f8f74
docs(tools): Updated argument via file with quotations
...
Closes https://github.com/espressif/esp-idf/issues/18077
2026-01-19 16:15:32 +01:00
Marek Fiala
20faecf847
feat(tools): Clean up esp-idf-size new generation
2026-01-06 00:01:17 +08:00
Marek Fiala
063eebb046
feat(tools): Updated ccache 4.11.2 -> 4.12.1
...
Closes https://github.com/espressif/esp-idf/issues/17756
2025-11-20 14:11:26 +01:00
Marek Fiala
7a8389b6c8
refactor(tools): test_idf_tools.py ruff changes
2025-11-20 14:11:26 +01:00
Marek Fiala
4591a6f29b
Revert "fix: Updated locale handling to prevent issues with build tools"
...
This reverts commit 7e09b471ab .
2025-11-04 09:20:51 +01:00
Marek Fiala
a46f5a1022
Revert "fix: Updated locale handling to prevent issues with build tools"
...
This reverts commit 7e09b471ab .
2025-11-03 18:09:17 +01:00
Marek Fiala
cd00ca0b50
docs(idf-py.rst): Added cmake preset paragraph
2025-11-03 17:34:21 +01:00
Marek Fiala
58b848dc15
test(tools): Moved preset parsing into core_ext.py and added tests
2025-11-03 17:34:21 +01:00
Marek Fiala
c4347a682d
feat: Install mcp with initialization scripts
2025-10-20 16:22:54 +02:00
Marek Fiala
854f6b0a3e
fix(test_idf_py): Added extension API version into test extensions files
2025-10-02 15:37:29 +02:00
Marek Fiala
248c3a996e
change(test_idf_py): ruff formatting idf_ext.py & some_ext.py
2025-10-02 15:34:31 +02:00
Marek Fiala
56fa45c741
revert(tools): Removed --legacy option for esp-idf-size
2025-09-29 01:54:38 +08:00
Marek Fiala
8f4c52a358
change(tools): ruff formatting core_ext.py
2025-09-29 01:54:38 +08:00
Marek Fiala
96ff174dac
feat(tools): idf.py extension - added interface version
2025-09-23 15:26:33 +08:00
Marek Fiala
7ac1c541fd
docs(tools): Updated documentation about extension options
2025-09-23 15:26:33 +08:00
Marek Fiala
74f75feb3a
test(tools): Added idf extensions build system tests
2025-09-23 15:26:33 +08:00
Marek Fiala
4f8fb84caa
feat(tools): Added check for duplicit action names/aliases from external extensions
2025-09-23 15:26:33 +08:00
Marek Fiala
732f68a2a5
feat(tools): Load idf_ext.py from build component directories & python entrypoints
...
Extend search for idf_ext.py beyond the project directory to include
all build components involved in the build. Also discover idf_ext.py
modules via Python entrypoints.
2025-09-23 15:26:33 +08:00
Marek Fiala
2ec170b2fb
change(tools): idf.py & tools.py ruff formatting
2025-09-23 15:26:33 +08:00
Marek Fiala
7e5b0a8bb0
feat(test): Used dockerfile with updated cmake versions
2025-09-22 16:47:50 +02:00
Marek Fiala
efa75a9b60
test(tools): Added minimal supported cmake versions build system tests
2025-09-22 16:47:42 +02:00
Marek Fiala
af168c75b3
docs(migration-guide): Information on how to update CMake
2025-08-19 14:44:32 +02:00
Marek Fiala
9d35d63651
feat(cmake): Update minimum cmake version to 3.22 (whole repository)
2025-08-19 14:44:32 +02:00
Marek Fiala
d7faae9ae4
change(tools): ruff formating test_hints.py
2025-08-19 14:44:31 +02:00
Marek Fiala
9aada24169
feat(tools): Updated cmake versions - tools.json
...
recommended v3.30.2 -> v4.0.3
supported v3.16.3 -> v3.22.1
2025-08-19 14:44:31 +02:00
Marek Fiala
d548d283b9
revert(tools): Revert backup option to use legacy export scrips
...
This reverts commit 7b417fc3f2 .
2025-08-15 09:11:02 +02:00
Marek Fiala
a6a4f8a705
feat(tools): Normalized detected shell names to lowercase on Windows
...
Closes https://github.com/espressif/esp-idf/issues/16868
2025-07-21 11:16:10 +02:00
Marek Fiala
b7efec31d2
change(tools): shell_types.py ruff formatting
2025-07-21 11:16:10 +02:00
Marek Fiala
8ae487d48e
feat(tools): Enforce pip 'user' option to no, when installing python env
...
Closes https://github.com/espressif/esp-idf/issues/16189
2025-07-11 21:35:39 +08:00
Marek Fiala
285e1edbea
feat(tools): Added encoding when special characters used with username
...
Closes https://github.com/espressif/esp-idf/issues/16229
2025-07-11 21:35:11 +08:00
Marek Fiala
bd0873f9ec
fix(tools): idf_tools.py uninstall decide based on preferred tool version
...
idf_tools.py uninstall now doesn't take only recommended version, but
makes the decision based on preferred installed versions.
2025-06-18 19:33:54 +08:00
Marek Fiala
335ba6b3c2
test(tools): Added test for installing supported tool version
...
Added test_export_supported_version_cmake in `test_idf_tools.py`,
that installs and exports supported version of tool - cmake.
2025-06-18 19:33:54 +08:00
Marek Fiala
79ebe0b306
fix(tools): idf_tools.py install tool@version
2025-06-18 19:33:54 +08:00
Marek Fiala
b3f24a9533
fix(tools): idf.py create-project works in read-only ESP-IDF
...
As the native copy function shutil.copyfile preserves directories metadata
such as file permissions, we need to ensure the copied destination
is writable for owner.
Closes https://github.com/espressif/esp-idf/issues/15964
Closes https://github.com/espressif/esp-idf/pull/16021
2025-06-10 14:48:08 +02:00
Marek Fiala
5ec67f5e2c
feat(tools): adjusted create_ext.py by ruff formatter
2025-06-10 14:48:08 +02:00
Marek Fiala
c17baef38d
feat(test): Lower the scope when win tests are automatically executed
...
Introduced new rule "atterns-build_system_win", that coveres scope
for windows test. It currently contains only "tools/test_build_system/**/*".
2025-05-27 11:24:58 +02:00
Marek Fiala
94994f7ad3
fix(test): Temporarily disable test_cli_installer_win
2025-05-27 11:13:04 +02:00
Marek Fiala
a3318d6280
fix(test): Temporarily allow test_cli_installer_win to fail
2025-05-21 16:12:35 +08:00
Marek Fiala
39cbbab859
fix(tools): Enabled removing requirements.* files
2025-05-19 15:51:49 +02:00
Marek Fiala
478eea8992
feat(tools): Update ccache 4.10.2 -> 4.11.2
...
Closes https://github.com/espressif/idf-installer/issues/305
2025-05-13 15:07:51 +08:00
Marek Fiala
995c0777f8
Merge branch 'fix/failing_custom_cmake_host_win' into 'master'
...
fix(Tools): failing test_build_custom_cmake_project (Win, MacOS runners)
Closes IDF-12682
See merge request espressif/esp-idf!37932
2025-04-16 16:01:23 +08:00
Marek Fiala
1507ec7466
fix(test): Proper cleanup after build_custom_cmake pytest
...
The test create build folder in current directory which
in this case is defined by (test_app_copy).
It also creates sdkconfig file in cmake source directory, which
is defined as $IDF_PATH/examples/build_system/cmake/idf_as_lib
The fixtures ensures proper cleanup even when test fails.
2025-04-15 15:09:27 +02:00
Marek Fiala
58b3c60f59
fix(tools): Update ruff-format changes
2025-04-15 15:09:27 +02:00
Marek Fiala
c288935305
ci(tools): Run Win build system tests when patterns-build_system changed
2025-04-15 15:09:27 +02:00
Marek Fiala
87a118361f
test(tools): skip custom cmake project test for host on Win
2025-04-15 15:09:27 +02:00
Marek Fiala
1469ee767f
feat(tools): Remove PATH duplicity from first call of tools/activate.py
2025-03-13 14:44:52 +01:00
Marek Fiala
5e7e9dd667
feat(tools): Deactivate current ESP-IDF environment with every export run
...
Unix systems only
2025-03-13 14:44:52 +01:00
Marek Fiala
a09fdf2f3e
feat(tools): Safer clearing IDF_PYTHON_ENV_PATH if existing
2025-03-13 17:14:01 +08:00
Marek Fiala
2c814ef2fa
feat(tools): Enforce utf-8 encoding with open() function
2024-12-27 17:12:21 +08:00
Marek Fiala
bfaceabefb
fix(tools): Use ESP_PYTHON with activate.py in export.fish
...
Closes https://github.com/espressif/esp-idf/issues/15058
2024-12-19 15:05:45 +01:00
Marek Fiala
dd31a41303
fix(tools): Enable to use IDF_PATH with export.sh
2024-12-18 13:38:47 +01:00
Marek Fiala
5930a422d7
fix(tools): Fixed timeout and path bug for test_cli_installer_win
2024-12-16 14:55:16 +01:00
Marek Fiala
0b78083595
fix(tools): fixed test_create_project_with_idf_readonly on Win
2024-12-16 14:55:15 +01:00
Marek Fiala
d7d1cc7c23
fix(tools): IDF_PATH_OLD not found in PowerShell
2024-11-26 12:40:46 +01:00
Marek Fiala
cad15b50c4
feat(tools): Inform user about IDF_PATH set/change in install/export scripts
2024-11-25 15:56:16 +08:00
Marek Fiala
d7d8828824
docs(tools): Mention idf_version.txt and ESP_IDF_VERSION in documentation
2024-11-11 16:08:47 +01:00
Marek Fiala
26002e13fc
feat(tools): Imporve activate.py debug information
2024-11-05 13:53:00 +01:00
Marek Fiala
7de166e882
fix(tools): Enable multiuser/multiinstance use of activate script
2024-10-21 16:23:55 +02:00
Marek Fiala
6ec1e9107f
feat(tools): Move sample_project from examples to tools
...
Extended example readme.md by further development options.
2024-09-16 09:12:50 +02:00
Marek Fiala
f90b847cb1
Merge branch 'fix/correct_shell_detection' into 'master'
...
fix(tools): Corrected detect_shell
See merge request espressif/esp-idf!33365
2024-09-06 19:22:15 +08:00
Marek Fiala
24ae042bba
fix(tools): Corrected detect_shell
...
When comparing process name with python,
lowercase the process name in condition.
2024-09-06 11:11:50 +02:00
Marek Fiala
7b417fc3f2
feat(tools): Add backup option to use legacy export script
...
This feature serves as an immediate fix in case
the new export approach causes issues.
The user can simply set the environment variable `ESP_IDF_LEGACY_EXPORT`,
and the old export script will be used.
2024-09-05 10:13:05 +02:00
Marek Fiala
88527faff8
feat(tools): Added Windows shells support + refactoring
2024-09-05 10:13:04 +02:00
Marek Fiala
ccf5989505
feat(tools): Exclude modified folders by rebuild
2024-09-04 12:48:15 +02:00
Marek Fiala
f0ca91b103
feat(tools): Update tools: cmake, ninja, ccache
...
cmake v3.24.0 -> v3.30.2
ninja v1.11.1 -> v1.12.1
ccache v4.8 -> v4.10.2
Closes https://github.com/espressif/esp-idf/pull/14376
2024-09-04 12:48:14 +02:00
Marek Fiala
46efcd09c7
Merge branch 'fix/ci_win_kconfig' into 'master'
...
fix(Tools): failing Win CI tests
Closes IDF-10514 and IDF-10764
See merge request espressif/esp-idf!32446
2024-08-22 00:28:48 +08:00
Marek Fiala
364f777f96
feat(tools): Allow test_spaces_bundle4 to fail on Win
2024-08-21 14:37:06 +02:00
Marek Fiala
e95aff7ca9
feat(tools): sanitize all fixtures using test names
...
The parametrization include `[` and `]` in names. This is not
possible to use within path. Expand the sanitization into all
fixtures using request.node.name.
2024-08-21 14:37:06 +02:00
Marek Fiala
ccbb415be8
feat(tools): add pytest mark idf_copy_with_space
2024-08-21 14:37:05 +02:00
Marek Fiala
f0e8966ca5
feat(tools): Use custom directory in failing pytest
2024-08-21 14:37:05 +02:00
Marek Fiala
55112978fd
feat(tools): json schema verifies that no additional properties are used
...
Closes https://github.com/espressif/esp-idf/issues/13853
Closes https://github.com/espressif/esp-idf/pull/13854
2024-05-27 16:24:56 +02:00
Marek Fiala
e351a4407a
fix(tools): fix failing create readonly project build system test
...
Changed the way of removing copied esp-idf folder.
2024-04-30 16:42:05 +02:00
Marek Fiala
f2b75d81b3
fix(system): fix idf.py build ulp examples containing spaces in path on Win
2024-04-09 14:00:34 +02:00
Marek Fiala
c21cdf0a1f
feat(tools): produce correct err code in export/install .bat scripts
...
Plus unify labels to begin with underscore
2024-03-01 13:00:09 +01:00
Marek Fiala
54be450c4a
feat(tools): detect linux platform only on linux systems
...
Closes https://github.com/espressif/esp-idf/issues/13148
2024-02-22 19:30:11 +08:00
Marek Fiala
da43126f02
feat(tools): idf_tools.py unsupported platforms
...
Plus improved error messages about platform detection.
Closes https://github.com/espressif/esp-idf/issues/12959
Closes https://github.com/espressif/esp-idf/issues/12865
2024-02-22 19:30:11 +08:00
Marek Fiala
65db8bf7a9
refactor(tools): Split build pytest into multiple jobs
2024-02-08 13:49:28 +01:00
Marek Fiala
52da5b765f
feat(tools): Run skipped build system pytests on Win
2024-02-08 11:23:51 +01:00
Marek Fiala
375c22ecdb
feat(tools): Update Windows runners tags
2024-02-02 15:04:40 +01:00
Marek Fiala
a97e355e74
feat(tools): Run Tools related host tests on Win
2024-02-02 14:58:04 +01:00
Marek Fiala
c8e218c0ae
docs(tools): Add example and resctriction note to setting IDF_TOOLS_PATH
...
Closes https://github.com/espressif/esp-idf/issues/12539
2023-12-15 11:50:38 +00:00