devhelm-mcp-server 0.2.0__tar.gz → 0.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/PKG-INFO +2 -2
  2. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/pyproject.toml +6 -6
  3. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/status_pages.py +24 -0
  4. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/tests/test_tools.py +2 -0
  5. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/uv.lock +5 -5
  6. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/.github/workflows/ci.yml +0 -0
  7. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/.github/workflows/release.yml +0 -0
  8. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/.github/workflows/spec-check.yml +0 -0
  9. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/.gitignore +0 -0
  10. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/LICENSE +0 -0
  11. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/Makefile +0 -0
  12. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/README.md +0 -0
  13. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/docker/Dockerfile +0 -0
  14. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/docs/openapi/monitoring-api.json +0 -0
  15. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/scripts/regen-from.sh +0 -0
  16. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/scripts/release.sh +0 -0
  17. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/__init__.py +0 -0
  18. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/client.py +0 -0
  19. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/server.py +0 -0
  20. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/__init__.py +0 -0
  21. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/alert_channels.py +0 -0
  22. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/api_keys.py +0 -0
  23. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/dependencies.py +0 -0
  24. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/deploy_lock.py +0 -0
  25. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/environments.py +0 -0
  26. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/incidents.py +0 -0
  27. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/monitors.py +0 -0
  28. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/notification_policies.py +0 -0
  29. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/resource_groups.py +0 -0
  30. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/secrets.py +0 -0
  31. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/status.py +0 -0
  32. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/tags.py +0 -0
  33. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/src/devhelm_mcp/tools/webhooks.py +0 -0
  34. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/tests/__init__.py +0 -0
  35. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/tests/run_mcp.py +0 -0
  36. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/tests/test_client.py +0 -0
  37. {devhelm_mcp_server-0.2.0 → devhelm_mcp_server-0.2.1}/tests/test_typed_schemas.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devhelm-mcp-server
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: DevHelm MCP server — AI agent access to monitors, incidents, alerting, and more
5
5
  Project-URL: Homepage, https://devhelm.io
6
6
  Project-URL: Repository, https://github.com/devhelmhq/mcp-server
@@ -18,7 +18,7 @@ Classifier: Programming Language :: Python :: 3.12
18
18
  Classifier: Programming Language :: Python :: 3.13
19
19
  Classifier: Topic :: Software Development :: Libraries
20
20
  Requires-Python: >=3.11
21
- Requires-Dist: devhelm>=0.2.0
21
+ Requires-Dist: devhelm>=0.2.1
22
22
  Requires-Dist: fastmcp>=2.0.0
23
23
  Description-Content-Type: text/markdown
24
24
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "devhelm-mcp-server"
3
- version = "0.2.0"
3
+ version = "0.2.1"
4
4
  description = "DevHelm MCP server — AI agent access to monitors, incidents, alerting, and more"
5
5
  authors = [{ name = "DevHelm", email = "hello@devhelm.io" }]
6
6
  license = "MIT"
@@ -19,10 +19,10 @@ classifiers = [
19
19
  ]
20
20
 
21
21
  dependencies = [
22
- # Floor bumped to 0.1.3 because mcp-server depends on the strict error
23
- # taxonomy (DevhelmValidationError / DevhelmApiError / DevhelmTransportError)
24
- # and `extra='forbid'` response validation introduced in that release.
25
- "devhelm>=0.2.0",
22
+ # Floor bumped to 0.2.1 for `StatusPages.reorder_layout` and the
23
+ # `Incidents.delete` removal (which the `reorder_status_page_layout`
24
+ # tool below depends on, and which the parity check requires).
25
+ "devhelm>=0.2.1",
26
26
  "fastmcp>=2.0.0",
27
27
  ]
28
28
 
