wattsonic-modbus-docs
Read-only Model Context Protocol server with the Modbus documentation of the Wattsonic MATIC hybrid inverter (ARM firmware M013V1130B01D05 or later), the same content as https://modbus.wattsonic.com/:
- the native EMS register map (10000-19800) with integration fields (write function, effective conditions, read-back registers, persistence),
- the SunSpec model chain (40000-40478: models 1, 123, 124, 103, 203, 120, 121, 122, 160) in the SunSpec JSON layout,
- closed-loop control recipes (EMS session with watchdog and heartbeat, active-power setpoint, power limit, reactive power, Eco schedule, SunSpec gate, SunSpec limit, forced charge/discharge, recovery, emergency stop),
- both reference pages as Markdown.
Safety
Documentation only. The server has no Modbus client, opens no network connection and never connects to an
inverter. validate_write checks a planned write against the documentation and returns guidance; it does not write.
generate_client_code returns source code as text; that code writes to a real inverter when you run it, so review
it first.
Tools
| Tool | Purpose |
|---|---|
search_registers(query, interface?) |
Find registers by address, name, SunSpec point or words |
get_register(address) |
Full record of a native register or SunSpec point |
list_sunspec_models() |
Model chain, addresses, lengths, writable points, conventions |
get_sunspec_point(model, point) |
One SunSpec point with device notes, writable range, scale factor |
list_recipes() / get_recipe(task) |
Closed-loop control recipes |
validate_write(address, value, function_code) |
Access, range, scale, 0x06-only rule, preconditions, read-back |
generate_client_code(recipe_id, language, transport="tcp") |
Python (pymodbus), Node.js (modbus-serial), C# (NModbus), Go (goburrow/modbus) |
get_doc_section(page, section) |
One section of the documentation as Markdown |
Resources: wattsonic://docs/native.md, wattsonic://docs/sunspec.md, wattsonic://docs/llms.txt,
wattsonic://docs/registers.v1130.json, wattsonic://docs/sunspec-models.v1130.json,
wattsonic://docs/recipes.v1130.json, wattsonic://docs/VERSION.json.
Prompt: integrate-matic-ems (goal, interface).
Data version: VERSION.json (<firmware>+<build date>, e.g. M013V1130B01D05+2026-10-23).
Install and configure
Requires uv. Run directly:
uvx wattsonic-modbus-docs
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"wattsonic-modbus-docs": { "command": "uvx", "args": ["wattsonic-modbus-docs"] }
}
}
Claude Code:
claude mcp add wattsonic-modbus-docs -- uvx wattsonic-modbus-docs
Cursor (.cursor/mcp.json or ~/.cursor/mcp.json):
{
"mcpServers": {
"wattsonic-modbus-docs": { "command": "uvx", "args": ["wattsonic-modbus-docs"] }
}
}
Development
uv venv .venv && uv pip install --python .venv/bin/python -e ".[test]"
.venv/bin/python -m pytest -q
License
Code: Apache License 2.0. Documentation data: CC BY 4.0. See NOTICE for trademarks.
Metadata
Release files for wattsonic-modbus-docs 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| wattsonic_modbus_docs-0.1.1.tar.gz | 125.9 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wattsonic_modbus_docs-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 257.0 kB
Release files / wattsonic_modbus_docs-0.1.1.tar.gz
| Download URL | wattsonic_modbus_docs-0.1.1.tar.gz |
|---|---|
| Size | 125.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1871aefcd7692bc98730e7bdb5170bb5223961aa0e7db1e9d569853579c4e6ec
|
|
BLAKE2b-256 checksum How to use checksums |
87ddef84b2d55601cc92e7837bbe690c1c086eeb4dbcc7ed1c2fd09307914c36
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 23, 2026.
Transparency logRelease files / wattsonic_modbus_docs-0.1.1-py3-none-any.whl
| Download URL | wattsonic_modbus_docs-0.1.1-py3-none-any.whl |
|---|---|
| Size | 131.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a1010720bf5870d9dbe1faf8f8a2e68bdc0c0e5b3a405820ad6e16c162f781fd
|
|
BLAKE2b-256 checksum How to use checksums |
401726d5e6c276668dcb709342c73d61fe4213981af5ed6a52b27003530e1400
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 23, 2026.
Transparency logSecurity for wattsonic-modbus-docs 0.1.1
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for wattsonic_modbus_docs-0.1.1.tar.gz
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 Oct 23, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.