MCP server serving Sungrow iSolarCloud OpenAPI documentation, control-parameter reference and how-to skills.
Project description
mcp-isolarcloud
An MCP server that serves the Sungrow iSolarCloud OpenAPI documentation — the official developer docs, control-parameter reference, device-type dictionary, error codes and measuring-point tables — as searchable tools, resources and how-to "skill" prompts.
The full documentation set is bundled with the package, so the server needs no network access or credentials at runtime.
Why
Building against the iSolarCloud API (e.g. the sungrow-isolarcloud client or the Home Assistant integration) means constantly cross-referencing the developer portal — whose docs live behind a JavaScript app. This server puts them one tool call away for any MCP-capable assistant, including the authoritative Appendix 10: Control Parameter Definitions (param codes, units and value encodings — e.g. SOC is sent as tenths of a percent, power in watts).
Run it
With uv (recommended — no install step):
uvx mcp-isolarcloud
Or add it to an MCP client (Claude Desktop / Claude Code / etc.):
{
"mcpServers": {
"isolarcloud": {
"command": "uvx",
"args": ["mcp-isolarcloud"]
}
}
}
For Claude Code: claude mcp add isolarcloud -- uvx mcp-isolarcloud
What it exposes
Tools
list_docs()— every documentation page (slug, title, type)read_doc(slug)— the full markdown of one pagesearch_docs(query, limit=8)— keyword search, title-weighted, with snippets
Resources
isolarcloud://docs/{slug}— each page as an MCP resource
Prompts (skills)
find_control_parameter(what)— locate a dispatch/control parameter and its value encodingapi_call_walkthrough(endpoint)— walk through calling a specific API endpoint
Updating the docs
The bundled docs are refreshed from the portal with:
pip install cryptography markdownify
python tools/refresh_docs.py
The portal's doc API is public (no login); refresh_docs.py reproduces its request-encryption scheme using the public keys embedded in the portal's own web app.
Development
uv venv && uv pip install -e '.[dev]'
ruff check src/ tests/
pytest
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 mcp_isolarcloud-0.1.0.tar.gz.
File metadata
- Download URL: mcp_isolarcloud-0.1.0.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d771c72d8132106724a6a71de866c75ae4dcb9aa973a8b74fbf2eed30078d44
|
|
| MD5 |
45051d0cdb6ab77a53d86a4c0d46cd8a
|
|
| BLAKE2b-256 |
b6320d16710d1fec80ef2a7894ca25666530f2e63926cb3f013e93c49d6591fa
|
Provenance
The following attestation bundles were made for mcp_isolarcloud-0.1.0.tar.gz:
Publisher:
release-please.yml on KRoperUK/mcp-isolarcloud
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_isolarcloud-0.1.0.tar.gz -
Subject digest:
1d771c72d8132106724a6a71de866c75ae4dcb9aa973a8b74fbf2eed30078d44 - Sigstore transparency entry: 2054316265
- Sigstore integration time:
-
Permalink:
KRoperUK/mcp-isolarcloud@b631c5a2d9594f0f15efffcb5c698546a56c76a4 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/KRoperUK
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-please.yml@b631c5a2d9594f0f15efffcb5c698546a56c76a4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mcp_isolarcloud-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcp_isolarcloud-0.1.0-py3-none-any.whl
- Upload date:
- Size: 1.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4661e526b9d8bb8e145220ca367382981bfd68fb063b34de793d74cd955f7108
|
|
| MD5 |
cb330eb9d1cb5ddc1a87a8c6bd6f49cb
|
|
| BLAKE2b-256 |
e07ca67938c48444fb78d5e44a1152326a1e165cfc543d1f25fd40ffbef92f7b
|
Provenance
The following attestation bundles were made for mcp_isolarcloud-0.1.0-py3-none-any.whl:
Publisher:
release-please.yml on KRoperUK/mcp-isolarcloud
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_isolarcloud-0.1.0-py3-none-any.whl -
Subject digest:
4661e526b9d8bb8e145220ca367382981bfd68fb063b34de793d74cd955f7108 - Sigstore transparency entry: 2054316586
- Sigstore integration time:
-
Permalink:
KRoperUK/mcp-isolarcloud@b631c5a2d9594f0f15efffcb5c698546a56c76a4 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/KRoperUK
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-please.yml@b631c5a2d9594f0f15efffcb5c698546a56c76a4 -
Trigger Event:
push
-
Statement type: