Read-only MCP server for AWS IoT Core. Inspect things, device shadows, topic rules and certificates from an AI assistant — without granting write access to your fleet.
Strong foundation with consistent naming (verb_noun pattern), clear descriptions (avg 120 chars), and complete input schemas with type definitions. All 12 tools follow read-only semantics. However, output schemas are not documented in the visible code, parameter descriptions lack constraint details (ranges, formats, enums), and error handling guidance is minimal. Tool composition is sound (each does one thing), but descriptions could be more LLM-optimized per the 50-200 char baseline.
Assess the health of a fleet of things by checking shadow freshness, certificate expiration, connectivity, and configuration drift.
Compare the shadows of two things to identify differences in desired and reported state.
Get detailed information about a certificate including its status and expiration date.
Get detailed information about a specific thing including its attributes, type, and metadata.
Retrieve the current state of a thing's shadow, including desired and reported state.
Get detailed information about a specific topic rule including its SQL query and actions.
List all named shadows for a specific thing.
List all thing groups that a specific thing belongs to.
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Get detailed information') but do not specify the response structure, field names, or types. LLMs cannot plan downstream calls or extract data without knowing what fields to expect.
Parameter descriptions lack constraint details. 'maxResults' is described as 'Maximum number of things to return per page' but does not specify the valid range (e.g., 1 - 100). 'queryString' in search_fleet_index lacks format guidance. LLMs cannot validate inputs without explicit constraints.
No error handling guidance in tool descriptions. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. E.g., 'describe_thing' does not state 'Thing not found' behavior or recovery steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
List all principals (certificates and keys) attached to a thing.
List things in the AWS IoT Core registry with optional filtering by type or attribute.
List all topic rules configured in AWS IoT Core.
Search the AWS IoT fleet index using a query string to find things matching specific criteria.
Pagination not fully specified. 'list_things' and 'list_topic_rules' accept 'nextToken' but descriptions do not explain what the response contains (e.g., does it include a 'nextToken' field for chaining, or a 'total' count?). Agents cannot reliably iterate without knowing the pagination contract.
Tool annotations missing. No tools declare readOnlyHint, destructiveHint, or idempotentHint. While all tools are read-only (correct for this server), explicit annotations would improve client-side UI and agent planning.