MCP server for LogicMonitor API integration
13 tools with consistent naming (verb_noun pattern: lm_device, lm_alert, etc.) and documented descriptions (avg ~80 chars). All tools have input schemas with typed parameters and enums for operations. However, parameter descriptions are minimal (often single phrases like 'Device ID'), lacking actionable guidance on format, constraints, or dependencies. Output schemas are not documented, responses are inferred from code (tool-response.ts shows formatting logic but no formal schema declaration). Error handling is present but generic. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Session management tool (lm_session) conflates state management with caching, violating single-responsibility principle.
Manage LogicMonitor alerts - list, get, acknowledge, add notes, escalate alerts
Manage LogicMonitor collectors - list, get, create, update, delete collectors
Manage LogicMonitor collector groups - list, get, create, update, delete collector groups
Manage LogicMonitor dashboards - list, get, create, update, delete dashboards
Manage LogicMonitor devices - list, get, create, update, delete devices
Retrieve LogicMonitor device data - list datasources, list instances, get time-series data
Manage LogicMonitor device groups - list, get, create, update, delete device groups
Parameter descriptions are minimal (single phrases) and lack actionable constraints. E.g., 'Device ID for get/update/delete operations' does not specify format, type coercion rules, or whether string or number is preferred. LLMs cannot infer whether to pass '12345' or 12345.
Output schemas are not formally documented. tool-response.ts shows formatting logic (compact lists, time-series sampling, batch payloads) but no schema declaration visible to LLMs. Agents cannot plan downstream calls without knowing what fields are returned.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | <=2025-11-25 | v2 |
Manage LogicMonitor operational notes - list, get, create, update, delete opsnotes
Manage LogicMonitor Scheduled Downtime (SDT) - list, get, create, update, delete SDT entries
Manage MCP session context - get, create, update, delete session variables and cached results
Manage LogicMonitor users - list, get, create, update, delete users
Manage LogicMonitor websites - list, get, create, update, delete websites
Manage LogicMonitor website groups - list, get, create, update, delete website groups
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot distinguish safe reads from destructive writes without parsing descriptions. lm_device with operation='delete' should be marked destructiveHint=true.
lm_session conflates session variable storage with cached operation results. Tool description says 'Manage MCP session context' but implementation stores both user-defined variables and internal caching state. Violates single-responsibility principle; should split into separate tools or clarify scope.
Pagination parameters (size, offset) lack documented limits. No indication of max page size, default values, or total count behavior. LLMs may request 10,000 items, causing timeouts or API errors.