MCP server for phpIPAM IP address management and network infrastructure
Server provides 8 read-only tools with consistent naming (verb_noun pattern: list_*, get_*, search_*). All tools have descriptions and input schemas with types. However, descriptions are generic and lack LLM-optimization guidance. Parameter descriptions are present but minimal (10-50 chars). Output schemas are not documented, responses are formatted as plain text summaries rather than structured JSON. No error handling guidance, no pagination metadata (total count, next_cursor), and no tool annotations (readOnlyHint). Field filtering via include_fields is a good pattern but underutilized. Missing: output schema documentation, error recovery guidance, and per-tool composition hints.
Get details of a specific IP address from phpIPAM.
Get details of a specific IP section from phpIPAM.
Get details of a specific subnet from phpIPAM.
Get details of a specific VLAN from phpIPAM.
List all IP sections from phpIPAM. CONTEXT OPTIMIZATION: Returns essential fields only by default. Use include_fields="all" for complete data.
List subnets in a specific section from phpIPAM.
List all VLANs from phpIPAM.
Output schemas not documented. Tools return formatted text summaries (e.g., 'Found N subnets...') rather than structured JSON. LLMs cannot parse field names or plan downstream tool calls without knowing response structure.
Descriptions lack LLM-optimization guidance. Generic descriptions like 'Get details of a specific IP section' (50 chars) do not explain WHEN to use this tool vs. list_sections, what fields are returned, or dependencies. Baseline: 194 chars average for A+ tools.
No error handling guidance. Tools do not document what happens on invalid IDs, API failures, or network timeouts. LLMs receive no recovery hints (e.g., 'Try search_addresses() first if you only have a hostname').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Search for IP addresses in phpIPAM by hostname, IP, or description.
Pagination metadata missing. list_* tools accept limit but do not return total count or next_cursor. LLMs cannot determine if results are truncated or plan multi-page queries.
No tool annotations. Tools lack readOnlyHint, destructiveHint, or idempotentHint. MCP spec 2026-07-28 expects these for proper agent planning and safety.