devhelm-mcp-server 0.1.0__tar.gz → 0.2.0__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 (40) hide show
  1. devhelm_mcp_server-0.2.0/.github/workflows/spec-check.yml +108 -0
  2. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/PKG-INFO +2 -2
  3. devhelm_mcp_server-0.2.0/docs/openapi/monitoring-api.json +33026 -0
  4. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/pyproject.toml +5 -10
  5. devhelm_mcp_server-0.2.0/scripts/regen-from.sh +72 -0
  6. devhelm_mcp_server-0.2.0/src/devhelm_mcp/client.py +160 -0
  7. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/server.py +19 -38
  8. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/tools/alert_channels.py +22 -11
  9. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/tools/api_keys.py +11 -6
  10. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/tools/dependencies.py +4 -6
  11. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/tools/deploy_lock.py +17 -7
  12. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/tools/environments.py +22 -9
  13. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/tools/incidents.py +20 -20
  14. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/tools/monitors.py +25 -18
  15. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/tools/notification_policies.py +27 -11
  16. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/tools/resource_groups.py +28 -13
  17. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/tools/secrets.py +17 -8
  18. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/tools/status.py +2 -4
  19. devhelm_mcp_server-0.2.0/src/devhelm_mcp/tools/status_pages.py +398 -0
  20. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/tools/tags.py +16 -9
  21. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/tools/webhooks.py +21 -10
  22. devhelm_mcp_server-0.2.0/tests/run_mcp.py +126 -0
  23. devhelm_mcp_server-0.2.0/tests/test_client.py +94 -0
  24. devhelm_mcp_server-0.2.0/tests/test_tools.py +401 -0
  25. devhelm_mcp_server-0.2.0/tests/test_typed_schemas.py +154 -0
  26. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/uv.lock +5 -5
  27. devhelm_mcp_server-0.1.0/.github/workflows/spec-check.yml +0 -41
  28. devhelm_mcp_server-0.1.0/src/devhelm_mcp/client.py +0 -34
  29. devhelm_mcp_server-0.1.0/tests/test_tools.py +0 -113
  30. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/.github/workflows/ci.yml +0 -0
  31. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/.github/workflows/release.yml +0 -0
  32. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/.gitignore +0 -0
  33. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/LICENSE +0 -0
  34. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/Makefile +0 -0
  35. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/README.md +0 -0
  36. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/docker/Dockerfile +0 -0
  37. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/scripts/release.sh +0 -0
  38. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/__init__.py +0 -0
  39. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/src/devhelm_mcp/tools/__init__.py +0 -0
  40. {devhelm_mcp_server-0.1.0 → devhelm_mcp_server-0.2.0}/tests/__init__.py +0 -0
@@ -0,0 +1,108 @@
1
+ name: Spec Check
2
+
3
+ # Triggered by ``spec_updated`` repository_dispatch from devhelmhq/mono whenever
4
+ # the canonical OpenAPI spec changes.
5
+ #
6
+ # Unlike sibling surfaces (cli, sdk-js, sdk-python, terraform-provider) the MCP
7
+ # server does NOT consume the spec directly — every API call is delegated to the
8
+ # vendored ``devhelm`` Python SDK. The server only ships a copy of the spec for
9
+ # documentation/reference purposes.
10
+ #
11
+ # What this workflow checks:
12
+ # 1. The freshest spec from the monorepo is committed (so the documentation
13
+ # copy doesn't go stale relative to other surfaces).
14
+ # 2. The latest published ``devhelm`` SDK still satisfies our resolver
15
+ # (we pull it via ``uv lock --upgrade-package devhelm``).
16
+ # 3. Tests pass against the upgraded SDK — this is the real contract check
17
+ # because the SDK regenerates its own typed surface against the spec.
18
+ # 4. If the resolved SDK version or the bundled spec changed, open a PR so a
19
+ # human can ship the bump. If anything broke, file an issue.
20
+
21
+ on:
22
+ repository_dispatch:
23
+ types: [spec_updated]
24
+
25
+ permissions:
26
+ contents: write
27
+ issues: write
28
+ pull-requests: write
29
+
30
+ jobs:
31
+ check-compatibility:
32
+ runs-on: ubuntu-latest
33
+ steps:
34
+ - uses: actions/checkout@v4
35
+ - uses: astral-sh/setup-uv@v4
36
+ with:
37
+ enable-cache: true
38
+ - uses: actions/setup-python@v5
39
+ with:
40
+ python-version: '3.13'
41
+
42
+ - name: Download latest OpenAPI spec from monorepo
43
+ run: |
44
+ mkdir -p docs/openapi
45
+ gh api repos/devhelmhq/mono/contents/docs/openapi/monitoring-api.json \
46
+ -H "Accept: application/vnd.github.raw+json" \
47
+ -o docs/openapi/monitoring-api.json
48
+ env:
49
+ GH_TOKEN: ${{ secrets.MONOREPO_DISPATCH_TOKEN }}
50
+
51
+ - name: Refresh devhelm SDK to latest
52
+ run: |
53
+ uv lock --upgrade-package devhelm
54
+ uv sync --locked
55
+
56
+ - name: Run tests against refreshed SDK
57
+ run: uv run pytest -v
58
+
59
+ - name: Lint and type-check
60
+ run: |
61
+ uv run ruff check src tests
62
+ uv run mypy src
63
+
64
+ - name: Check for changes
65
+ id: diff
66
+ run: |
67
+ if git diff --quiet docs/openapi/monitoring-api.json uv.lock; then
68
+ echo "changed=false" >> "$GITHUB_OUTPUT"
69
+ else
70
+ echo "changed=true" >> "$GITHUB_OUTPUT"
71
+ fi
72
+
73
+ - name: Open PR with refreshed spec + SDK
74
+ if: steps.diff.outputs.changed == 'true'
75
+ run: |
76
+ git config user.name "github-actions[bot]"
77
+ git config user.email "github-actions[bot]@users.noreply.github.com"
78
+ branch="chore/spec-sync-$(date +%Y%m%d%H%M%S)"
79
+ git checkout -b "$branch"
80
+ git add docs/openapi/monitoring-api.json uv.lock
81
+ git commit -m "chore: sync OpenAPI spec and refresh devhelm SDK"
82
+ git push -u origin "$branch"
83
+ gh pr create \
84
+ --title "chore: sync OpenAPI spec and refresh devhelm SDK" \
85
+ --body "Auto-generated after a spec_updated event from the monorepo.
86
+
87
+ - Re-downloaded \`docs/openapi/monitoring-api.json\` (reference copy)
88
+ - Bumped vendored \`devhelm\` SDK to latest published version
89
+ - Tests + lint + mypy passed against the new SDK" \
90
+ --base main
91
+ env:
92
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
93
+
94
+ - name: Report failure
95
+ if: failure()
96
+ run: |
97
+ gh issue create \
98
+ --title "API spec change broke MCP server build" \
99
+ --body "The monorepo pushed a spec update that caused CI failures in the MCP server compatibility job.
100
+
101
+ Workflow run: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
102
+
103
+ Likely causes:
104
+ - The latest \`devhelm\` SDK release is incompatible with how MCP tools call it
105
+ - Tool definitions reference an SDK method that was removed/renamed
106
+ - Test fixtures depend on a payload shape that changed in the spec"
107
+ env:
108
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devhelm-mcp-server
3
- Version: 0.1.0
3
+ Version: 0.2.0
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.1.0
21
+ Requires-Dist: devhelm>=0.2.0
22
22
  Requires-Dist: fastmcp>=2.0.0
23
23
  Description-Content-Type: text/markdown
24
24