feat: add reorder_status_page_layout MCP tool#7
Merged
Conversation
Adds a top-level `reorder_status_page_layout` tool that wraps `StatusPages.reorder_layout(...)` from `devhelm 0.2.1`. This closes the parity gap on `status-pages.reorder-layout` between sdk-js (which has had `reorderLayout` for a while) and the MCP surface, and lets agents drive full drag-and-drop layout edits — moving groups + ungrouped components in one call, with optional within-group reordering via `groupOrders`. Tool description distinguishes it from the existing `reorder_status_page_components` tool: use `reorder_status_page_layout` when the top-level layout (groups + ungrouped components) changes; use `reorder_status_page_components` when only one group's internal order changes. Also bumps `devhelm` floor from `>=0.2.0` to `>=0.2.1` (where the new `StatusPages.reorder_layout` lives, and where the bogus `Incidents.delete()` was removed). CI will fail on `uv sync` until `devhelm 0.2.1` is published to PyPI; this is the same chicken-and-egg as the previous 0.1.x → 0.2.0 bump. Verified locally with a temporary `[tool.uv.sources]` override pointing at `../sdk-python` (stripped before commit): - `pytest tests/` — 57 passed - `mypy src/` — clean (18 files) - `ruff format` / `ruff check` — clean - `make test-surface SURFACE=mcp_server` against test API — 93 passed Made-with: Cursor
`pyproject.toml` already pins `devhelm>=0.2.1` (added in this PR for the `reorder_status_page_layout` tool), but `uv.lock` still resolved to 0.2.0 from when the lockfile was last regenerated — before sdk-python 0.2.1 hit PyPI. CI's `uv sync` failed because the cached PyPI index in `setup-uv@v4` plus the stale lock left it unable to satisfy `>=0.2.1`. Regenerated locally with `uv cache clean devhelm && uv sync --upgrade-package devhelm --refresh`. Lock now pins `devhelm==0.2.1` from `https://pypi.org/simple`. Verified pytest (57 passed) and `ruff check` are still green against the upgraded SDK. Made-with: Cursor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a top-level
reorder_status_page_layoutMCP tool that wrapsStatusPages.reorder_layout(...)fromdevhelm 0.2.1.This closes the parity gap on
status-pages.reorder-layoutbetween sdk-js (which has hadreorderLayoutfor a while) and the MCP surface, letting agents drive full drag-and-drop layout edits — moving groups + ungrouped components in one call, with optional within-group reordering viagroupOrders.The tool description distinguishes it from the existing
reorder_status_page_components:reorder_status_page_layoutreorder_status_page_componentsDependency bump
Floor on
devhelmraised from>=0.2.0to>=0.2.1. The 0.2.1 release of the SDK contains both:StatusPages.reorder_layout(...)method this tool depends on.Incidents.delete()(which the parity check requires).uv syncuntildevhelm 0.2.1is published to PyPI — same chicken-and-egg as the previous 0.1.x → 0.2.0 bump. Merge order:devhelm 0.2.1release (auto-publishes to PyPI)devhelm-mcp-server 0.2.1releaseTest plan
Verified locally with a temporary
[tool.uv.sources]override pointing at../sdk-python(stripped before commit):pytest tests/— 57 passedmypy src/— clean (18 source files)ruff format --check/ruff check— cleanmake test-surface SURFACE=mcp_serveragainst test API — 93 passeddevhelm 0.2.1lands on PyPI — should be green end-to-endCompanion PRs
mono— #260 — fixes 3 stale parity-test issues;_MCP_TOOL_OVERRIDESalready anticipates this new tool.sdk-python— #6 — addsStatusPages.reorder_layout+ dropsIncidents.delete.Made with Cursor