Model Context Protocol server for IONIX API - provides comprehensive tools for interacting with the IONIX discovery and asset management platform
Server has 2 tools with acceptable naming conventions but significant gaps in schema completeness, parameter descriptions, and output documentation. The first tool (get_discovery_org_assets) has extensive parameter definitions with good type coverage and descriptions. The second tool (get_action_items_open) lacks visible schema entirely. Both tools lack documented output schemas, which is critical for LLM understanding. Descriptions exist but are minimal. No error handling guidance, no output field documentation, and no validation rules for the extensive parameter set. The schema quality is hampered by the absence of enum constraints despite many parameters accepting only specific values (e.g., type_in with 5 discrete asset types). STDIO transport caps protocol readiness significantly.
Get organization assets from the discovery inventory with comprehensive filtering options.
get_action_items_open has no visible schema or description in source code. Only tool name and risk level visible; no parameter definitions, input schema, or return type documented.
No output schemas documented for either tool. LLMs cannot understand what fields are returned or plan downstream calls. get_discovery_org_assets description states results can be filtered but provides no documentation of response structure (e.g., does it return asset objects with fields? pagination info? counts?).
Parameters with enumerated values should use JSON Schema enums but instead accept comma-separated strings. type_in can be '0,1,3' with 5 possible values (Domain, Subdomain, Managed Domain, IP Address, Cloud Asset) but no enum constraint prevents hallucinated values like '7' or 'unknown'. importance_in, risk_score_in, confidence_level_in, maintenance_grade_in similarly lack enum constraints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 44 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 17 | - | v1 |
No error handling guidance. Tool description does not explain what happens on invalid filters, API failures, missing credentials, or no results. No recovery hints (e.g., 'If no results, try broadening filters' or 'Ensure IONIX_API_KEY env var is set').
API key exposed as server-side secret but no documentation of error messages if key is missing or invalid. No clarity on whether failures are retryable or user-fixable.
Parameter descriptions exist but lack validation constraints. Date parameters (first_seen_gte, first_seen_lte, domain_expiration_date_gte, domain_expiration_date_lte) show YYYY-MM-DD format hint but no statement of whether past/future dates are valid or if there are year bounds. Integer web_traffic_visits__gte has no min/max bounds stated.
Tool returns string (": str") instead of structured object. Responses are JSON serialized to string, preventing LLMs from easily extracting nested fields and forcing manual parsing. Return type should be a documented Pydantic model or dict with typed fields.
No pagination documentation or limits on result size. Tool accepts limit and offset parameters but description does not specify minimum/maximum for limit, what happens if omitted, or whether large queries (e.g., 10000+ results) are supported or will timeout.