wattsonic-modbus-docs
OfficialUse this read-only MCP server to query Wattsonic MATIC Modbus documentation without ever connecting to an inverter.
Search native EMS and SunSpec registers by address, name, point, or keywords.
Get full documentation for a register or SunSpec point, including access, scale, ranges, write function, conditions, read-back, and persistence.
List the SunSpec model chain and inspect individual SunSpec points with device notes and writable ranges.
List and retrieve closed-loop control recipes for EMS sessions, power limits/setpoints, recovery, emergency stop, and SunSpec operations.
Validate planned writes against documented access, ranges, function-code rules, preconditions, side effects, and confirmation reads without writing.
Generate client code templates for recipes in Python, Node.js, C#, or Go, with a warning that generated code can write to live hardware.
Retrieve sections of the native or SunSpec documentation as Markdown.
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., "@wattsonic-modbus-docs validate writing 50 to the active power limit register"
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.
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.
Related MCP server: docs-mcp
Tools
Tool | Purpose |
| Find registers by address, name, SunSpec point or words |
| Full record of a native register or SunSpec point |
| Model chain, addresses, lengths, writable points, conventions |
| One SunSpec point with device notes, writable range, scale factor |
| Closed-loop control recipes |
| Access, range, scale, 0x06-only rule, preconditions, read-back |
| Python (pymodbus), Node.js (modbus-serial), C# (NModbus), Go (goburrow/modbus) |
| 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-docsClaude 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-docsCursor (.cursor/mcp.json or ~/.cursor/mcp.json):
{
"mcpServers": {
"wattsonic-modbus-docs": { "command": "uvx", "args": ["wattsonic-modbus-docs"] }
}
}Codex (CLI and IDE extension; ~/.codex/config.toml):
codex mcp add wattsonic-modbus-docs -- uvx wattsonic-modbus-docsor in ~/.codex/config.toml:
[mcp_servers.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 -qLicense
Code: Apache License 2.0. Documentation data: CC BY 4.0. See NOTICE for trademarks.
Available Tools
9 toolsgenerate_client_codeA
Generate a client program template for a recipe, using the libraries of the website examples: Python pymodbus (ModbusTcpClient), Node.js modbus-serial, C# NModbus, Go goburrow/modbus. The template checks the preconditions, performs the write sequence with the documented function codes, reads the confirmation registers and runs the keep-alive. Conditional steps are behind flags that default to off. The code writes to a live inverter when run: review it first. This server only returns text and never connects to a device.
Inputs: language (required), recipe_id (required), host, unit_id, +1 more.
get_doc_sectionA
Return one section of the published documentation as Markdown (from the heading to the next heading of the same level). If the heading is not found, returns the list of section headings. Documentation only; never touches a device.
Inputs: page (required), section (required).
get_recipeB
A closed-loop control recipe: preconditions (with read checks), ordered steps (op read/write, address, function code, raw value or value range, check), confirmation reads with expected values, failure and recovery, notes and the documentation sections it is based on. Values are raw register values; negative values are sent as 16-bit two's complement. Documentation only; never touches a device.
Inputs: task (required).
get_registerA
Full documentation of one register: name, description, type, scale/unit, access, documented range and values, and where documented: applies_from_firmware, write_function (0x06 only or 0x06/0x10), effective_when, confirm_by (registers to read back) and persistence (retained, volatile, volatile_over_tcp, command). For SunSpec addresses: model, point, size, sf with its constant value, writable range, device notes. Documentation only; never touches a device.
Inputs: address (required).
get_sunspec_pointB
One SunSpec point in the SunSpec model layout (name, type, size, sf, units, access, mandatory, symbols) with the device object: address, offset, implemented (yes/conditional/no), writable and write_range (raw), write_kind (control, stored_setting, fixed_value), sf_address and sf_value, and the device notes on how to read or write it precisely. Documentation only; never touches a device.
Inputs: model (required), point (required).
list_recipesA
List the closed-loop control recipes (id, title, interface, summary): EMS session with watchdog and heartbeat, active-power setpoint 11045, power limit 11320/11321, reactive power, Eco schedule, watchdog recovery, restart recovery, emergency stop, SunSpec gate, SunSpec active-power limit, SunSpec forced charge/discharge. Documentation only; never touches a device.
Inputs: no named parameters.
list_sunspec_modelsA
The device's SunSpec model chain: base address 40000 ('SunS'), each model with ID address, length, point count and writable points, the END marker, transport and data conventions (word order, scale factors, not-implemented values). Documentation only; never touches a device.
Inputs: no named parameters.
search_registersA
Search the documented registers of the Wattsonic MATIC inverter (native EMS map and SunSpec map).
Returns compact entries: address, name or SunSpec point, type, unit/scale or sf, access. Use get_register for the full record (value list, range, write function, effective conditions, read-back registers, persistence). Documentation only; never touches a device.
Inputs: query (required), limit, interface.
validate_writeA
Check a planned write against the documentation WITHOUT writing anything: access (read-only points are rejected), documented range, scale, single-register requirement (0x06 only for 11300-11303, 11320-11324, 11330, 11057, 11254, commands), SunSpec writable range, gate and veto preconditions, side effects (e.g. 0x5A5A on 12026) and the registers to read back afterwards. Returns verdict ok / ok_with_warnings / reject with reasons. Guidance only; this server never connects to a device and never writes registers.
Inputs: value (required), address (required), function_code, value_is_engineering.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Most tools have clearly distinct purposes: search vs full register lookup, SunSpec model vs point lookup, recipe list vs recipe detail, and validation vs code generation. The main possible confusion is between get_register and get_sunspec_point for SunSpec addresses, though their descriptions distinguish register-level and point-layout views.
All tools use snake_case with a predictable verb_noun pattern (search_registers, get_register, list_sunspec_models, get_sunspec_point, list_recipes, get_recipe, validate_write, generate_client_code, get_doc_section). The naming is internally consistent and readable.
Nine tools is well-scoped for a documentation/guidance server covering register lookup, SunSpec inspection, recipes, write validation, code generation, and documentation retrieval. Each tool appears to earn its place without excessive surface area.
The surface covers the main workflows: discovering registers, inspecting full records, navigating SunSpec models and points, listing and reading recipes, validating planned writes, generating client code, and retrieving documentation sections. Minor gaps exist, such as no dedicated recipe search/filtering or firmware-compatibility overview, but agents can likely work around them.
Maintenance
Related MCP Connectors
Versioned documentation registry and semantic search for AI tools and coding assistants.
Version-true web3 docs, ABIs and human-validated integration recipes over MCP.
Read-only HotAPI documentation: search integration guides and inspect OpenAPI operations.
Read-only MCP server over the developer docs for the portfolio's JSON API, MCP, A2A and NLWeb.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables deterministic querying of RVTDocs documentation with tools for fetching, scanning, and debugging documentation content.92MIT
- FlicenseNot gradedqualityCmaintenanceLocal documentation search server for AI models using hybrid retrieval (phrase, keyword, vector). Provides MCP tools to search and fetch documentation from bundled or custom doc sets without any external API keys.-
- AlicenseAqualityCmaintenanceEnables local-first search and analysis of Boxes home inventory exports and images, with tools for inventory queries, documentation audits, and signed webhook verification.7Apache 2.0
- FlicenseNot gradedqualityAmaintenanceEnables AI clients to search and retrieve current technical documentation for supported agent frameworks such as LangChain, LlamaIndex, AutoGen, Agno, OpenAI Agents SDK, MCP docs, CAMEL-AI, and CrewAI. It supports both stdio and SSE transport so documentation can be accessed locally or remotely.-