Skip to main content
Glama
tplink-deco-mcp-server

tplink-deco-mcp-server

by roquerodrigo

Change fixed IP

update_address_reservation
Idempotent

Move a device's existing fixed IP reservation to a new LAN address by specifying its MAC address and target IPv4 address, keeping DHCP assignments consistent.

Instructions

Move a device's existing fixed IP reservation to another address.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "mac": "<mac>",
      "ip": "<ip>"
    },
    "name": "update_address_reservation"
  }
}

Input Schema

NameRequiredDescriptionDefault
ipYesIPv4 address inside the LAN, such as `192.168.68.50`.
macYesMAC address of the device, `AA:BB:CC:DD:EE:FF` or `AA-BB-CC-DD-EE-FF`.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, destructive=false, and idempotent=true, so the safety profile is covered. The description adds only the 'move existing' framing; it does not say whether the old reservation is released, what errors occur on conflict, or what is returned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler. It is appropriately sized, though the extreme brevity leaves it slightly under-specified rather than genuinely complete.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the input schema is fully documented, so the description needn't explain return values or parameter formats. However, for a mutation tool that relocates an existing binding, it omits prerequisite and conflict behavior (missing reservation, target IP in use), leaving meaningful gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (both mac and ip documented with formats and an IPv4 example), so the schema carries parameter meaning. The description adds nothing about the parameters, which is acceptable at full coverage but no better than baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('move') and resource ('existing fixed IP reservation'), which distinguishes it from add_address_reservation and remove_address_reservation. It stops short of explicitly naming those siblings, but the 'existing' qualifier makes the scope clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'existing' hints the reservation must already exist and that add/remove are the alternatives. There is no explicit when-to-use guidance, no stated prerequisites, and no mention of what happens if the target address is already reserved.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.