Skip to main content

ESP-IDF Documentation Explorer MCP Server

A Model Context Protocol (MCP) server for exploring ESP-IDF documentation online. This server fetches content directly from the official ESP-IDF documentation website, ensuring you always have access to the latest information. This implementation is inspired by the AWS Documentation MCP Server.

Features

  • Online Search: Search ESP-IDF documentation directly from the official website
  • Real-time Content: Always access the latest documentation without local setup
  • Multi-version Support: Choose ESP-IDF version (latest or specific versions)
  • API Reference Search: Find API references for ESP-IDF components
  • Smart Caching: Intelligent caching for improved performance

Usage in MCP Clients

Add the following to your MCP client configuration (e.g., Claude Desktop):

{
  "mcpServers": {
    "esp-idf-docs": {
      "command": "uvx",
      "args": ["esp-idf-docs-mcp"],
      "env": {
        "ESP_IDF_VERSION": "latest",
        "ESP_IDF_CHIP_TARGET": "esp32s3"
      }
    }
  }
}

Development Installation

# Clone and install for development
git clone https://github.com/raihalea/esp-idf-docs.git
cd esp-idf-docs

# Install dependencies only
uv sync

# Install with development dependencies
uv sync --dev

Available Tools

search_docs

Search ESP-IDF documentation for keywords (case-insensitive).

Parameters:

  • query (string): Search query

get_doc_structure

Get the directory structure of ESP-IDF documentation.

Parameters: None

read_doc

Read the contents of a specific documentation file.

Parameters:

  • file_path (string): Relative path to the documentation file

find_api_references

Find API references for a specific ESP-IDF component.

Parameters:

  • component (string): Component or API name to search for

Environment Variables

ESP_IDF_VERSION

ESP-IDF documentation version to use (defaults to "latest").

Available versions:

  • latest - Latest stable version
  • v5.1 - ESP-IDF v5.1
  • v5.0 - ESP-IDF v5.0
  • v4.4 - ESP-IDF v4.4
  • etc.

Setting the environment variable:

# Linux/macOS
export ESP_IDF_VERSION="v5.1"

# Windows Command Prompt
set ESP_IDF_VERSION=v5.1

# Windows PowerShell
$env:ESP_IDF_VERSION="v5.1"

ESP_IDF_BASE_URL

Base URL for ESP-IDF documentation (defaults to official site).

export ESP_IDF_BASE_URL="https://docs.espressif.com/projects/esp-idf"

Usage examples:

# Run with specific version (PyPI)
ESP_IDF_VERSION="v5.1" uvx esp-idf-docs-mcp

# Run with latest (default)
uvx esp-idf-docs-mcp

Testing

Run the test suite:

# Install development dependencies
uv sync --dev

# Run all tests
uv run pytest

# Run tests with verbose output
uv run pytest -v

# Run specific test file
uv run pytest tests/test_minimal.py -v

# Run tests with coverage (if coverage is installed)
uv run pytest --cov=src/esp_idf_docs_mcp

# Search document
ESP_IDF_CHIP_TARGET=esp32s3 ESP_IDF_VERSION=latest uv run python test_search.py bluetooth

Test Categories

  • Basic Tests (test_minimal.py): Core functionality and imports
  • Implementation Tests (test_fixed.py): Actual implementation validation
  • Comprehensive Tests (test_comprehensive.py): Error handling, security, performance, and robustness
  • Integration Tests (test_explorer_integration.py): End-to-end ESPIDFDocsExplorer testing

Development

Code Quality

This project uses ruff for linting and formatting:

# Install development dependencies
uv sync --dev

# Run linter
uv run ruff check src/ tests/

# Auto-fix linting issues
uv run ruff check src/ tests/ --fix

# Format code
uv run ruff format src/ tests/

# Check formatting
uv run ruff format --check src/ tests/

Development Workflow

Common development commands:

# Setup development environment
uv sync --dev

# Run all quality checks
uv run ruff check src/ tests/ && uv run ruff format src/ tests/ && uv run pytest && uv run mypy src/ --ignore-missing-imports

# Run individual checks
uv run ruff check src/ tests/              # Linting
uv run ruff check src/ tests/ --fix        # Auto-fix linting
uv run ruff format src/ tests/             # Format code
uv run pytest                              # Run tests
uv run mypy src/ --ignore-missing-imports  # Type checking

Metadata

Release files for esp-idf-docs-mcp 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for esp-idf-docs-mcp 0.1.5
File Size Uploaded
esp_idf_docs_mcp-0.1.5.tar.gz 61.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for esp-idf-docs-mcp 0.1.5
File Interpreter ABI Platform
esp_idf_docs_mcp-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 84.5 kB

Release files / esp_idf_docs_mcp-0.1.5.tar.gz

Download URL esp_idf_docs_mcp-0.1.5.tar.gz
Size 61.6 kB
Tags Source
SHA-256 checksum
How to use checksums
1e9b597e5638a7f47fb5249c1f91a694b968e09948ad2c541fd636b45545bee2
BLAKE2b-256 checksum
How to use checksums
d7c0935a663e8a8be3bb7179afccb58f92c4857df3980139e03a3af658b6d00f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 14, 2025.

Transparency log

Release files / esp_idf_docs_mcp-0.1.5-py3-none-any.whl

Download URL esp_idf_docs_mcp-0.1.5-py3-none-any.whl
Size 22.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd21221a9448f1a109a9b12c3f137d828fae491578a5f7352180741bc612779e
BLAKE2b-256 checksum
How to use checksums
37d5646a502a66539cc5201990de844153174481069269452b8aad9d64d70264
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 14, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page