rootly-mcp-server 2.0.14__py3-none-any.whl → 2.0.15__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rootly-mcp-server
3
- Version: 2.0.14
3
+ Version: 2.0.15
4
4
  Summary: A Model Context Protocol server for Rootly APIs using OpenAPI spec
5
5
  Project-URL: Homepage, https://github.com/Rootly-AI-Labs/Rootly-MCP-server
6
6
  Project-URL: Issues, https://github.com/Rootly-AI-Labs/Rootly-MCP-server/issues
@@ -63,7 +63,7 @@ Configure your MCP-compatible editor (tested with Cursor) with one of the config
63
63
  "run",
64
64
  "--from",
65
65
  "rootly-mcp-server",
66
- "rootly-mcp-server",
66
+ "rootly-mcp-server"
67
67
  ],
68
68
  "env": {
69
69
  "ROOTLY_API_TOKEN": "<YOUR_ROOTLY_API_TOKEN>"
@@ -83,7 +83,7 @@ Configure your MCP-compatible editor (tested with Cursor) with one of the config
83
83
  "args": [
84
84
  "--from",
85
85
  "rootly-mcp-server",
86
- "rootly-mcp-server",
86
+ "rootly-mcp-server"
87
87
  ],
88
88
  "env": {
89
89
  "ROOTLY_API_TOKEN": "<YOUR_ROOTLY_API_TOKEN>"
@@ -143,46 +143,60 @@ Alternatively, connect directly to our hosted MCP server:
143
143
  - **Dynamic Tool Generation**: Automatically creates MCP resources from Rootly's OpenAPI (Swagger) specification
144
144
  - **Smart Pagination**: Defaults to 10 items per request for incident endpoints to prevent context window overflow
145
145
  - **API Filtering**: Limits exposed API endpoints for security and performance
146
- - **AI-Powered Incident Analysis**: Smart tools that learn from historical incident data
147
- - **`find_related_incidents`**: Uses TF-IDF similarity analysis to find historically similar incidents
146
+ - **Intelligent Incident Analysis**: Smart tools that analyze historical incident data
147
+ - **`find_related_incidents`**: Uses TF-IDF similarity analysis to find historically similar incidents
148
148
  - **`suggest_solutions`**: Mines past incident resolutions to recommend actionable solutions
149
149
  - **MCP Resources**: Exposes incident and team data as structured resources for easy AI reference
150
150
  - **Intelligent Pattern Recognition**: Automatically identifies services, error types, and resolution patterns
151
151
 
152
- ### Whitelisted Endpoints
153
-
154
- By default, the following Rootly API endpoints are exposed to the AI agent (see `allowed_paths` in `src/rootly_mcp_server/server.py`):
155
-
156
- ```
157
- /v1/incidents
158
- /v1/incidents/{incident_id}/alerts
159
- /v1/alerts
160
- /v1/alerts/{alert_id}
161
- /v1/severities
162
- /v1/severities/{severity_id}
163
- /v1/teams
164
- /v1/teams/{team_id}
165
- /v1/services
166
- /v1/services/{service_id}
167
- /v1/functionalities
168
- /v1/functionalities/{functionality_id}
169
- /v1/incident_types
170
- /v1/incident_types/{incident_type_id}
171
- /v1/incident_action_items
172
- /v1/incident_action_items/{incident_action_item_id}
173
- /v1/incidents/{incident_id}/action_items
174
- /v1/workflows
175
- /v1/workflows/{workflow_id}
176
- /v1/workflow_runs
177
- /v1/workflow_runs/{workflow_run_id}
178
- /v1/environments
179
- /v1/environments/{environment_id}
180
- /v1/users
181
- /v1/users/{user_id}
182
- /v1/users/me
183
- /v1/status_pages
184
- /v1/status_pages/{status_page_id}
185
- ```
152
+ ### Available Tools
153
+
154
+ **Alerts**
155
+ - `listIncidentAlerts`
156
+ - `listAlerts`
157
+ - `attachAlert`
158
+ - `createAlert`
159
+
160
+ **Environments**
161
+ - `listEnvironments`
162
+ - `createEnvironment`
163
+
164
+ **Functionalities**
165
+ - `listFunctionalities`
166
+ - `createFunctionality`
167
+
168
+ **Workflows**
169
+ - `listWorkflows`
170
+ - `createWorkflow`
171
+
172
+ **Incidents**
173
+ - `listIncidentActionItems`
174
+ - `createIncidentActionItem`
175
+ - `listIncident_Types`
176
+ - `createIncidentType`
177
+ - `search_incidents`
178
+ - `find_related_incidents`
179
+ - `suggest_solutions`
180
+
181
+ **On-Call**
182
+ - `get_oncall_shift_metrics`
183
+ - `get_oncall_handoff_summary`
184
+ - `get_shift_incidents`
185
+
186
+ **Services & Severities**
187
+ - `listServices`
188
+ - `createService`
189
+ - `listSeverities`
190
+ - `createSeverity`
191
+
192
+ **Teams & Users**
193
+ - `listTeams`
194
+ - `createTeam`
195
+ - `listUsers`
196
+ - `getCurrentUser`
197
+
198
+ **Meta**
199
+ - `list_endpoints`
186
200
 
187
201
  ### Why Path Limiting?
188
202
 
@@ -193,14 +207,14 @@ We limit exposed API paths for two key reasons:
193
207
 
194
208
  To expose additional paths, modify the `allowed_paths` variable in `src/rootly_mcp_server/server.py`.
195
209
 
196
- ### AI-Powered Smart Tools
210
+ ### Smart Analysis Tools
197
211
 
198
212
  The MCP server includes intelligent tools that analyze historical incident data to provide actionable insights:
199
213
 
200
214
  #### `find_related_incidents`
201
- Finds historically similar incidents using machine learning text analysis:
215
+ Finds historically similar incidents using text similarity analysis:
202
216
  ```
203
- find_related_incidents(incident_id="12345", similarity_threshold=0.3, max_results=5)
217
+ find_related_incidents(incident_id="12345", similarity_threshold=0.15, max_results=5)
204
218
  ```
205
219
  - **Input**: Incident ID, similarity threshold (0.0-1.0), max results
206
220
  - **Output**: Similar incidents with confidence scores, matched services, and resolution times
@@ -215,7 +229,7 @@ suggest_solutions(incident_title="Payment API errors", incident_description="Use
215
229
  ```
216
230
  - **Input**: Either incident ID OR title/description text
217
231
  - **Output**: Actionable solution recommendations with confidence scores and time estimates
218
- - **Use Case**: Get AI-powered suggestions based on successful past resolutions
232
+ - **Use Case**: Get intelligent suggestions based on successful past resolutions
219
233
 
220
234
  #### How It Works
221
235
  - **Text Similarity**: Uses TF-IDF vectorization and cosine similarity (scikit-learn)
@@ -232,6 +246,56 @@ For optimal results, ensure your Rootly incidents have descriptive:
232
246
 
233
247
  Example good resolution summary: `"Restarted auth-service, cleared Redis cache, and increased connection pool from 10 to 50"`
234
248
 
249
+ ### On-Call Shift Metrics
250
+
251
+ Get on-call shift metrics for any time period, grouped by user, team, or schedule. Includes primary/secondary role tracking, shift counts, hours, and days on-call.
252
+
253
+ ```
254
+ get_oncall_shift_metrics(
255
+ start_date="2025-10-01",
256
+ end_date="2025-10-31",
257
+ group_by="user"
258
+ )
259
+ ```
260
+
261
+ ### On-Call Handoff Summary
262
+
263
+ Complete handoff: current/next on-call + incidents during shifts.
264
+
265
+ ```python
266
+ # All on-call (any timezone)
267
+ get_oncall_handoff_summary(
268
+ team_ids="team-1,team-2",
269
+ timezone="America/Los_Angeles"
270
+ )
271
+
272
+ # Regional filter - only show APAC on-call during APAC business hours
273
+ get_oncall_handoff_summary(
274
+ timezone="Asia/Tokyo",
275
+ filter_by_region=True
276
+ )
277
+ ```
278
+
279
+ Regional filtering shows only people on-call during business hours (9am-5pm) in the specified timezone.
280
+
281
+ Returns: `schedules` with `current_oncall`, `next_oncall`, and `shift_incidents`
282
+
283
+ ### Shift Incidents
284
+
285
+ Incidents during a time period, with filtering by severity/status/tags.
286
+
287
+ ```python
288
+ get_shift_incidents(
289
+ start_time="2025-10-20T09:00:00Z",
290
+ end_time="2025-10-20T17:00:00Z",
291
+ severity="critical", # optional
292
+ status="resolved", # optional
293
+ tags="database,api" # optional
294
+ )
295
+ ```
296
+
297
+ Returns: `incidents` list + `summary` (counts, avg resolution time, grouping)
298
+
235
299
  ## About Rootly AI Labs
236
300
 
237
301
  This project was developed by [Rootly AI Labs](https://labs.rootly.ai/), where we're building the future of system reliability and operational excellence. As an open-source incubator, we share ideas, experiment, and rapidly prototype solutions that benefit the entire community.
@@ -265,7 +329,20 @@ To add new dependencies during development:
265
329
  uv pip install <package>
266
330
  ```
267
331
 
268
- ### 3. Verify Installation
332
+ ### 3. Set Up Git Hooks (Recommended for Contributors)
333
+
334
+ Install pre-commit hooks to automatically run linting and tests before commits:
335
+
336
+ ```bash
337
+ ./scripts/setup-hooks.sh
338
+ ```
339
+
340
+ This ensures code quality by running:
341
+ - Ruff linting
342
+ - Pyright type checking
343
+ - Unit tests
344
+
345
+ ### 4. Verify Installation
269
346
 
270
347
  The server should now be ready to use with your MCP-compatible editor.
271
348
 
@@ -1,12 +1,13 @@
1
1
  rootly_mcp_server/__init__.py,sha256=rvIuqIyuzgC7b9qSnylrdDP2zPO-7Ou9AoblR6re1co,629
2
2
  rootly_mcp_server/__main__.py,sha256=_F4p65_VjnN84RtmEdESVLLH0tO5tL9qBfb2Xdvbj2E,6480
3
3
  rootly_mcp_server/client.py,sha256=uit-YijR7OAJtysBoclqnublEDVkFfcb29wSzhpBv44,4686
4
- rootly_mcp_server/server.py,sha256=dlqsLnD3QzRtSlUYzK_PUe5zR9rbQRvySRSjmKbCy5w,51476
4
+ rootly_mcp_server/server.py,sha256=Qmsv-BKNhsEj8_7S1glBgLEN6OlSKqOvMRgJ40ZFeCg,98716
5
5
  rootly_mcp_server/smart_utils.py,sha256=lvGN9ITyJjBkm7ejpYagd8VWodLKnC6FmwECfCOcGwM,22973
6
+ rootly_mcp_server/texttest.json,sha256=KV9m13kWugmW1VEpU80Irp50uCcLgJtV1YT-JzMogQg,154182
6
7
  rootly_mcp_server/utils.py,sha256=NyxdcDiFGlV2a8eBO4lKgZg0D7Gxr6xUIB0YyJGgpPA,4165
7
8
  rootly_mcp_server/data/__init__.py,sha256=fO8a0bQnRVEoRMHKvhFzj10bhoaw7VsI51czc2MsUm4,143
8
- rootly_mcp_server-2.0.14.dist-info/METADATA,sha256=XvbzBwNb-XkGeedNz2oZDRebwvBA1cUYSYSrPftB9L4,9078
9
- rootly_mcp_server-2.0.14.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
10
- rootly_mcp_server-2.0.14.dist-info/entry_points.txt,sha256=NE33b8VgigVPGBkboyo6pvN1Vz35HZtLybxMO4Q03PI,70
11
- rootly_mcp_server-2.0.14.dist-info/licenses/LICENSE,sha256=c9w9ZZGl14r54tsP40oaq5adTVX_HMNHozPIH2ymzmw,11341
12
- rootly_mcp_server-2.0.14.dist-info/RECORD,,
9
+ rootly_mcp_server-2.0.15.dist-info/METADATA,sha256=stGxakp4C-3jGIZG7pqAm3wim_UxAlrTikO--kApdiE,10552
10
+ rootly_mcp_server-2.0.15.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
11
+ rootly_mcp_server-2.0.15.dist-info/entry_points.txt,sha256=NE33b8VgigVPGBkboyo6pvN1Vz35HZtLybxMO4Q03PI,70
12
+ rootly_mcp_server-2.0.15.dist-info/licenses/LICENSE,sha256=c9w9ZZGl14r54tsP40oaq5adTVX_HMNHozPIH2ymzmw,11341
13
+ rootly_mcp_server-2.0.15.dist-info/RECORD,,