stm32-mcp-docs

stm32-mcp-docs

MCP server that provides semantic search and documentation for STM32 microcontrollers, with specialized agents and slash commands for embedded development assistance.

Category
访问服务器

README

STM32 MCP Documentation Server

License: MIT Python 3.11+ MCP Protocol

An MCP (Model Context Protocol) server that provides semantic search over STM32 microcontroller documentation for use with Claude Code and other AI assistants. Features intelligent document chunking, ChromaDB vector storage, and 16 specialized agents for different embedded development domains.

Features

  • One-Command Install: Install as a Claude Code plugin with one command
  • Auto-Setup: MCP server, agents, and commands auto-configured on install
  • Semantic Search: Find relevant documentation using natural language queries
  • Peripheral-Specific Search: Filter results by STM32 peripheral (GPIO, UART, SPI, etc.)
  • Code Examples: Retrieve working code examples for any topic
  • HAL Function Lookup: Get documentation for specific STM32 HAL/LL library functions
  • 16 Specialized Agents: Domain-specific agents for firmware, debugging, power, security, and more
  • 4 Slash Commands: Quick access via /stm32, /stm32-hal, /stm32-init, /stm32-debug
  • No Hardcoded Paths: Fully portable installation

Quick Start

Plugin Installation (Recommended)

# Install the STM32 plugin
/plugin install github:creativec09/stm32

This single command installs:

  • MCP Server: Auto-configured via mcp-config.json
  • 16 Agents: Available immediately for specialized STM32 assistance
  • 4 Slash Commands: /stm32, /stm32-hal, /stm32-init, /stm32-debug

Alternative: Manual MCP Installation

If you prefer not to use the plugin system, you can install just the MCP server.

Ubuntu 24 / WSL / Linux (auto-installs uv if needed):

claude mcp add-json stm32-docs --scope user '{"command":"bash","args":["-c","export PATH=\"$HOME/.local/bin:$PATH\" && (command -v uvx >/dev/null 2>&1 || curl -LsSf https://astral.sh/uv/install.sh | sh -s -- -q) && uvx --from git+https://github.com/creativec09/stm32.git stm32-mcp-docs"]}'

If you already have uv installed:

claude mcp add stm32-docs --scope user -- uvx --from git+https://github.com/creativec09/stm32.git stm32-mcp-docs

Note: For private repositories, include a GitHub Personal Access Token with repo scope in the URL: git+https://TOKEN@github.com/...

Start Using

After installation, restart Claude Code and use slash commands:

/stm32 How do I configure UART with DMA?
/stm32-init SPI master mode at 10MHz
/stm32-hal HAL_GPIO_Init parameters
/stm32-debug UART not receiving data

Or ask naturally:

"Show me how to configure GPIO interrupts on STM32H7"
"Why is my I2C peripheral returning HAL_TIMEOUT?"

Table of Contents

Installation

Prerequisites

  • Python 3.11 or higher (pre-installed on Ubuntu 24)
  • curl (pre-installed on Ubuntu 24)
  • Claude Code CLI

Note: uv is automatically installed on first use if not present.

Method 1: Plugin Installation (Recommended)

/plugin install github:creativec09/stm32

This installs everything automatically:

  • MCP server configuration
  • 16 specialized agents
  • 4 slash commands

Method 2: Manual MCP + pip Installation

# Install the package
pip install git+https://github.com/creativec09/stm32.git

# Register with Claude Code
claude mcp add stm32-docs --scope user -- python -m mcp_server

Method 3: Development Installation

# Clone the repository
git clone https://github.com/creativec09/stm32.git
cd stm32-agents

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # Linux/macOS
# .venv\Scripts\activate   # Windows

# Install in development mode
pip install -e ".[dev]"

# Register with Claude Code
claude mcp add stm32-docs --scope user -- python -m mcp_server

MCP Tools

The server provides 15+ tools for STM32 documentation:

Tool Description
search_stm32_docs Semantic search across all documentation
get_peripheral_docs Get documentation for a specific peripheral
get_code_examples Find code examples for a topic
get_register_info Get detailed register documentation
lookup_hal_function Look up HAL/LL function documentation
troubleshoot_error Find solutions to errors and issues
get_init_sequence Get peripheral initialization code
get_clock_config Clock tree configuration examples
compare_peripheral_options Compare peripheral features
get_migration_guide Migration guides between STM32 families
get_interrupt_code Interrupt handling examples
get_dma_code DMA configuration examples
get_low_power_code Low power mode configuration
get_callback_code HAL callback examples
get_init_template Complete initialization templates
list_peripherals List available peripherals

MCP Resources

Resource URI Description
stm32://status Server status and statistics
stm32://health Health check
stm32://peripherals List documented peripherals
stm32://stats Database statistics

Specialized Agents

16 domain-specific agents are included in the plugin:

Agent Domain Key Topics
router Triage Query classification, routing
triage Triage Initial query analysis
firmware Core Development General firmware questions
firmware-core Core Development HAL/LL, timers, DMA, interrupts, NVIC, RCC
debug Debugging HardFault analysis, SWD, trace
bootloader Updates Bootloader development
bootloader-programming Updates IAP, DFU, system bootloader
peripheral-comm Communication UART, SPI, I2C, CAN, USB, Ethernet
peripheral-analog Analog ADC, DAC, OPAMP, comparators, sensors
peripheral-graphics Display LTDC, DMA2D, DCMI, TouchGFX
power Power General power optimization
power-management Power Sleep, Stop, Standby, battery
safety Certification Safety-critical development
safety-certification Certification IEC 61508, ISO 26262, Class B
security Security Secure boot, TrustZone, crypto, RNG
hardware-design PCB/Hardware EMC, thermal, oscillators, layout

See docs/AGENT_QUICK_REFERENCE.md for detailed agent capabilities.

Usage

Slash Commands

/stm32 <query>           - General STM32 documentation search
/stm32-init <peripheral> - Get initialization code for a peripheral
/stm32-hal <function>    - Look up HAL function documentation
/stm32-debug <issue>     - Troubleshoot an STM32 issue

Natural Language Queries

Agents automatically search documentation:

"Show me how to configure GPIO interrupts on STM32H7"
"Why is my I2C peripheral returning HAL_TIMEOUT?"
"How to enter Stop mode and wake up on UART?"

Network Mode (Tailscale)

For accessing from multiple machines:

# Start server in network mode
STM32_SERVER_MODE=network python -m mcp_server --port 8765

# On client machines
claude mcp add stm32-docs --scope user --type sse --url "http://YOUR_TAILSCALE_IP:8765/sse"

Configuration

Configuration via environment variables:

STM32_SERVER_MODE=local          # local, network
STM32_HOST=0.0.0.0               # Host to bind (network mode)
STM32_PORT=8765                  # Port (network mode)
STM32_COLLECTION_NAME=stm32_docs # ChromaDB collection name
STM32_EMBEDDING_MODEL=all-MiniLM-L6-v2
STM32_LOG_LEVEL=INFO

Project Structure

stm32-agents/
├── .claude-plugin/          # Plugin manifest
│   └── plugin.json          # Plugin configuration
├── agents/                  # Agent definitions (16 agents)
├── commands/                # Slash command definitions
├── mcp-config.json          # MCP server configuration
├── mcp_server/              # MCP server implementation
│   ├── server.py            # Main server with tools/resources
│   ├── __main__.py          # Module entry point
│   ├── config.py            # Configuration management
│   ├── markdowns/           # Bundled STM32 documentation (80 files)
│   └── agents/              # Bundled agent definitions
├── pipeline/                # Document processing pipeline
├── storage/                 # Vector storage layer
├── scripts/                 # CLI utilities
├── tests/                   # Test suite
└── docs/                    # Comprehensive documentation

Development

Setup Development Environment

git clone https://github.com/creativec09/stm32.git
cd stm32-agents
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Running Tests

pytest tests/
pytest tests/ --cov=mcp_server --cov=pipeline --cov=storage

Code Quality

black .
isort .
ruff check .
mypy mcp_server pipeline storage

System Requirements

Requirement Minimum Recommended
Python 3.11 3.12
RAM 4GB 8GB
Disk Space 1GB 2GB
OS Linux, macOS, Windows (WSL2) Linux

Performance Characteristics

Metric Value
First Run 5-10 minutes (builds database)
Subsequent Starts <5 seconds
Query Response <100ms (warm)
Database Size ~500MB
Total Chunks 13,815
Documentation Files 80

Troubleshooting

"No documentation found"

Database may not have built yet. Wait for auto-ingestion on first run, or:

python scripts/ingest_docs.py --clear

Slow first request

First request takes 5-10 minutes due to:

  1. Loading embedding model
  2. Building vector database from 80 documents

Subsequent requests are fast (<100ms).

Server won't start

# Verify registration
claude mcp list

# Check server status
claude mcp status stm32-docs

# If uv issues, reinstall manually:
curl -LsSf https://astral.sh/uv/install.sh | sh

For more troubleshooting help, see docs/GETTING_STARTED.md.

Uninstall

Using Plugin System (Recommended)

If you installed via plugin:

# Remove the plugin (removes agents, commands, MCP config)
/plugin uninstall stm32-agents

# Clean up database (optional)
stm32-uninstall

Manual Uninstall

If you installed manually:

# Step 1: Remove MCP server configuration
claude mcp remove stm32-docs --scope user

# Step 2: Clean up database
stm32-uninstall

Uninstall Options

stm32-uninstall --dry-run   # Preview what will be removed
stm32-uninstall --yes       # Skip confirmation prompt

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Built with:

Support

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选