mcp-svd
Allows querying official ARM CMSIS SVD hardware register definitions to retrieve precise register names, bit positions, and addresses for supported microcontrollers.
Provides access to the Raspberry Pi RP2040's hardware register definitions through bundled SVD files, enabling detailed searches for its peripherals and registers.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-svd Look up the bitfields for the GPIOA MODER register in svd/STM32F411.svd"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-svd
An MCP (Model Context Protocol) server that exposes ARM CMSIS SVD hardware register definitions to AI coding assistants. Instead of hallucinating register names, bit positions, and addresses, your AI assistant can query the exact definitions straight from the official SVD file for your microcontroller.
Install
From GitHub (no npm needed):
npm install github:pkt-lab/mcp-svdOr clone and build manually:
git clone https://github.com/pkt-lab/mcp-svd
cd mcp-svd
npm install && npm run buildRelated MCP server: JLink MCP Server
Claude Desktop configuration
If installed via npm (GitHub):
{
"mcpServers": {
"mcp-svd": {
"command": "node",
"args": ["./node_modules/mcp-svd/dist/index.js"]
}
}
}If cloned locally:
{
"mcpServers": {
"mcp-svd": {
"command": "node",
"args": ["/absolute/path/to/mcp-svd/dist/index.js"]
}
}
}Config file location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Restart Claude Desktop after editing.
MCP tools
list_peripherals
{ "svd_file": "svd/STM32F411.svd" }lookup_register
{ "svd_file": "svd/STM32F411.svd", "peripheral": "USART1", "register": "CR1" }describe_field
{ "svd_file": "svd/STM32F411.svd", "peripheral": "GPIOA", "register": "MODER", "field": "MODE0" }search_registers
{ "svd_file": "svd/rp2040.svd", "query": "uart" }Returns up to 10 peripheral+register matches (case-insensitive substring).
REST API
REST_PORT=3000 node dist/index.js
# List peripherals
curl "http://localhost:3000/api/v1/peripherals?svd=svd/STM32F411.svd"
# List registers
curl "http://localhost:3000/api/v1/registers/GPIOA?svd=svd/STM32F411.svd"
# Describe a field
curl "http://localhost:3000/api/v1/field/GPIOA/MODER/MODE0?svd=svd/STM32F411.svd"Using your own SVD file
Download from cmsis-svd-data or your chip vendor, then pass the path:
{ "svd_file": "/path/to/your/device.svd", "peripheral": "SPI0", "register": "CR" }Bundled SVD files
File | Device |
| STM32F411 |
| Nordic nRF52840 |
| Raspberry Pi RP2040 |
License
MIT
Available Tools
4 toolsdescribe_fieldA
Describe a specific bit-field within a register: its bit offset, width, access type, and enumerated values if defined. Use this when you need to understand or set a specific control bit or flag.
Inputs: svd_file (required), peripheral (required), register (required), field (required).
list_peripheralsA
List all peripherals defined in an ARM CMSIS SVD file. Returns each peripheral's name, base address, and description. Use this to discover what hardware blocks are available in a microcontroller.
Inputs: svd_file (required).
lookup_registerA
Get full details for a specific register within a peripheral, including address offset, size, access type, reset value, and all bit-fields with their positions. Use this when you need exact register layout for low-level firmware code.
Inputs: svd_file (required), peripheral (required), register (required).
search_registersA
Search across all peripherals and registers in an SVD file using a case-insensitive substring match. Returns up to 10 matches with peripheral name, register name, and description. Use this when you know part of a register name but not which peripheral it belongs to.
Inputs: svd_file (required), query (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose with no overlap: list_peripherals discovers hardware blocks, lookup_register provides detailed register layout, describe_field focuses on specific bit-fields, and search_registers enables substring matching. The descriptions explicitly differentiate use cases, eliminating any ambiguity.
All tool names follow a consistent verb_noun pattern (describe_field, list_peripherals, lookup_register, search_registers) using snake_case throughout. The verbs (describe, list, lookup, search) are distinct and semantically appropriate, creating a predictable and readable naming convention.
With 4 tools, the server is well-scoped for exploring ARM CMSIS SVD files, covering discovery (list_peripherals, search_registers) and detailed inspection (lookup_register, describe_field). Each tool earns its place without redundancy, making the set concise yet complete for the domain.
The tool surface provides complete coverage for navigating and understanding SVD files: from high-level peripheral listing to low-level bit-field details, with search functionality to bridge gaps. There are no obvious missing operations, enabling agents to perform all typical workflows without dead ends.
Maintenance
Related MCP Connectors
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
MCP server that lets your AI assistant build and deploy apps, hosting each one at a live URL.
Zero-log MCP server with 49 tools for AI guardrails, secret scanning, MCP linting & EU compliance.
491An MCP server that gives your AI access to the source code and docs of all public github repos
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that provides semantic search and documentation for STM32 microcontrollers, with specialized agents and slash commands for embedded development assistance.11MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides comprehensive debugging capabilities for J-Link debuggers, enabling memory, flash, register, and RTT operations through AI assistants.24 PyPI42MIT
- AlicenseCqualityCmaintenanceMCP server for AI-assisted MCU and embedded firmware debugging. It connects to real hardware via debug probes, inspects CPU/memory/peripherals, manages Keil builds, and provides structured evidence for fault diagnosis.1957 PyPI10MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that lets AI coding agents drive the full STM32 development loop—code generation, build, flash, debug, serial monitoring, and fault diagnosis—end to end via CubeIDE, CubeMX, CubeProgrammer, OpenOCD, and GDB.1MIT