@@ -64,4 +64,4 @@ dev = [
64
64
  "pytest>=8.0",
65
65
  "ruff>=0.8",
66
66
  "twine>=5.0",
67
- ]
67
+ ]
@@ -13,6 +13,7 @@ from devhelm.types import (
13
13
  CreateStatusPageIncidentUpdateRequest,
14
14
  CreateStatusPageRequest,
15
15
  ReorderComponentsRequest,
16
+ ReorderPageLayoutRequest,
16
17
  UpdateStatusPageComponentGroupRequest,
17
18
  UpdateStatusPageComponentRequest,
18
19
  UpdateStatusPageIncidentRequest,
@@ -85,6 +86,29 @@ def register(mcp: FastMCP) -> None:
85
86
  except DevhelmError as e:
86
87
  return format_error(e)
87
88
 
89
+ @mcp.tool()
90
+ def reorder_status_page_layout(
91
+ api_token: str, page_id: str, body: ReorderPageLayoutRequest
92
+ ) -> str:
93
+ """Batch-reorder a status page's full layout.
94
+
95
+ Required: sections — top-level layout in their new order, where each
96
+ entry is either {kind:"component", componentId} or
97
+ {kind:"group", groupId}. Use ``groupOrders`` (optional) to also
98
+ reorder components within specific groups; only include groups whose
99
+ internal order changed. The full top-level set must be provided —
100
+ partial reorders are rejected by the API.
101
+
102
+ Use this for "drag-and-drop" layout edits that touch both groups and
103
+ ungrouped components. To reorder components within a single group
104
+ only, prefer ``reorder_status_page_components``.
105
+ """
106
+ try:
107
+ _sp(api_token).reorder_layout(page_id, as_payload(body))
108
+ return "Status page layout reordered successfully."
109
+ except DevhelmError as e:
110
+ return format_error(e)
111
+
88
112
  # ── Components ────────────────────────────────────────────────────────
89
113
 
90
114
  @mcp.tool()
@@ -87,6 +87,7 @@ EXPECTED_TOOLS = [
87
87
  "create_status_page",
88
88
  "update_status_page",
89
89
  "delete_status_page",
90
+ "reorder_status_page_layout",
90
91
  "list_status_page_components",
91
92
  "create_status_page_component",
92
93
  "update_status_page_component",
@@ -157,6 +158,7 @@ STATUS_PAGE_CRUD = [
157
158
  "create_status_page",
158
159
  "update_status_page",
159
160
  "delete_status_page",
161
+ "reorder_status_page_layout",
160
162
  ]
161
163
 
162
164
  STATUS_PAGE_COMPONENT_TOOLS = [
@@ -388,20 +388,20 @@ wheels = [
388
388
 
389
389
  [[package]]
390
390
  name = "devhelm"
391
- version = "0.2.0"
391
+ version = "0.2.1"
392
392
  source = { registry = "https://pypi.org/simple" }
393
393
  dependencies = [
394
394
  { name = "httpx" },
395
395
  { name = "pydantic", extra = ["email"] },
396
396
  ]
397
- sdist = { url = "https://files.pythonhosted.org/packages/7e/f2/5af595f2eaa3696874f5d93aae2a7efd3d06abf36d38f56cfb1a5824f632/devhelm-0.2.0.tar.gz", hash = "sha256:3160c5f6098756bf80a49cc2489ed809797790f209214376091c8e560532fba8", size = 223354, upload-time = "2026-04-22T08:30:19.004Z" }
397
+ sdist = { url = "https://files.pythonhosted.org/packages/6c/9b/15f9e05f6b6ac44ac5d17c3e5bc37791451c7f98758641ac1aa308f94648/devhelm-0.2.1.tar.gz", hash = "sha256:5188d99ee01e43139cfc96b46174f35786e23fb077f15e153408068eb182e37f", size = 223541, upload-time = "2026-04-22T09:58:42.574Z" }
398
398
  wheels = [
399
- { url = "https://files.pythonhosted.org/packages/c1/73/fed4d13b648b5c2bdc06a944bcb7d1787b40778a8ff98fd05c41b88212f7/devhelm-0.2.0-py3-none-any.whl", hash = "sha256:655772d06931fc65a823230346d581a6c93be23c5ee9158039f3e9ac4f30c9bb", size = 67575, upload-time = "2026-04-22T08:30:17.808Z" },
399
+ { url = "https://files.pythonhosted.org/packages/73/58/2b3146c85eef0ef6c129a7a0b41a9a23bf21a03590693ce0acfbd82bc0c3/devhelm-0.2.1-py3-none-any.whl", hash = "sha256:83ef1a5b1e95742fc60bd0c8bf77287f3dff55565b60f7b397ca4a3dace5d882", size = 67714, upload-time = "2026-04-22T09:58:41.286Z" },
400
400
  ]
401
401
 
402
402
  [[package]]
403
403
  name = "devhelm-mcp-server"
404
- version = "0.2.0"
404
+ version = "0.2.1"
405
405
  source = { editable = "." }
406
406
  dependencies = [
407
407
  { name = "devhelm" },
@@ -419,7 +419,7 @@ dev = [
419
419
 
420
420
  [package.metadata]
421
421
  requires-dist = [
422
- { name = "devhelm", specifier = ">=0.2.0" },
422
+ { name = "devhelm", specifier = ">=0.2.1" },
423
423
  { name = "fastmcp", specifier = ">=2.0.0" },
424
424
  ]
425
425