Skip to content

Server Tools

The server exposes 3 meta-tools for inspecting the running mcesptool instance: server information, tool discovery, and environment health checks. These tools do not interact with hardware and are always available.


Get comprehensive information about the running server including version, uptime, loaded components, tool count, and available capabilities.

This tool takes no parameters.

result = await client.call_tool("esp_server_info", {})
{
"server_name": "MCP ESPTool Server",
"version": "2026.02.23",
"uptime_seconds": 1234.56,
"configuration": {
"esptool_path": "esptool",
"esp_idf_path": "/home/user/esp/esp-idf",
"project_roots": ["/home/user/esp_projects"],
"default_baud_rate": 460800,
"connection_timeout": 30,
"enable_stub_flasher": true,
"max_concurrent_operations": 5,
"production_mode": false,
"idf_available": true,
"qemu_available": true,
"qemu_xtensa_path": "/home/user/.espressif/tools/qemu-xtensa/.../qemu-system-xtensa",
"qemu_riscv_path": "/home/user/.espressif/tools/qemu-riscv32/.../qemu-system-riscv32"
},
"components": [
"chip_control", "flash_manager", "partition_manager",
"security_manager", "firmware_builder", "ota_manager",
"production_tools", "diagnostics", "qemu_manager"
],
"total_tools": 44,
"total_resources": 3,
"esp_idf_available": true,
"production_mode": false,
"capabilities": {
"chip_detection": true,
"flash_operations": true,
"partition_management": true,
"security_features": true,
"ota_updates": true,
"factory_programming": true,
"host_applications": true,
"qemu_emulation": true
}
}
CapabilityWhen available
chip_detectionAlways
flash_operationsAlways
partition_managementAlways
security_featuresAlways
ota_updatesAlways
factory_programmingAlways
host_applicationsWhen ESP-IDF is detected
qemu_emulationWhen QEMU binaries are detected

List all available MCP tools, optionally filtered by component category. Useful for tool discovery and documentation generation.

NameTypeDefaultDescription
categorystr | NoneNoneFilter by category name. Returns all categories if omitted.
CategoryTools
chip_controlesp_detect_chip, esp_connect_advanced, esp_reset_chip, esp_load_test_firmware
flash_operationsesp_flash_firmware, esp_flash_read, esp_flash_erase, esp_flash_backup
partition_managementesp_partition_create_ota, esp_partition_custom, esp_partition_analyze
securityesp_security_audit, esp_enable_flash_encryption, esp_efuse_read, esp_efuse_burn
firmwareesp_elf_to_binary, esp_firmware_analyze
otaesp_ota_package_create, esp_ota_deploy, esp_ota_rollback
productionesp_factory_program, esp_batch_program, esp_quality_control
diagnosticsesp_memory_dump, esp_performance_profile, esp_diagnostic_report
qemu_emulationesp_qemu_start, esp_qemu_stop, esp_qemu_list, esp_qemu_status, esp_qemu_flash

The qemu_emulation category is only present when QEMU binaries are available. If ESP-IDF is detected, an additional esp_idf category appears with IDF-specific tools.

# List all categories
result = await client.call_tool("esp_list_tools", {})
# List tools in a specific category
result = await client.call_tool("esp_list_tools", {
"category": "flash_operations"
})

All categories:

{
"total_categories": 9,
"categories": {
"chip_control": ["esp_detect_chip", "esp_connect_advanced", "..."],
"flash_operations": ["esp_flash_firmware", "esp_flash_read", "..."],
"...": "..."
},
"total_tools": 44
}

Filtered by category:

{
"category": "flash_operations",
"tools": ["esp_flash_firmware", "esp_flash_read", "esp_flash_erase", "esp_flash_backup"]
}

Unknown category:

{
"error": "Unknown category: nonexistent",
"available_categories": ["chip_control", "flash_operations", "..."]
}

Perform an environment health check. Verifies esptool availability, ESP-IDF installation, and project directory accessibility. With detailed: true, also checks the health of each loaded component.

NameTypeDefaultDescription
detailedboolFalseInclude per-component health checks.
result = await client.call_tool("esp_health_check", {
"detailed": True
})
{
"status": "healthy",
"timestamp": 1708732800.0,
"checks": {
"esptool": {
"available": true,
"version": "esptool.py v4.8"
},
"esp_idf": {
"available": true,
"path": "/home/user/esp/esp-idf"
},
"project_roots": {
"configured": 2,
"accessible": 2
}
},
"components": {
"chip_control": {"status": "healthy", "esptool_path": "esptool"},
"flash_manager": {"status": "healthy", "note": "Flash manager ready"},
"partition_manager": {"status": "healthy", "note": "Partition manager ready"},
"security_manager": {"status": "healthy", "note": "Security manager ready"},
"firmware_builder": {"status": "healthy", "note": "Firmware builder ready"},
"ota_manager": {"status": "healthy", "note": "OTA manager ready"},
"production_tools": {"status": "healthy", "note": "Production tools ready"},
"diagnostics": {"status": "healthy", "note": "Diagnostics ready"},
"qemu_manager": {
"status": "healthy",
"qemu_xtensa_available": true,
"qemu_riscv_available": true,
"running_instances": 0,
"max_instances": 4
}
}
}
StatusMeaning
healthyAll checks passed.
degradedSome non-critical checks failed (e.g., ESP-IDF not installed).

The components object is only present when detailed is True. The failed_checks array is only present when status is "degraded".