Hardware specification analyzer for embedded software development -- datasheets, register maps, protocols, constraints
Project description
SpecSwarm
Hardware specification analyzer for embedded software development. Part of the Swarm Suite.
SpecSwarm parses datasheets, reference manuals, and hardware documentation to extract structured data -- register maps, pin configurations, protocol parameters, timing constraints, power specifications, and memory layouts. It makes this information available to AI agents via MCP tools before any code exists.
Installation
pip install spec-swarm-ai
For PDF datasheet support:
pip install spec-swarm-ai[pdf]
Quick Start
As MCP Server
Add to your MCP client configuration:
{
"mcpServers": {
"spec-swarm": {
"command": "spec-swarm",
"args": ["serve", "--transport", "stdio"]
}
}
}
CLI Usage
# Start the MCP server
spec-swarm serve --transport stdio
# Ingest a datasheet
spec-swarm ingest path/to/STM32F407_datasheet.pdf --component STM32F407VG
# Check session status
spec-swarm status
MCP Tools
| Tool | Description |
|---|---|
spec_start_session |
Start a spec analysis session for a project |
spec_list_sessions |
List all spec analysis sessions |
spec_ingest |
Ingest a document and extract hardware specs |
spec_add_manual |
Manually add a hardware specification |
spec_get_registers |
Get register map for a component |
spec_get_pins |
Get pin configuration |
spec_get_protocols |
Get communication protocol configurations |
spec_get_timing |
Get timing constraints |
spec_get_memory_map |
Get memory map regions |
spec_get_constraints |
Get all hardware constraints |
spec_search |
Search specs by keyword |
spec_check_conflicts |
Check for pin collisions, bus conflicts, power budget violations |
spec_suggest_experts |
Suggest spec expert profiles for the project |
spec_export_for_arch |
Export specs as architectural constraints for ArchSwarm |
spec_get_summary |
Get summary of all specs in a session |
Supported Document Formats
- PDF (requires
pymupdf-- install withpip install spec-swarm-ai[pdf]) - Plain text (.txt)
- Markdown (.md)
- reStructuredText (.rst)
- CSV (.csv)
Expert Profiles
SpecSwarm includes 8 expert profiles for hardware specification analysis:
- MCU Peripherals -- GPIO, clock tree, interrupts, DMA
- Communication Protocols -- SPI, I2C, UART, CAN, USB, Ethernet
- Power Management -- voltage rails, current budgets, sleep modes
- Sensor Interfaces -- ADC, sampling, calibration, filtering
- Motor Control -- PWM, H-bridge, encoders, FOC
- Memory Layout -- flash/RAM partitioning, linker scripts, bootloader
- Timing Constraints -- deadlines, watchdog, jitter, clock drift
- Safety Requirements -- IEC 61508, redundancy, fail-safe design
Integration with Swarm Suite
SpecSwarm stores extracted specifications in swarm-kb, making them available to:
- ArchSwarm -- hardware constraints inform architecture decisions
- ReviewSwarm -- verify code against datasheet requirements
- FixSwarm -- apply hardware-aware fixes
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file spec_swarm_ai-0.2.1.tar.gz.
File metadata
- Download URL: spec_swarm_ai-0.2.1.tar.gz
- Upload date:
- Size: 42.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edf47a2d8d0f71672392858b766ea0f2b26bfce2960e4faeabc45b6e0658924e
|
|
| MD5 |
c405c8b35e52a0213b703eef273c27d3
|
|
| BLAKE2b-256 |
70cea56b247e40fb6f5f98facdfc9848f29a20c538aa24d14cd93bf85c70fb6a
|
File details
Details for the file spec_swarm_ai-0.2.1-py3-none-any.whl.
File metadata
- Download URL: spec_swarm_ai-0.2.1-py3-none-any.whl
- Upload date:
- Size: 45.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2ebd5808260a838622877cb708e88cf8b904387450a495463a7fefa58890e14
|
|
| MD5 |
362d5e708949726c77eb81fcbc7854fb
|
|
| BLAKE2b-256 |
ff6b7d81a592be9e7bb7c37d3baa9489b8213af54e3a02cc035df991b211375b
|