Skip to content

feat: add reorder_status_page_layout MCP tool#7

Merged
caballeto merged 2 commits into
mainfrom
feat/reorder-status-page-layout-tool
Apr 22, 2026
Merged

feat: add reorder_status_page_layout MCP tool#7
caballeto merged 2 commits into
mainfrom
feat/reorder-status-page-layout-tool

Conversation

@caballeto
Copy link
Copy Markdown
Member

Summary

Adds a top-level reorder_status_page_layout MCP 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, letting agents drive full drag-and-drop layout edits — moving groups + ungrouped components in one call, with optional within-group reordering via groupOrders.

The tool description distinguishes it from the existing reorder_status_page_components:

Use case Tool
Top-level layout changes (groups + ungrouped components shuffled) reorder_status_page_layout
Only one group's internal component order changes reorder_status_page_components

Dependency bump

Floor on devhelm raised from >=0.2.0 to >=0.2.1. The 0.2.1 release of the SDK contains both:

  1. The new StatusPages.reorder_layout(...) method this tool depends on.
  2. The removal of the bogus Incidents.delete() (which the parity check requires).

⚠️ CI will fail on uv sync until devhelm 0.2.1 is published to PyPI — same chicken-and-egg as the previous 0.1.x → 0.2.0 bump. Merge order:

  1. Merge sister PR fix: drop bogus Incidents.delete + add StatusPages.reorder_layout sdk-python#6
  2. Cut devhelm 0.2.1 release (auto-publishes to PyPI)
  3. Re-run CI here, or merge once green
  4. Cut devhelm-mcp-server 0.2.1 release

Test plan

Verified locally with a temporary [tool.uv.sources] override pointing at ../sdk-python (stripped before commit):

  • pytest tests/ — 57 passed
  • mypy src/ — clean (18 source files)
  • ruff format --check / ruff check — clean
  • make test-surface SURFACE=mcp_server against test API — 93 passed
  • Re-run after devhelm 0.2.1 lands on PyPI — should be green end-to-end
  • After release, re-run mono parity workflow — expect 39/39

Companion PRs

  • mono#260 — fixes 3 stale parity-test issues; _MCP_TOOL_OVERRIDES already anticipates this new tool.
  • sdk-python#6 — adds StatusPages.reorder_layout + drops Incidents.delete.

Made with Cursor

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
@caballeto caballeto merged commit b62348c into main Apr 22, 2026
4 checks passed
@caballeto caballeto deleted the feat/reorder-status-page-layout-tool branch April 22, 2026 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant