phpIPAM MCP Server
Server Quality Checklist
Latest release: v0.3.0
- Disambiguation3/5
Most tools have clear, distinct purposes, but search_addresses and search_hostname overlap significantly—both search for addresses by hostname, with search_addresses also accepting IPs. This could cause agent misselection.
Naming Consistency4/5Tool names follow a verb_noun pattern consistently (list_*, search_*, create_*, update_*, delete_*, reserve_*). Minor deviation: list_* for most listing operations but get_* for get_section_subnets and get_subnet_details.
Tool Count4/516 tools is slightly above the typical 3-15 range, but the server covers a broad IPAM domain (sections, subnets, IPs, VLANs, VRFs, locations, nameservers). The count is reasonable and not bloated.
Completeness4/5The core subnet and IP address lifecycle is well covered: create, update, delete, and search for both. Minor gaps exist: no create/update/delete for sections, VLANs, VRFs, locations, or nameservers, but these appear to be read-only references.
Average 3.8/5 across 16 of 16 tools scored. Lowest: 2.9/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 1 commit in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'Update an existing IP address record,' revealing no information about partial vs. full update, permissions, side effects, or failure modes. The 'existing' implies a not-found error, but this is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: a one-line purpose followed by a concise parameter list. Every sentence contributes value, though the parameter explanations are sparse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an update mutation tool, the description does not clarify whether it is a partial update (only provided fields are changed) or how it behaves if address_id is not found. It also ignores the output schema, which is otherwise available. The tool is simple, but the description still leaves critical ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description carries the weight. It lists each parameter: address_id is explained as 'ID of the IP address to update,' while hostname, description, and owner are only given 'New ...' labels. This adds basic meaning but lacks format, constraints, or update semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Update an existing IP address record,' using a specific verb (update) and resource (IP address record). This clearly distinguishes it from delete_ip_address and reserve_ip_address, but it does not explicitly reference alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool compared to alternatives like reserve_ip_address or update_subnet. The description lacks any context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the operation but doesn't disclose side effects, whether partial updates are supported, permission requirements, or what happens to unspecified fields. The tool's mutation behavior is implied but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single main sentence and a simple parameter list. It avoids waste, though the parameter list partially duplicates schema info. The structure is easy to skim and adequately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and minimal behavioral details, this description is incomplete. It explains what and which parameters, but lacks usage context, side effects, and return behavior. Having an output schema helps but the description still feels under-specified for a 4-parameter update operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists each parameter with a brief explanation (e.g., 'New description (optional)') which adds meaning beyond the bare schema. However, the explanations are minimal and largely redundant with the schema's property names and default null values. It doesn't provide format, examples, or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing subnet' with a specific verb and resource. It distinguishes from siblings like create_subnet and delete_subnet, though it doesn't explicitly differentiate from update_ip_address. The scope is clear enough for selecting this tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. It doesn't mention that this is for modifying existing subnets or what scenarios call for create/delete instead. The existence of sibling tools like create_subnet and delete_subnet is not addressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states 'Delete/release' without disclosing any behavioral traits such as irreversibility, required permissions, or potential side effects. Since no annotations are provided, the description fails to convey the destructive nature beyond the verb itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of one sentence and a brief Args section. Every word earns its place, with no redundancy or fluff, and the action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even with an output schema present, the description lacks essential context for a delete operation. It does not explain reversibility, success/failure conditions, or any impact on associated resources. The minimal information is insufficient for an agent to fully anticipate behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description repeats the parameter name `address_id` and provides a tautological explanation ('ID of the IP address to delete') that essentially restates the parameter name. It does not specify the ID format, how to obtain it, or any additional context beyond the schema, which has no description for the property.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description uses 'Delete/release' as a specific verb and 'IP address reservation' as the resource, clearly distinguishing it from siblings like `delete_subnet` or `update_ip_address`. It directly states what the tool does without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or related tools like `reserve_ip_address` or `delete_subnet`, leaving the agent without context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden of behavioral disclosure. It does mention the default result limit (10) and max limit (50), but it does not disclose other important behaviors such as exact vs partial matching, pagination, or whether both IP and hostname results are returned. This is minimal context for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-organized: a clear one-sentence purpose, a brief context note, and a straightforward Args list. Every sentence adds value with no unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and parameters, and an output schema exists so return values need not be explained. However, it leaves gaps around matching behavior and does not clarify the distinction from 'search_hostname', making it only partially complete for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for parameters, but the description's 'Args' section provides clear explanations for both 'ip_or_hostname' and 'limit', including a default and max value for limit. This effectively compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search for IP addresses or hostnames in phpIPAM,' which specifies a clear verb and resource. However, it does not explicitly differentiate from the sibling tool 'search_hostname' or clarify when this broader search is preferable, so it lacks full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_hostname' or 'search_subnets'. The only contextual note ('Limited to 10 results by default') addresses result limits, not tool selection, leaving the agent without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description discloses no behavioral traits beyond the core action. It does not mention permissions, idempotency, or side effects, leaving the agent underinformed for a mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single purpose statement followed by a concise parameter list—no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the parameter list covers all arguments and an output schema exists, the tool lacks usage guidance and behavioral transparency, making it only partially complete for a create operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to all five parameters with examples for subnet and mask, and indicates optionality for description and vlan_id, compensating for the schema's lack of descriptions (0% coverage).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new subnet in phpIPAM' with a specific verb and resource, making it distinct from sibling tools like update_subnet and delete_subnet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, prerequisites, or constraints. The description simply states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds one valuable behavior: address listing is limited to 10 by default ('CONTEXT OPTIMIZATION'). However, it does not explicitly state that the operation is read-only or describe error/edge-case behavior, leaving some transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with a clear summary, followed by a prominent context note and an Args block. The Args section somewhat duplicates schema metadata, but it is justified here because the schema lacks parameter descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-style tool with an output schema present, the description covers the tool's purpose, key default behavior (address limit), and all parameters. It lacks explicit alternative-tool guidance, but the sibling list provides enough context for a capable agent to select it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description fully compensates by explaining each parameter in plain language. It clarifies the conditional relationship between include_addresses and address_limit (address_limit only applies when include_addresses=True), which the schema's titles and defaults do not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence uses a specific verb and resource ('Get detailed information about a specific subnet'), clearly indicating this tool targets one subnet by ID. It is distinct from sibling list/search/subnet tools by scope, but does not explicitly contrast itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: call this when you have a subnet_id and want details for that specific subnet. It gives no explicit guidance about when to prefer this over get_section_subnets or search_subnets, and no exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description includes a prominent warning that deleting a subnet deletes all IP addresses, which is a critical behavioral trait. However, it does not disclose permissions required, reversibility, or error behavior. Since no annotations exist, this warning carries much of the behavioral burden but is incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a three-line Args block. It front-loads the core action and warning, with no wasted words. The structure is clear, scannable, and appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete tool with an output schema, the description provides the essential action and the most important side effect. It does not explain preconditions or error handling, but the destructive cascade is prominently disclosed, making it sufficient for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The Args section restates the schema parameter with a minimal gloss: 'ID of the subnet to delete.' With schema description coverage at 0%, this adds a little clarity but no format, lookup guidance, or constraints beyond what the parameter title implies. It barely compensates for the schema's lack of description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Delete a subnet' with a clear verb and resource, and the warning clarifies the scope by noting it deletes all IP addresses. This distinguishes it from sibling tools like delete_ip_address and update_subnet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of preconditions, scenarios that warrant deletion, or why an agent should choose this over update_subnet or other related tools. The warning implies caution but does not offer decision-making criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that results are limited to 10 by default and max 50, which is useful behavioral context. However, it does not explain matching semantics (e.g., exact vs partial, case sensitivity) or whether the search is scoped to a specific VLAN/VRF/location, leaving notable gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the purpose, followed by a succinct context note and parameter explanations. It is mostly efficient, though the default limit of 10 is mentioned twice (in the CONTEXT OPTIMIZATION line and in the limit description), creating minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only two parameters, an output schema (so return values need not be described), and a behavioral limit disclosure, the description is largely complete. The main missing piece is clearer guidance on when to use this tool versus sibling search/detail tools, and a bit more on how the query is interpreted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only provides titles and a default for limit, with no descriptions. The description adds meaningful semantics: query is a search term for CIDR/description/etc., and limit is the maximum results with a default of 10 and max of 50. This fully compensates for the schema description coverage of 0%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches subnets by CIDR, description, or other criteria, giving a specific verb and resource. It distinguishes from sibling search tools like search_addresses and search_hostname by focusing on subnets, though it does not explicitly call out those differences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for searching subnets via the stated query fields, but it provides no explicit guidance on when to prefer it over sibling tools like get_subnet_details or search_addresses. There is no when-not-to-use or alternative recommendation, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the default result limit (20) and max (100), which is useful. However, it omits other behavioral details like ordering or side effects, though the output schema covers return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a clear purpose statement, a brief context note, and a formatted args section. Every sentence contributes value and the length is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with an output schema, the description covers the essential aspects: what it lists, the limit behavior, and parameter semantics. It lacks usage guidance, but this is a minor gap for such a straightforward operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description fully compensates by explaining 'limit' as the maximum number of VRFs to return, with default and max values. This adds clear meaning beyond the schema's type and default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List VRF instances from phpIPAM,' which is a specific verb and resource. It distinguishes from sibling list tools by the unique resource type (VRFs), though it doesn't explicitly compare with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool vs. alternatives. Usage is implied by the tool's name and list context, but there are no exclusions or alternative suggestions, making it adequate but not exceptional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses a default limit of 10 and a maximum of 50, which is helpful, but it omits other behavioral details like pagination, ordering, or exact vs partial matching semantics beyond the initial phrase. This is average transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and well-structured: a clear purpose sentence, a context optimization note, and an Args list. However, the 'CONTEXT OPTIMIZATION' line overlaps with the limit argument description, creating slight redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the presence of an output schema, and only two parameters, the description covers the essential points: purpose, arguments, and default behavior. Minor gaps like wildcard support or case sensitivity are acceptable but prevent a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description's Args section is crucial. It defines 'hostname' as the search string and 'limit' as the maximum results with default and max values, including the max 50 that is absent from the schema. This adds meaningful clarification beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Search for IP addresses by exact or partial hostname in phpIPAM.' It uses a specific verb ('search') and resource ('IP addresses'), and the hostname focus distinguishes it from sibling tools like search_subnets or search_addresses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description (when you have a hostname to look up), but there is no explicit guidance on when to choose this tool over alternatives such as search_addresses or search_subnets. No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries that burden. It adds useful behavioral context by stating the default limit of 20 and the max of 100. However, it does not explicitly state that this is a read-only operation or describe side effects, though the verb 'List' implies no mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose. The parameter documentation is minimal and directly useful, with no filler or redundancy, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with one optional parameter and an output schema, the description covers the essential purpose and the parameter semantics. It does not mention ordering or pagination behavior, but these are not critical for a basic list operation and the output schema presumably defines return fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only defines 'limit' with a default, but no description. The description adds meaningful semantics by calling it 'Maximum number of locations to return' and including both the default (20) and max (100), which goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action with a specific verb ('List') and resource ('physical locations from phpIPAM'). This distinguishes it from sibling tools like list_sections and list_vlans, which list different entity types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a list of physical locations is needed, which is a clear context. However, it does not explicitly mention alternatives or exclusions (e.g., 'use search_addresses to find IPs'), and the 'CONTEXT OPTIMIZATION' note is more about limits than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose a useful behavioral trait: the IP parameter is optional and the tool will find the first available IP. However, it omits permission requirements, conflict handling, idempotency, and effects of existing reservations, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a clear one-sentence purpose followed by a structured Args list. Every sentence and field earns its place, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. All parameters are covered, and the optional behavior of ip is described. However, the description lacks explicit usage context such as when to prefer this over update_ip_address and what happens on conflicts, making it mostly complete but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description's Args list fully compensates by explaining each parameter (subnet_id, ip, hostname, description, owner). It also adds the optional auto-selection behavior for ip, providing meaning far beyond the bare schema fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Reserve an IP address in a subnet', a specific verb plus resource that clearly identifies the operation. This distinguishes it from sibling tools like search_addresses, update_ip_address, and delete_ip_address.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives such as update_ip_address, nor does it mention prerequisites or exclusions. The usage is implied by the action word 'Reserve', providing only indirect guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. It discloses a key behavioral trait: 'Returns essential fields only by default' and how to request complete data. This is beyond what the schema alone conveys, though it omits other details like authentication or pagination, which are less critical for a read-only list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the purpose stated upfront, followed by a clear 'CONTEXT OPTIMIZATION' note and a brief parameter explanation. Every sentence adds value without fluff, making it well-structured for quick reading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter) and the presence of an output schema, the description covers the essential aspects: what it lists, the default field behavior, and how to get all fields. It could be slightly more detailed about what 'essential fields' are, but overall it is sufficiently complete for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines include_fields as a string with no description (0% coverage). The description adds meaning by explaining it accepts comma-separated fields, defaults to essential fields only, and can be set to 'all' for complete data. This is essential context for using the parameter correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all IP sections from phpIPAM', which is a specific verb+resource with a clear scope (all sections). This distinguishes it from sibling tools like list_vlans, list_vrfs, and list_locations, which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides the tool's purpose but does not explicitly state when to use it over alternatives such as get_section_subnets or search_subnets. It gives guidance on the include_fields parameter ('Use include_fields="all" for complete data') but no direct comparison or exclusion statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the result limit ('Limited to 20 results by default') and the max of 100, which are behavioral traits beyond the schema's default value. However, it does not explicitly confirm read-only behavior, ordering, pagination, or return format. The 'CONTEXT OPTIMIZATION' note adds some context but could be more detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured. It has a clear one-sentence summary, a context optimization note, and a brief bulleted argument list. Every line earns its place, and there is no unnecessary redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (simple list tool with two optional parameters) and the presence of an output schema, the description is complete. It covers the source system, parameter meanings, result limits, and default behavior. Nothing critical is missing for an agent to select and use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains both parameters: domain_id is described as an optional filter, and limit is described with its default (20) and maximum (100). This adds meaning beyond the raw schema, which has no descriptions and no max constraint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List VLANs from phpIPAM,' which uses a specific verb ('list') and a specific resource ('VLANs'). This distinguishes it from sibling tools that list other resources (e.g., list_vrfs, list_sections, list_locations). The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied by the tool name and description: use this when you need to list VLANs. However, it does not explicitly state when to use it instead of alternatives, nor does it mention exclusions or prerequisites. The guidance is minimal but not misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the default result limit (20), the maximum limit (100), and the default behavior for include_usage and include_fields. It does not mention error conditions or the meaning of 'essential only' fields, but for a read operation this is substantial behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a one-sentence purpose, a 'CONTEXT OPTIMIZATION' note, and a concise args list. Every line adds information without redundancy. It is front-loaded and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with an output schema, the description covers the core behavior, parameters, and defaults. It lacks explicit mention of alternatives or error handling, but those are not critical given the tool's simplicity and the presence of an output schema. It is sufficiently complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description fully compensates. It explains each parameter: section_id identifies the section, include_usage includes usage stats, include_fields is a comma-separated list with default 'essential only', and limit controls the maximum number of subnets (default 20, max 100). This adds meaning beyond the schema's type/default fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get subnets within a specific section.' This is a specific verb+resource+scope that distinguishes it from siblings like search_subnets (which searches across sections) and get_subnet_details (which retrieves a single subnet).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on usage: it requires a section_id and notes the default limit of 20 results with the ability to control output via the limit parameter. It does not explicitly mention alternatives or when-not-to-use, but the first sentence implies the appropriate scenario (when you have a specific section ID).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior4/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses that results are limited to 20 by default and that the limit can go up to 100, which is behavior beyond the tool's name. It doesn't mention sorting or errors, but the output schema exists for return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose, then a concise context note and parameter definition. There is no fluff or redundancy, and the structure makes it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and an output schema, the description covers the key behavioral constraint (limit) and the output structure is presumably in the schema. It is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The 'Args' section fully explains the 'limit' parameter, including its default (20) and maximum (100), which the input schema does not specify (schema only has default). This adds meaningful semantic detail beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List DNS nameservers from phpIPAM' with a specific action and resource. This distinguishes it from sibling tools that handle sections, subnets, addresses, VLANS, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is unambiguous and there are no sibling tools for nameservers, so no explicit alternatives are needed. The 'CONTEXT OPTIMIZATION' note provides a usage hint about result limits, which helps the agent understand expectations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/greglg45/phpipam-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server