rootly-mcp-server 2.0.9__py3-none-any.whl → 2.0.10__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.
@@ -243,42 +243,6 @@ def create_rootly_mcp_server(
243
243
  return PlainTextResponse("OK")
244
244
 
245
245
  # Add some custom tools for enhanced functionality
246
- @mcp.tool()
247
- async def debug_incidents() -> dict:
248
- """Debug tool to inspect incidents endpoint response."""
249
- try:
250
- response = await make_authenticated_request("GET", "/v1/incidents", params={"page[size]": 1})
251
- response.raise_for_status()
252
-
253
- return {
254
- "status_code": response.status_code,
255
- "headers": dict(response.headers),
256
- "content_length": len(response.content) if response.content else 0,
257
- "content_preview": response.content[:500].decode('utf-8', errors='ignore') if response.content else "No content",
258
- "text_preview": response.text[:500] if hasattr(response, 'text') else "No text",
259
- "encoding": response.encoding,
260
- "content_type": response.headers.get('content-type', 'unknown')
261
- }
262
- except Exception as e:
263
- return {"error": str(e), "error_type": type(e).__name__}
264
-
265
- @mcp.tool()
266
- async def debug_headers() -> dict:
267
- """Debug tool to inspect request/response headers for troubleshooting."""
268
- try:
269
- response = await make_authenticated_request("GET", "/v1/teams", params={"page[size]": 1})
270
- response.raise_for_status()
271
-
272
- return {
273
- "request_headers": dict(response.request.headers) if response.request else {},
274
- "response_headers": dict(response.headers),
275
- "status_code": response.status_code,
276
- "content_type": response.headers.get('content-type', 'unknown'),
277
- "encoding": response.encoding,
278
- "content_preview": str(response.content[:200]) if response.content else "No content"
279
- }
280
- except Exception as e:
281
- return {"error": str(e), "error_type": type(e).__name__}
282
246
 
283
247
  @mcp.tool()
284
248
  def list_endpoints() -> list:
@@ -336,7 +300,7 @@ def create_rootly_mcp_server(
336
300
  # Single page mode
337
301
  if page_number > 0:
338
302
  params = {
339
- "page[size]": min(page_size, 20),
303
+ "page[size]": min(page_size, 5), # Keep responses very small to avoid errors
340
304
  "page[number]": page_number,
341
305
  "include": "",
342
306
  }
@@ -353,10 +317,11 @@ def create_rootly_mcp_server(
353
317
  # Multi-page mode (page_number = 0)
354
318
  all_incidents = []
355
319
  current_page = 1
356
- effective_page_size = min(page_size, 10)
320
+ effective_page_size = min(page_size, 5) # Keep responses very small to avoid errors
321
+ max_pages = 10 # Safety limit to prevent infinite loops
357
322
 
358
323
  try:
359
- while len(all_incidents) < max_results:
324
+ while len(all_incidents) < max_results and current_page <= max_pages:
360
325
  params = {
361
326
  "page[size]": effective_page_size,
362
327
  "page[number]": current_page,
@@ -373,16 +338,23 @@ def create_rootly_mcp_server(
373
338
  if "data" in response_data:
374
339
  incidents = response_data["data"]
375
340
  if not incidents:
341
+ # No more incidents available
342
+ break
343
+
344
+ # Check if we got fewer incidents than requested (last page)
345
+ if len(incidents) < effective_page_size:
346
+ all_incidents.extend(incidents)
376
347
  break
377
348
 
378
349
  all_incidents.extend(incidents)
379
350
 
380
- # Check if we have more pages
351
+ # Check metadata if available
381
352
  meta = response_data.get("meta", {})
382
353
  current_page_meta = meta.get("current_page", current_page)
383
- total_pages = meta.get("total_pages", 1)
384
-
385
- if current_page_meta >= total_pages:
354
+ total_pages = meta.get("total_pages")
355
+
356
+ # If we have reliable metadata, use it
357
+ if total_pages and current_page_meta >= total_pages:
386
358
  break
387
359
 
388
360
  current_page += 1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rootly-mcp-server
3
- Version: 2.0.9
3
+ Version: 2.0.10
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
@@ -2,12 +2,12 @@ rootly_mcp_server/__init__.py,sha256=6pLh19IFyqE-Cve9zergkD-X_yApEkInREKmRa73T6s
2
2
  rootly_mcp_server/__main__.py,sha256=_F4p65_VjnN84RtmEdESVLLH0tO5tL9qBfb2Xdvbj2E,6480
3
3
  rootly_mcp_server/client.py,sha256=diIBINJP_z4nnQIAC1b70vQSiHaNojEfUDARC2nrKHU,4681
4
4
  rootly_mcp_server/routemap_server.py,sha256=0LfK2EzwkFQF9SpHNvGcca5ZaxkBC80gIdDojE0aUcs,6100
5
- rootly_mcp_server/server.py,sha256=8Jx_OQWYRGj3GkyNb5dNZ0JHGxGqXvDMJVZXdCEPyqU,25585
5
+ rootly_mcp_server/server.py,sha256=O31ByNNfKjBmmYY1y_ooPKL12b-PXaM5eNrekXzpURE,24346
6
6
  rootly_mcp_server/test_client.py,sha256=Ytd5ZP7vImm12CT97k3p9tlkY_JNcXHSzcGGnHCBqv0,5275
7
7
  rootly_mcp_server/utils.py,sha256=NyxdcDiFGlV2a8eBO4lKgZg0D7Gxr6xUIB0YyJGgpPA,4165
8
8
  rootly_mcp_server/data/__init__.py,sha256=fO8a0bQnRVEoRMHKvhFzj10bhoaw7VsI51czc2MsUm4,143
9
- rootly_mcp_server-2.0.9.dist-info/METADATA,sha256=d5e-QTrnK1MdkO5PeMtJwYLt9UjOXLmWiv6l19LoR4c,6188
10
- rootly_mcp_server-2.0.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
11
- rootly_mcp_server-2.0.9.dist-info/entry_points.txt,sha256=NE33b8VgigVPGBkboyo6pvN1Vz35HZtLybxMO4Q03PI,70
12
- rootly_mcp_server-2.0.9.dist-info/licenses/LICENSE,sha256=c9w9ZZGl14r54tsP40oaq5adTVX_HMNHozPIH2ymzmw,11341
13
- rootly_mcp_server-2.0.9.dist-info/RECORD,,
9
+ rootly_mcp_server-2.0.10.dist-info/METADATA,sha256=SyvYvw80MbIJVhxXvAG_ai1F9FV9N3qPx9Ls4bj3mbg,6189
10
+ rootly_mcp_server-2.0.10.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
11
+ rootly_mcp_server-2.0.10.dist-info/entry_points.txt,sha256=NE33b8VgigVPGBkboyo6pvN1Vz35HZtLybxMO4Q03PI,70
12
+ rootly_mcp_server-2.0.10.dist-info/licenses/LICENSE,sha256=c9w9ZZGl14r54tsP40oaq5adTVX_HMNHozPIH2ymzmw,11341
13
+ rootly_mcp_server-2.0.10.dist-info/RECORD,,